arena-graph 0.1.0

a questionable library for arena-allocated graphs
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
<p align="center">
  <img src="https://user-images.githubusercontent.com/1976330/95137243-83675c80-071c-11eb-815b-6c652262cfc2.png" alt="arena-graph: fast, arena-allocated graphs" width="226">
</p>

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](https://github.com/lord/anchors) if you're interested in seeing this in action.