[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 = { path = "../raphtory-api", version = "0.14.0" } 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 } serde = { workspace = true } sorted_vector_map = { workspace = true } thiserror = { workspace = true } lock_api = { workspace = true } dashmap = { workspace = true } enum_dispatch = { workspace = true } ordered-float = { workspace = true } glam = { workspace = true } quad-rand = { workspace = true } serde_json = { workspace = true } ouroboros = { workspace = true } either = { workspace = true } kdam = { workspace = true, optional = true} bytemuck = { workspace = true } tracing = { 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 } # 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 } # 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 } polars-arrow = { workspace = true, optional = true } polars-parquet = { workspace = true, optional = true } memmap2 = { workspace = true, optional = true } tempfile = { workspace = true, optional = true } pometry-storage = { workspace = true, optional = true } prost = { workspace = true, optional = true } prost-types = { workspace = true, optional = true } roaring ={ workspace = true } [dev-dependencies] csv = { workspace = true } pretty_assertions = { workspace = true } quickcheck = { workspace = true } quickcheck_macros = { workspace = true } tempfile = { workspace = true } tokio = { workspace = true } # for vector testing dotenv = { workspace = true } # for vector testing streaming-stats = { workspace = true } proptest = { workspace = true } polars-core = { workspace = true, features = ["fmt"] } polars-io = { workspace = true, features = ["parquet"] } indoc = { workspace = true } [build-dependencies] prost-build = { workspace = true, optional = true } [features] default = [] # Enables the graph loader io module io = [ "dep:zip", "dep:neo4rs", "dep:bzip2", "dep:flate2", "dep:csv", "dep:reqwest", "dep:tokio", "proto", ] # search search = ["dep:tantivy"] # vectors vectors = [ "dep:futures-util", "dep:async-trait", "dep:async-openai", "dep:bincode", "dep:minijinja", "dep:minijinja-contrib", ] # Enables generating the pyo3 python bindings python = [ "io", "arrow", "search", "vectors", "proto", "dep:pyo3", "dep:numpy", "dep:num", "dep:display-error-chain", "polars-arrow?/compute", "raphtory-api/python", "kdam/notebook", ] # storage storage = [ "arrow", "pometry-storage", "raphtory-api/storage", "dep:memmap2", "dep:tempfile", "polars-arrow?/io_ipc", "polars-arrow?/arrow_rs", ] arrow = [ "dep:polars-arrow", "dep:polars-parquet", "polars-parquet?/compression", ] proto = [ "dep:prost", "dep:prost-types", "dep:prost-build", "dep:memmap2", "dep:zip", ]