arena-graph

Crates.ioarena-graph
lib.rsarena-graph
version0.1.0
sourcesrc
created_at2020-10-13 01:48:12.106935
updated_at2020-10-13 01:48:12.106935
descriptiona questionable library for arena-allocated graphs
homepage
repositoryhttps://github.com/rust-lang/cargo/
max_upload_size
id299007
size7,583
(lord)

documentation

https://docs.rs/arena-graph

README

arena-graph: fast, arena-allocated graphs

A library for constructing fast, pointer-based graphs in Rust. A lil hacky, and my understanding of variance is dubious at best, so consult your local lifetime specialist before using. Useful if your graph has the following properties:

  • the node lookup overhead of a slotmap-style graph is too slow for your the problem you're trying to solve
  • nodes in your graph all have the same type
  • you only need & access to nodes once they've been added, and can use mutexes or cells to handle mutation
  • your graph doesn't need to delete individual nodes, only an entire graph of nodes all at once (although having a Cell<bool> that indicates deleted status is fine, as is creating a linked list of deleted nodes for recycling)
  • your Node's Drop implementation doesn't need to access other nodes

Still need to write documentation, but you can check out anchors if you're interested in seeing this in action.

Commit count: 17900

cargo fmt