Skip to content

Repository files navigation

oakor

Arrow + DataFusion, but for graphs.

oakor is an embeddable, Arrow-native graph + vector query engine for Rust, with an openCypher frontend, built on Apache DataFusion.

Two deliverables, one workspace:

  1. A columnar in-memory graph format (spec/format-v0.md). CSR adjacency is byte-identical to an Arrow List<Int64> array; oakor standardizes the missing semantics — the oakor.adjacency extension type, a graph manifest, dense node-id conventions, and immutable snapshots. Plain Arrow consumers degrade gracefully; graph-aware consumers get zero-copy CSR.
  2. An extensible graph query engine. openCypher parses to DataFusion logical plans; graph-native operators (Expand, bounded variable-length paths) run as custom ExecutionPlans over CSR. Vectors are first-class: embeddings live as FixedSizeList<f32> columns and similarity is an expression the planner rewrites into index scans — not a procedure call.

Status

Pre-MVP. The format spec (v0) is drafted; engine crates are scaffolding.

Crates

Crate Role
oakor Facade — start here
oakor-format In-memory graph format: snapshots, CSR kernels, manifest
oakor-cypher openCypher parser, AST, planning to logical plans
oakor-engine DataFusion table providers, traversal operators, planner rules

Design principles

  • Arrow-native, zero-copy. The graph format is vanilla Arrow plus extension metadata. Anything that produces Arrow can feed oakor.
  • Build on DataFusion, not a clone. Optimizer, execution runtime, memory management, and SQL come from DataFusion; oakor adds what graphs need (traversal operators, graph-aware planning).
  • Typestate + builder APIs. Invalid graphs and invalid queries should fail to compile, not fail at runtime.
  • Conformance over claims. Cypher support is measured against the openCypher TCK; performance claims come with reproducible benchmarks.

License

Apache-2.0.

About

Arrow + DataFusion, but for graphs. Embeddable Arrow-native graph + vector query engine with an openCypher frontend, in Rust.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages