Getting started
oxgraph is a storage-agnostic, zero-copy-friendly graph and hypergraph
topology substrate for Rust.
Topology here. Meaning elsewhere. Storage anywhere.
The core is no_std and the substrate is unsafe-free. The pipeline it is built
around is bytes → validate → view → traverse: you point a view at a byte slice,
it validates the layout, and you walk the graph. No parse step, no heap graph
rebuilt from the bytes, no copy of the edges.
Install
Depend on the umbrella crate and turn on the features you need. Its default feature set is empty, so a feature is the only thing that pulls a layer in.
cargo add oxgraph --features csr,algo-stdYou can also depend on the individual crates directly if you want a tighter dependency graph.
What you reach for, by task
| You want to | Reach for |
|---|---|
| Expose your own storage as a graph or hypergraph | the topology / graph / hyper traits |
| Borrow a CSR or bipartite-CSR layout over slices | oxgraph-csr, oxgraph-hyper-bcsr |
| Open a validated snapshot and traverse it without rebuilding | oxgraph-snapshot plus a layout |
Run BFS or PageRank at a no_std, alloc, or std tier | oxgraph-algo |
| Attach Arrow-backed named properties | oxgraph-property |
| Run an embedded database or a Postgres engine | oxgraph-db, oxgraph-postgres |
Every layer ships runnable examples under its crate's examples/ directory
(cargo run --example <name> -p <crate>).
Next
- Concepts — topology vs. meaning vs. storage
- The crate family
- Feature flags
- Benchmarks
Status
Pre-1.0 and still changing. The traits and crates are not stable yet. The snapshot byte format is an internal ABI candidate, not a stable interchange format — treat persisted snapshots as coupled to the crate version that wrote them. Licensed MIT.