[package] name = "freenet" version = "0.0.6" edition = "2021" rust-version = "1.71.1" publish = true description = "Freenet core software" license = "MIT OR Apache-2.0" repository = "https://github.com/freenet/freenet-core" [[bin]] name = "freenet" path = "src/bin/freenet.rs" [dependencies] anyhow = "1" arbitrary = { version = "1", features = ["derive"], optional = true} asynchronous-codec = "0.6" async-trait = "0.1" arrayvec = { workspace = true } axum = { version = "0.6", default-features = false, features = ["ws", "tower-log", "matched-path", "headers", "query", "http1"] } bincode = "1" blake3 = { workspace = true } byteorder = "1" bytes = "1" bs58 = "0.5" chacha20poly1305 = { workspace = true } clap = { workspace = true, features = ["derive", "env"] } cookie = "0.17" config = { version = "0.13.0", features = [ "toml" ] } crossbeam = "0.8.2" ctrlc = { version = "3.4", features = ["termination"] } dashmap = "^5.5" directories = "5" either = { workspace = true , features = ["serde"] } futures = "0.3.21" libp2p = { version = "0.52.3", features = [ "autonat", "deflate", "dns", "identify", "noise", "ping", "tcp", "tokio", "yamux", "macros" ], default-features = false } once_cell = "1" parking_lot = "0.12.0" rand = { workspace = true } serde = { workspace = true, features = ["rc", "derive"] } serde_json = { workspace = true } serde_with = { workspace = true } stretto = { version = "0.8", features = ["async", "sync"] } thiserror = "1" tokio = { version = "1", features = ["rt-multi-thread", "sync", "macros", "fs"] } tower-http = { version = "0.4", features = ["trace", "fs"] } unsigned-varint = "0.7" uuid = { version = "1", features = ["serde", "v4", "v1"] } sqlx = { version = "0.7", features = ["sqlite", "runtime-tokio-rustls"], optional = true } # TODO(kakoc): clang should be installed for rocksdb; write about that in prerequisites/dev guide rocksdb = { version = "0.21.0", default-features = false, optional = true } pav_regression = "0.4.0" itertools = "0.11" ordered-float = "3.9.1" notify = "6" wasmer = { workspace = true, features = [ "sys"] } chrono = { workspace = true } tar = { version = "0.4.38" } xz2 = { version = "0.1" } # Tracing deps tracing = { version = "0.1", optional = true } opentelemetry = { version = "0.20.0", default-features = false, features = ["rt-tokio", "trace"], optional = true } opentelemetry-jaeger = { version = "0.19.0", features = ["rt-tokio","collector_client", "isahc"], optional = true } tracing-opentelemetry = { version = "0.21.0", optional = true } tracing-subscriber = { version = "0.3.16", optional = true } # internal deps freenet-stdlib = { workspace = true, features = ["net"] } [dev-dependencies] tracing = "0.1" arbitrary = { version = "1", features = ["derive"] } itertools = "0.11" pico-args = "0.5" freenet-stdlib = { workspace = true, features = ["testing", "net"] } [features] default = ["websocket", "rocks_db", "trace"] testing = ["arbitrary"] rocks_db = ["rocksdb"] sqlite = ["sqlx"] websocket = ["axum/ws"] trace = ["tracing", "opentelemetry", "opentelemetry-jaeger", "tracing-opentelemetry", "tracing-subscriber"] local-mode = [] network-mode = []