[package]
edition = "2021"
rust-version = "1.80"
name = "freenet"
version = "0.1.105"
build = "build.rs"
publish = true
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Freenet core software"
readme = "README.md"
license-file = "LICENSE.md"
repository = "https://github.com/freenet/freenet-core"
[package.metadata.binstall]
bin-dir = "freenet"
pkg-fmt = "tgz"
pkg-url = "{ repo }/releases/download/v{ version }/freenet-{ target }.tar.gz"
[features]
bench = []
bench_full = []
console-subscriber = ["dep:console-subscriber"]
default = [
"redb",
"trace",
"websocket",
]
simulation_tests = []
sqlite = ["sqlx"]
test-network = ["dep:freenet-test-network"]
testing = ["freenet-stdlib/testing"]
trace = [
"tracing-subscriber",
"tracing-appender",
]
trace-ot = [
"opentelemetry-jaeger",
"trace",
"tracing-opentelemetry",
"opentelemetry-otlp",
]
websocket = ["axum/ws"]
[lib]
name = "freenet"
path = "src/lib.rs"
[[bin]]
name = "freenet"
path = "src/bin/freenet.rs"
[[example]]
name = "analyze_event_logs"
path = "examples/analyze_event_logs.rs"
[[test]]
name = "concurrent_streams_regression"
path = "tests/concurrent_streams_regression.rs"
[[test]]
name = "connection_cap"
path = "tests/connection_cap.rs"
[[test]]
name = "connectivity"
path = "tests/connectivity.rs"
[[test]]
name = "diagnose_connectivity"
path = "tests/diagnose_connectivity.rs"
[[test]]
name = "edge_case_state_sizes"
path = "tests/edge_case_state_sizes.rs"
[[test]]
name = "error_notification"
path = "tests/error_notification.rs"
[[test]]
name = "gateway_inbound_identity"
path = "tests/gateway_inbound_identity.rs"
[[test]]
name = "isolated_node_regression"
path = "tests/isolated_node_regression.rs"
[[test]]
name = "large_network"
path = "tests/large_network.rs"
[[test]]
name = "manual_network_test"
path = "tests/manual_network_test.rs"
[[test]]
name = "operations"
path = "tests/operations.rs"
[[test]]
name = "operations_before_join"
path = "tests/operations_before_join.rs"
[[test]]
name = "redb_migration"
path = "tests/redb_migration.rs"
[[test]]
name = "river_smoke"
path = "tests/river_smoke.rs"
[[test]]
name = "simulation_integration"
path = "tests/simulation_integration.rs"
[[test]]
name = "simulation_smoke"
path = "tests/simulation_smoke.rs"
[[test]]
name = "test_macro_example"
path = "tests/test_macro_example.rs"
[[test]]
name = "test_network_integration"
path = "tests/test_network_integration.rs"
[[test]]
name = "token_expiration"
path = "tests/token_expiration.rs"
[[test]]
name = "twenty_peer_validation"
path = "tests/twenty_peer_validation.rs"
[[bench]]
name = "transport_ci"
path = "benches/transport_ci.rs"
harness = false
required-features = ["bench"]
[[bench]]
name = "transport_extended"
path = "benches/transport_extended.rs"
harness = false
required-features = ["bench"]
[[bench]]
name = "transport_full"
path = "benches/transport_full.rs"
harness = false
required-features = [
"bench",
"bench_full",
]
[[bench]]
name = "transport_ledbat"
path = "benches/transport_ledbat.rs"
harness = false
required-features = ["bench"]
[[bench]]
name = "transport_manual"
path = "benches/transport_manual.rs"
required-features = ["bench"]
[dependencies.aes-gcm]
version = "0.10"
[dependencies.ahash]
version = "0.8"
[dependencies.anyhow]
version = "1"
[dependencies.axum]
version = "0.8"
features = [
"http1",
"matched-path",
"query",
"tower-log",
"ws",
"json",
]
default-features = false
[dependencies.bincode]
version = "1"
[dependencies.blake3]
version = "1"
features = [
"std",
"traits-preview",
]
[dependencies.bs58]
version = "0.5"
[dependencies.byteorder]
version = "1"
[dependencies.bytes]
version = "1"
features = ["serde"]
[dependencies.chacha20poly1305]
version = "0.10"
[dependencies.chrono]
version = "0.4"
default-features = true
[dependencies.clap]
version = "4"
features = [
"derive",
"env",
]
[dependencies.console-subscriber]
version = "0.5.0"
optional = true
[dependencies.cookie]
version = "0.18"
[dependencies.crossbeam]
version = "0.8"
[dependencies.ctrlc]
version = "3"
features = ["termination"]
[dependencies.dashmap]
version = "^6.1"
[dependencies.delegate]
version = "0.13"
[dependencies.directories]
version = "6"
[dependencies.dirs]
version = "6"
[dependencies.either]
version = "1"
features = ["serde"]
[dependencies.event-listener]
version = "5"
[dependencies.flatbuffers]
version = "25.9"
[dependencies.flate2]
version = "1"
[dependencies.freenet-stdlib]
version = "0.1.30"
features = ["net"]
[dependencies.freenet-test-network]
version = "0.1.21"
optional = true
[dependencies.futures]
version = "0.3"
[dependencies.headers]
version = "0.4"
[dependencies.hex]
version = "0.4"
[dependencies.hickory-resolver]
version = "0.24"
features = ["dns-over-rustls"]
[dependencies.hostname]
version = "0.4"
[dependencies.itertools]
version = "0.14"
[dependencies.lru]
version = "0.16.3"
[dependencies.notify]
version = "8"
[dependencies.once_cell]
version = "1"
[dependencies.opentelemetry]
version = "0.31"
[dependencies.opentelemetry-jaeger]
version = "0.22"
features = [
"collector_client",
"isahc",
"rt-tokio",
]
optional = true
[dependencies.opentelemetry-otlp]
version = "0.31.0"
optional = true
[dependencies.opentelemetry_sdk]
version = "0.31"
features = ["rt-tokio"]
optional = true
[dependencies.parking_lot]
version = "0.12"
[dependencies.pav_regression]
version = "0.6.1"
[dependencies.pin-project]
version = "1"
[dependencies.rand]
version = "0.9"
features = ["small_rng"]
[dependencies.redb]
version = "3"
optional = true
[dependencies.reqwest]
version = "0.12"
features = [
"json",
"stream",
"rustls-tls",
]
default-features = false
[dependencies.semver]
version = "1"
features = ["serde"]
[dependencies.serde]
version = "1"
features = [
"derive",
"derive",
"rc",
]
[dependencies.serde_json]
version = "1"
[dependencies.serde_with]
version = "3"
[dependencies.sha2]
version = "0.10"
[dependencies.sqlx]
version = "0.8"
features = [
"runtime-tokio-rustls",
"sqlite",
]
optional = true
[dependencies.stretto]
version = "0.8"
features = [
"async",
"sync",
]
[dependencies.tar]
version = "0.4"
[dependencies.tempfile]
version = "3"
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = [
"fs",
"macros",
"rt-multi-thread",
"signal",
"sync",
"process",
"tracing",
"time",
"test-util",
]
[dependencies.tokio-stream]
version = "0.1.18"
[dependencies.tokio-tungstenite]
version = "0.27.0"
[dependencies.toml]
version = "0.9"
[dependencies.tower-http]
version = "0.6"
features = [
"fs",
"trace",
]
[dependencies.tracing]
version = "0.1"
features = ["release_max_level_info"]
[dependencies.tracing-appender]
version = "0.2"
optional = true
[dependencies.tracing-opentelemetry]
version = "0.32.1"
optional = true
[dependencies.tracing-subscriber]
version = "0.3"
features = ["json"]
optional = true
[dependencies.turmoil]
version = "0.7"
[dependencies.ulid]
version = "1.1"
features = ["serde"]
[dependencies.wasmer]
version = "6.1.0"
features = ["sys"]
[dependencies.wasmer-compiler-singlepass]
version = "6.1.0"
[dependencies.wasmer-middlewares]
version = "6.1.0"
[dependencies.x25519-dalek]
version = "2"
features = ["static_secrets"]
[dependencies.xz2]
version = "0.1"
[dependencies.zeroize]
version = "1.8"
features = ["derive"]
[dev-dependencies.arbitrary]
version = "1"
features = ["derive"]
[dev-dependencies.chrono]
version = "0.4"
features = ["arbitrary"]
default-features = true
[dev-dependencies.criterion]
version = "0.8"
features = ["async_tokio"]
[dev-dependencies.freenet-stdlib]
version = "0.1.30"
features = [
"net",
"testing",
]
[dev-dependencies.httptest]
version = "0.16"
[dev-dependencies.libc]
version = "0.2"
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.regex]
version = "1"
[dev-dependencies.rstest]
version = "0.26"
[dev-dependencies.statrs]
version = "0.18"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.test-log]
version = "0.2"
[dev-dependencies.testresult]
version = "0.4"
[dev-dependencies.tokio-tungstenite]
version = "0.27.0"
[dev-dependencies.ureq]
version = "3.1"
features = ["json"]
[dev-dependencies.which]
version = "8.0"
[build-dependencies.chrono]
version = "0.4"
[target."cfg(unix)".dependencies.gag]
version = "1"
[target."cfg(unix)".dependencies.libc]
version = "0.2"
[target."cfg(windows)".dependencies.serde]
version = "1.0"
features = ["derive"]
[target."cfg(windows)".dependencies.winapi]
version = "0.3"
features = ["sysinfoapi"]
[target."cfg(windows)".dependencies.wmi]
version = "0.18.0"
[target."cfg(windows)".dependencies.zip]
version = "7"
[lints.rust]