[package] name = "locutus-core" version = "0.0.3" edition = "2021" rust-version = "1.58.0" publish = true description = "Locutus P2P network core network implementation" license = "MIT OR Apache-2.0" repository = "https://github.com/freenet/locutus" [dependencies] anyhow = "1" arbitrary = { version = "1", features = ["derive"], optional = true} asynchronous-codec = "0.6" async-trait = "0.1" bincode = "1" blake2 = { version = "0.10", features = [ "std" ] } bs58 = "0.4" chacha20poly1305 = { workspace = true } config = { version = "0.13.0", features = [ "toml" ] } crossbeam = "0.8.2" ctrlc = { version = "3.0", features = ["termination"] } dashmap = "^5.1" directories = "4" either = { workspace = true , features = ["serde"] } futures = "0.3.21" libp2p = { version = "0.42.2", features = [ "autonat", "deflate", "dns-tokio", "identify", "noise", "mplex", "ping", "tcp-tokio", "yamux" ], default-features = false } log = { version = "0.4", features = ["serde"] } once_cell = "1" parking_lot = "0.12.0" rand = { workspace = true } serde = { workspace = true, features = ["rc", "derive"] } serde_with = { workspace = true } stretto = { version = "0.7", features = ["async", "sync"] } thiserror = "1" tokio = { version = "1", features = ["rt-multi-thread", "sync", "macros", "fs"] } unsigned-varint = "0.7" uuid = { version = "1", features = ["serde", "v4", "v1"] } rmp-serde = { workspace = true, optional = true } sqlx = { version = "0.6", features = ["sqlite", "runtime-tokio-rustls"] } warp = { version = "0.3", default-features = false, optional = true, features = ["multipart", "tls"] } # Tracing deps tracing = { version = "0.1", optional = true } opentelemetry = { version = "0.18.0" , default-features = false, features = ["rt-tokio", "trace"], optional = true } opentelemetry-jaeger = { version = "0.17.0", features = ["rt-tokio","collector_client", "isahc"], optional = true } tracing-opentelemetry = { version = "0.18.0", optional = true } tracing-subscriber = { version = "0.3.16", optional = true } # internal deps locutus-runtime = { path = "../locutus-runtime", version = "0.0.3" } locutus-stdlib = { path = "../locutus-stdlib", version = "0.0.3", features = ["net"] } [dev-dependencies] tracing = "0.1" arbitrary = { version = "1", features = ["derive"] } itertools = "0.10" pico-args = "0.5" locutus-runtime = { path = "../locutus-runtime", features = ["testing"] } locutus-stdlib = { path = "../locutus-stdlib", features = ["testing", "net"] } [features] testing = ["arbitrary"] default = ["websocket"] websocket = ["warp/websocket", "rmp-serde"] trace = ["tracing", "opentelemetry", "opentelemetry-jaeger", "tracing-opentelemetry", "tracing-subscriber"]