graphar-falkordb — crate card
Reverse-engineered (from source — verify, don't trust the name)
- One-line pitch: Bulk-loads Apache Arrow
RecordBatches (typically fromgraphar) into FalkorDB (Redis/Valkey graph module) via generated Cypher. - Does: Public surface centers on
FalkorDbLoader(withDEFAULT_BATCH_SIZE) which streams Arrow batches into a FalkorDB graph.cyphermodule builds the Cypher statements;loaderdrives batched inserts overredis. Optionalautostartfeature addsfalkordb_containerto spin up a FalkorDB container from Rust (testcontainers → Podman) so callers just-work against a fresh DB. - Key deps:
graphar(source format/types),redis(tokio-comp async client),arrow/arrow-array/arrow-schema,tokio; optionaltestcontainers(autostart).thiserrorfor errors. - Shape: lib only; small-medium. Modules:
loader,cypher,error, plus feature-gatedfalkordb_container. Has anexamples/population.rs. - Observed role in the workspace: The Arrow→FalkorDB write path. Used by
knut-popviz(population bulk load) andgraphar-flight(FalkorDB executor side);autostartshared by integration tests and popviz.
Fill in (one line each — only the human knows these)
- Primary consumer(s):
- Why it exists (vs the obvious alternative):
- Hard constraint (airgap / no-C-deps / no-FFI / pure-Rust / etc.):
- Release cadence & independence (rides a parent? own repo someday?):
- Status (production / prototype / experimental / stubbed):
- Must-NOT-change invariant:
- Biggest known gap or TODO:
- Anything a newcomer would get wrong about it: