oxgraph-csc
Borrowed compressed-sparse-column (inbound) graph views over snapshot sections.
The reverse-traversal counterpart to oxgraph-csr in the
oxgraph crate family. no_std,
unsafe-free.
What it is
oxgraph-csc provides inbound adjacency: predecessor traversal over a graph
whose incoming edges are stored as CSR-on-transposed-edges in snapshot
sections. It is a separate crate from oxgraph-csr on purpose, so forward
and inbound views cannot be mixed at the type level.
The view is storage-agnostic. It owns no section-kind constants and reads
whatever offsets/targets kinds the caller supplies through
CscSnapshotGraph::from_snapshot_with_kinds; the storage layer that
persists the inbound index (for example the Postgres engine) owns the
section-kind constants and the section version. Opening a snapshot-backed
view validates the layout once, O(s + n + m) per engine load; traversal
after that is slice indexing.
Where it sits
oxgraph-graph node/edge capability traits
└── oxgraph-csc ← this crate (borrowed inbound layout)
├── wraps oxgraph-csr over transposed edges
├── reads caller-supplied oxgraph-snapshot sections
└── consumed by oxgraph-postgres for reverse traversal
Documentation
See docs.rs/oxgraph-csc for the full API
(oxgraph-postgres is the reference consumer) and the
oxgraph family README for how
the layers fit together. Also available through the umbrella crate:
cargo add oxgraph --features csc.
License
MIT. See LICENSE.