interstellar 0.1.1

A high-performance graph database with Gremlin-style traversals and GQL query language
Documentation
[package]
name = "interstellar"
version = "0.1.1"
edition = "2021"
description = "A high-performance graph database with Gremlin-style traversals and GQL query language"
license = "MIT"
repository = "https://github.com/wiremine/interstellar"
homepage = "https://github.com/wiremine/interstellar"
documentation = "https://docs.rs/interstellar"
readme = "README.md"
keywords = ["graph", "database", "gremlin", "gql", "traversal"]
categories = ["database", "data-structures"]
rust-version = "1.75"

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(kani)'] }

[features]
default = ["graphson"]
mmap = ["memmap2", "serde_json"]
graphson = ["serde_json"]
full-text = ["tantivy"]
gql = ["pest", "pest_derive", "mathexpr"]
gremlin = ["pest", "pest_derive"]
full = ["mmap", "graphson", "gql", "gremlin", "full-text"]
# WASM JavaScript bindings
wasm = ["wasm-bindgen", "serde-wasm-bindgen", "js-sys"]

[dependencies]
thiserror = "1.0"
hashbrown = "0.14"
im = "15.1"
smallvec = "1.11"
serde = { version = "1.0", features = ["derive"] }
parking_lot = "0.12"
roaring = "0.10"
regex = "1.10"
memmap2 = { version = "0.9", optional = true }
serde_json = { version = "1.0", optional = true }
tantivy = { version = "0.21", optional = true }
crc32fast = "1.4"
bincode = "1.3"
pest = { version = "2.7", optional = true }
pest_derive = { version = "2.7", optional = true }
mathexpr = { version = "0.1.1", optional = true }
rand = "0.8"
# WASM bindings (optional)
wasm-bindgen = { version = "0.2", optional = true }
serde-wasm-bindgen = { version = "0.6", optional = true }
js-sys = { version = "0.3", optional = true }

[dev-dependencies]
criterion = "0.5"
proptest = "1.4"
tempfile = "3.10"
serde_json = "1.0"
insta = { version = "1.34", features = ["yaml"] }
wasm-bindgen-test = "0.3"

[[bench]]
name = "traversal"
harness = false

[[bench]]
name = "indexes"
harness = false

[[bench]]
name = "mmap"
harness = false
required-features = ["mmap"]

[[bench]]
name = "mmap_writes"
harness = false
required-features = ["mmap"]

[[bench]]
name = "perf_analysis"
harness = false

# Examples - consolidated per spec-35
[[example]]
name = "quickstart_gremlin"

[[example]]
name = "quickstart_gremlin_script"
required-features = ["gremlin"]

[[example]]
name = "quickstart_gql"
required-features = ["gql"]

[[example]]
name = "storage"
required-features = ["mmap"]

[[example]]
name = "marvel"

[[example]]
name = "nba"
required-features = ["mmap", "gql"]

[[example]]
name = "graphson"
required-features = ["graphson"]

# WASM support
[target.'cfg(target_arch = "wasm32")'.dependencies]
getrandom = { version = "0.2", features = ["js"] }
web-time = "1.1"

# WASM dev-dependencies (for proptest which uses getrandom 0.3 via rand 0.9)
[target.'cfg(target_arch = "wasm32")'.dev-dependencies]
getrandom03 = { package = "getrandom", version = "0.3", features = ["wasm_js"] }

[lib]
crate-type = ["cdylib", "rlib"]

[package.metadata.wasm-pack.profile.release]
wasm-opt = ["-Oz"]

[package.metadata.kani]
# Default unwind bound for loops (can be overridden per-proof)
default-unwind = 10