Skip to main content

Graph database with MVCC and NQL query language

Project description

NopalDB

Crates.io Docs.rs License: AGPL-3.0-only

High-performance embedded graph database with ACID transactions, MVCC time-travel, a built-in query language (NQL), and Apache Arrow analytics.

Features

  • ACID + MVCC — snapshot isolation and time-travel queries over a versioned store.
  • NQL — a Cypher-like query language for pattern matching and traversal.
  • Embedded — runs in-process, no separate server. Sled-backed storage by default.
  • Analytics — zero-copy export to Apache Arrow / Parquet (analytics feature).
  • Optional tiers — vector embeddings + HNSW, full-text search, graph algorithms, ML tensors, OWL reasoning and SHACL validation, all behind feature flags.

Install

cargo add nopaldb

Requires Rust ≥ 1.85 (edition 2024).

Quickstart

use nopaldb::{Edge, Graph, Node, PropertyValue, Result};

#[tokio::main]
async fn main() -> Result<()> {
    // Open (or create) an embedded graph at a path
    let graph = Graph::open("my_graph.db").await?;

    // Add nodes with properties
    let alice = graph
        .add_node(Node::new("Person").with_property("name", PropertyValue::String("Alice".into())))
        .await?;
    let bob = graph
        .add_node(Node::new("Person").with_property("name", PropertyValue::String("Bob".into())))
        .await?;

    // Connect them with an edge
    graph.add_edge(Edge::new(alice, bob, "KNOWS")).await?;

    Ok(())
}

Feature flags

Feature Enables
storage-sled (default) Sled-backed embedded storage
analytics Apache Arrow / Parquet export
ml ML tensors (implies analytics)
algorithms Graph algorithms (community detection, centrality, …)
embeddings, embeddings-index Vector embeddings + HNSW ANN index
fulltext Full-text search (Tantivy)
reasoner, owl-import, shacl OWL EL reasoning, RDF/OWL import, SHACL validation
python PyO3 bindings (used to build the Python package)

Convenience meta-features: core, semantic, full. See Cargo.toml for the full list.

Python

NopalDB also ships as a Python package built with maturin. See the repository for build instructions.

License

Licensed under the GNU Affero General Public License v3.0 only (AGPL-3.0-only).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nopaldb-0.4.30.tar.gz (398.2 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

nopaldb-0.4.30-cp310-abi3-win_amd64.whl (4.1 MB view details)

Uploaded CPython 3.10+Windows x86-64

nopaldb-0.4.30-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

nopaldb-0.4.30-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.2 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

nopaldb-0.4.30-cp310-abi3-macosx_11_0_arm64.whl (3.8 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

nopaldb-0.4.30-cp310-abi3-macosx_10_12_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file nopaldb-0.4.30.tar.gz.

File metadata

  • Download URL: nopaldb-0.4.30.tar.gz
  • Upload date:
  • Size: 398.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for nopaldb-0.4.30.tar.gz
Algorithm Hash digest
SHA256 2628b09c941e917a6d242c2ffe0caf78045120de06e615c2da66c52df60a4afd
MD5 e56bf7b25dac9b087e1a39caf23874b1
BLAKE2b-256 58b863c131f42983e992df70aaced14238b13f42208b9e49f1c11d7073683cac

See more details on using hashes here.

Provenance

The following attestation bundles were made for nopaldb-0.4.30.tar.gz:

Publisher: release-python.yml on sharop/nopaldb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nopaldb-0.4.30-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: nopaldb-0.4.30-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 4.1 MB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for nopaldb-0.4.30-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 5aa80b34ce0596734f732e6711d915898be871848e60b923d5084f837666fda5
MD5 5636e16898439ed06a84bb6b9ca582da
BLAKE2b-256 83899019073df43c129566e1e203d509504a8ee39b6bc9f37c38c2a9731987cb

See more details on using hashes here.

Provenance

The following attestation bundles were made for nopaldb-0.4.30-cp310-abi3-win_amd64.whl:

Publisher: release-python.yml on sharop/nopaldb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nopaldb-0.4.30-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nopaldb-0.4.30-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c3c857449ea01256f31a8d89221a3c808f7dff709b9b729f87d76cae7a855bb0
MD5 41d9ca409254cb84a7dce0267f6e32c3
BLAKE2b-256 bc3b5879e3d57e505681acecc7af7393e590cea024a9288d5c8307902e1f0556

See more details on using hashes here.

Provenance

The following attestation bundles were made for nopaldb-0.4.30-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release-python.yml on sharop/nopaldb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nopaldb-0.4.30-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nopaldb-0.4.30-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7cf3e7d5b8d5fd1db7b83e3acb5097a9a4063377278e93c04ff694eacce9072e
MD5 a2b9e684b8d0a5d3a660445f828a729f
BLAKE2b-256 d39bda1806b7efccadb0165548c56a8700957666086ab3e5cd12f1058e15eb92

See more details on using hashes here.

Provenance

The following attestation bundles were made for nopaldb-0.4.30-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release-python.yml on sharop/nopaldb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nopaldb-0.4.30-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nopaldb-0.4.30-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b6ea2f8ca005197096b70b156f38c137635bd3970b0c9bf6f8b9a6f1a16e89b6
MD5 6dc8a41eee6f2351eaeda25a4af77b71
BLAKE2b-256 8e9b7100cf05579bc3b7430c346091bc01221886936dac8338466d2d2218622a

See more details on using hashes here.

Provenance

The following attestation bundles were made for nopaldb-0.4.30-cp310-abi3-macosx_11_0_arm64.whl:

Publisher: release-python.yml on sharop/nopaldb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nopaldb-0.4.30-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for nopaldb-0.4.30-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3d6d32edc40f44821446bde7a50c64ded64fde2465a9bfdef1ac09e259c757a8
MD5 928c0c6a44e112a24f0bee5fad38e324
BLAKE2b-256 2c7b50dc9490eef7f77d134644f50341be553b2e29039e3ce26d96412c6695a7

See more details on using hashes here.

Provenance

The following attestation bundles were made for nopaldb-0.4.30-cp310-abi3-macosx_10_12_x86_64.whl:

Publisher: release-python.yml on sharop/nopaldb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page