[package] name = "swh-graph" version.workspace = true edition = "2021" description = "Compressed in-memory representation of the Software Heritage archive graph" repository = "https://gitlab.softwareheritage.org/swh/devel/swh-graph" license = "GPL-3.0-or-later" readme = "README.md" keywords = ["software-heritage", "graph", "compression", "webgraph"] categories = ["compression", "science"] rust-version = "1.79" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] rand = "0.8.5" anyhow.workspace = true mmap-rs = "0.6.1" sux = "0.4.1" #sux = {path = "../../../sux-rs" } webgraph = "0.1.4" #webgraph = { path = "../../../webgraph-rs" } pthash = { version = "0.4.0", features = ["rayon"] } faster-hex = { version = "0.8.0", features = ["std"], default-features = false } rayon = { version = "1.9.0" } sha1 = { version = "0.10.1", optional = true } itertools.workspace = true thread_local = "1.1.7" tempfile = "3.7.1" zstd = "0.12" nonmax = "0.5.5" num_cpus = "1.16.0" byteorder = "1.4.3" java-properties = "1.4.1" base64-simd = "0.8.0" dsi-bitstream = "0.4.0" epserde = "0.6.1" bytemuck = { version = "1.14.0", features = ["extern_crate_alloc"] } common_traits = "0.10.0" lender = "0.2.7" thiserror = "1.0.51" bitvec = { version = "1.0.1" } # compression arrow = { version = "52.0", optional = true } arrow-schema = { version = "52.0", optional = true, features = ["serde"] } arrow-array = { version = "52.0", optional = true } chrono = { version = "0.4.31", features = ["serde"], optional = true } orc-rust = { version = "0.3.1", optional = true, default-features = false } ar_row = { version = "1.0.0", optional = true } ar_row_derive = { version = "1.0.0", optional = true } # CLI & logging clap.workspace = true dsi-progress-logger.workspace = true env_logger.workspace = true log.workspace = true # macros const_panic = { version = "0.2.8", optional = true } const-hex = { version = "1.11.1", optional = true } # serde serde = { version = "1.0.189", optional = true } serde_json = { version = "1.0.108", optional = true } # sorting dary_heap = "0.3.6" rdst = { version ="0.20.14", features = ["multi-threaded"] } [target.'cfg(not(target_env = "msvc"))'.dependencies] tikv-jemallocator = "0.5" [dev-dependencies] bitvec = { version = "1.0.1", features = ["atomic"] } futures = "0.3.30" [features] default = ["macros"] arrow = ["dep:arrow", "dep:arrow-schema", "dep:arrow-array"] # Reads dataset from ORC files and produces a compressed graph compression = ["sha1"] orc = ["ar_row", "ar_row_derive", "arrow", "chrono", "orc-rust"] macros = ["const_panic", "const-hex"] serde = [ "dep:serde", "dep:serde_json", ] [[bin]] name = "swh-graph-compress" required-features = ["compression"] [[bin]] name = "swh-graph-convert" required-features = ["serde"] [[bin]] name = "swh-graph-extract" required-features = ["compression", "orc"] [[bin]] name = "swh-graph-hash" required-features = ["compression"]