raphtory 0.16.4

raphtory, a temporal graph library
Documentation
[package]
name = "raphtory"
description = "raphtory, a temporal graph library"
edition.workspace = true
rust-version.workspace = true
version.workspace = true
keywords.workspace = true
authors.workspace = true
documentation.workspace = true
repository.workspace = true
license.workspace = true
readme.workspace = true
homepage.workspace = true

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
raphtory-api.workspace = true
raphtory-core.workspace = true
raphtory-storage.workspace = true
pometry-storage.workspace = true
iter-enum = { workspace = true, features = ["rayon"] }
hashbrown = { workspace = true }
chrono = { workspace = true }
itertools = { workspace = true }
num-traits = { workspace = true }
num-integer = { workspace = true }
parking_lot = { workspace = true }
once_cell = { workspace = true }
rand = { workspace = true }
rand_distr = { workspace = true }
rayon = { workspace = true }
regex = { workspace = true }
rustc-hash = { workspace = true }
bigdecimal = { workspace = true }
indexmap = { workspace = true }
serde = { workspace = true }
thiserror = { workspace = true }
dashmap = { workspace = true }
ordered-float = { workspace = true }
glam = { workspace = true }
quad-rand = { workspace = true }
serde_json = { workspace = true }
ouroboros = { workspace = true }
either = { workspace = true }
bytemuck = { workspace = true }
tracing = { workspace = true }
ahash = { workspace = true }
roaring = { workspace = true }
strsim = { workspace = true }
walkdir = { workspace = true }
uuid = { workspace = true }

# io optional dependencies
csv = { workspace = true, optional = true }
zip = { workspace = true, optional = true }
neo4rs = { workspace = true, optional = true }
bzip2 = { workspace = true, optional = true }
flate2 = { workspace = true, optional = true }
reqwest = { workspace = true, features = ["blocking"], optional = true }
tokio = { workspace = true, optional = true }
kdam = { workspace = true, optional = true }

# proto optional dependencies
memmap2 = { workspace = true, optional = true }
prost = { workspace = true, optional = true }
prost-types = { workspace = true, optional = true }

# arrow otional dependencies
parquet = { workspace = true, optional = true }
arrow-json = { workspace = true, optional = true }
#arrow-array = { workspace = true, features = ["chrono-tz"], optional = true }
#arrow-buffer = { workspace = true, optional = true }
#arrow-cast = { workspace = true, optional = true }
#arrow-schema = { workspace = true, optional = true }
arrow = { workspace = true, optional = true, features = ["chrono-tz"] }

# search optional dependencies
tantivy = { workspace = true, optional = true }

# vectors optional dependencies
futures-util = { workspace = true, optional = true }
async-trait = { workspace = true, optional = true }
async-openai = { workspace = true, optional = true }
bincode = { workspace = true, optional = true }
minijinja = { workspace = true, optional = true }
minijinja-contrib = { workspace = true, optional = true }
arroy = { workspace = true, optional = true }
heed = { workspace = true, optional = true }
moka = { workspace = true, optional = true }

# python binding optional dependencies
pyo3 = { workspace = true, optional = true }
numpy = { workspace = true, optional = true }
num = { workspace = true, optional = true }
display-error-chain = { workspace = true, optional = true }
tempfile = { workspace = true, optional = true }
pyo3-arrow = { workspace = true, optional = true }


# test utils
proptest = { workspace = true, optional = true }
proptest-derive = { workspace = true, optional = true }

[dev-dependencies]
csv = { workspace = true }
pretty_assertions = { workspace = true }
tempfile = { workspace = true }
tokio = { workspace = true }                             # for vector testing
dotenv = { workspace = true }                            # for vector testing
streaming-stats = { workspace = true }
indoc = { workspace = true }
raphtory = { path = ".", features = ["test-utils"] } # enable test-utils for integration tests (version is not set to make cargo publish work)

[build-dependencies]
prost-build = { workspace = true, optional = true }

[features]
default = []
# Enables the graph loader io module
io = [
    "dep:neo4rs",
    "dep:bzip2",
    "dep:flate2",
    "dep:csv",
    "dep:reqwest",
    "dep:tokio",
    "dep:parquet",
    "proto",
]

# search
search = ["dep:tantivy", "dep:tempfile", "proto", "io"]
# vectors
vectors = [
    "dep:futures-util",
    "dep:async-trait",
    "dep:async-openai",
    "dep:bincode",
    "dep:minijinja",
    "dep:minijinja-contrib",
    "raphtory-api/template",
    "dep:arroy",
    "dep:heed",
    "dep:moka",
    "dep:tempfile", # also used for the storage feature
]

# Enables generating the pyo3 python bindings
python = [
    "io",
    "arrow",
    "search",
    "vectors",
    "proto",
    "dep:pyo3",
    "dep:numpy",
    "dep:num",
    "dep:display-error-chain",
    "pyo3-arrow",
    "raphtory-api/python",
    "raphtory-core/python",
    "kdam/notebook",
]
# storage
storage = [
    "arrow",
    "raphtory-api/storage",
    "raphtory-storage/storage",
    "dep:memmap2",
    "dep:tempfile",
]
arrow = [
    "raphtory-api/arrow",
    "raphtory-core/arrow",
    "dep:parquet",
    "dep:arrow-json",
    "dep:arrow",
]

proto = [
    "dep:prost",
    "dep:prost-types",
    "dep:zip",
    "dep:prost-build",
    "dep:memmap2",
    "arrow",
    "io",
]

test-utils = [
    "dep:proptest", "dep:proptest-derive"
]