infinite-db
A spatial-graph database using n-dimensional curves and hyperedges for engineering logic.
Quick start
Add to your Cargo.toml:
[]
= "0.3"
use ;
use ;
use SpaceConfig;
Writes are fire-and-forget: call sync to flush the write queue and make data durable and visible to queries.
See also the quickstart example.
Feature flags
| Feature | Default | Description |
|---|---|---|
embedded |
yes | CRCW embedded database (InfiniteDb) |
server |
no | TCP API (embedded + tokio) |
sync |
no | Replication, conflict queue, branch merge (server) |
legacy-v1 |
no | Internal v1 WAL engine (compile-only reference; not part of the public API) |
Enable server/sync in your manifest:
= { = "0.3", = ["sync"] }
Key concepts
- Space — named N-dimensional dataset with fixed dimensionality
- Address —
(SpaceId, DimensionVector)coordinate key for a record - Revision — monotonic logical write clock
- Snapshot — immutable read view assembled from sealed blocks
- Branch — isolated write overlay forked from another branch; merge back with
merge_branch
Full vocabulary: SEMANTICS.md.
Upstream typed wrappers
Upstream crates can add typed labels and domain spaces via adapter traits without changing the storage core. See UPSTREAM_ADAPTER.md.
On-disk formats
New databases default to format v4 (Hilbert shards + branch overlays). Formats v2 and v3 are supported for existing directories. Tune via OpenOptions::format_version.
Migrating from 0.2.0
This is a breaking release. InfiniteDb in 0.3.0 is a new CRCW engine (concurrent reads, fire-and-forget writes), not an incremental update of the 0.2.0 single-threaded WAL implementation.
Removed from the public API:
insert_records_bulk,delete_records_bulk- Hyperedge/signal bulk import and delete (
begin_hyperedge_import, etc.) - Hyperedge/signal write methods on
InfiniteDb
Still available:
- Hyperedge and signal types in
infinitedb_corefor upstream modeling - Record-level
insert,delete,query, and bounding-box queries on the newInfiniteDb - Branch overlays,
create_branch, andmerge_branch(format v4)
If you depend on 0.2.0 bulk write APIs, stay on 0.2.0. There is no public migration path to the internal legacy-v1 engine.