[package]
name = "rings-node"
version = "0.3.0"
edition = "2021"
default-run = "rings"
authors = ["RND <dev@ringsnetwork.io>"]
description = """
Rings is a structured peer-to-peer network implementation using WebRTC, Chord algorithm, and full WebAssembly (WASM) support.
"""
repository = "https://github.com/RingsNetwork/rings-node"
license = "GPL-3.0"
readme = "README.md"
keywords = ["Chord", "DHT", "Web3", "P2P", "WASM"]
categories = ["network-programming", "cryptography", "wasm"]
[lib]
crate-type = ["cdylib", "rlib"]
[features]
default = ["node"]
node = [
"tokio",
"hyper",
"tower-http",
"clap",
"reqwest",
"form_urlencoded",
"pin-project",
"async-stream",
"opentelemetry",
"opentelemetry-jaeger",
"backtrace",
"lazy_static",
"axum/ws",
"axum/headers",
"rings-core/default",
"rings-rpc/std",
"rings-derive/default",
"rings-transport/native-webrtc",
"wasmer/default",
"wasmer-types",
]
browser = [
"backtrace",
"clap",
"tracing-wasm",
"reqwest-wasm",
"rings-core/wasm",
"rings-rpc/wasm",
"rings-derive/wasm",
"rings-transport/web-sys-webrtc",
"serde-wasm-bindgen",
"wasmer/js-default",
"lazy_static",
"wasm-bindgen",
"wasm-bindgen-futures",
"js-sys",
]
browser_chrome_test = ["browser"]
[dependencies]
anyhow = "1.0.45"
arrayref = "0.3.6"
async-trait = "0.1.52"
base64 = { version = "0.13.0" }
bincode = "1.3.3"
bytes = { version = "1.2.1", features = ["serde"] }
chrono = "0.4.23"
dotenv = "0.15.0"
futures = { version = "0.3.21", features = ["alloc"] }
futures-timer = "3.0.2"
log = { version = "0.4", features = ["std"] }
rings-core = { workspace = true, optional = true }
rings-derive = { workspace = true, optional = true }
rings-rpc = { workspace = true, optional = true }
rings-transport = { workspace = true }
serde = { version = "1.0.136", features = ["derive"] }
serde_json = "1.0.70"
serde_yaml = "0.9.17"
thiserror = "1"
tracing = "0.1.37"
tracing-log = "0.1.3"
tracing-opentelemetry = "0.18.0"
tracing-subscriber = { version = "0.3.15", features = ["ansi"] }
wasmer = { version = "3.3.0", optional = true, default-features = false }
wasmer-types = { version = "3.3.0", optional = true }
async-stream = { version = "0.3.2", optional = true }
axum = { version = "0.6.10", optional = true }
backtrace = { version = "0.3.6", optional = true }
clap = { version = "4.0.14", features = ["derive", "env"], optional = true }
form_urlencoded = { version = "1.0.1", optional = true }
hyper = { version = "0.14.25", features = ["full"], optional = true }
lazy_static = { version = "1.4.0", optional = true }
opentelemetry = { version = "0.18.0", default-features = false, features = ["trace", "rt-tokio"], optional = true }
opentelemetry-jaeger = { version = "0.17.0", features = ["rt-tokio"], optional = true }
pin-project = { version = "1", optional = true }
reqwest = { version = "0.11", features = ["json", "rustls-tls"], optional = true, default-features = false }
tokio = { version = "1.13.0", features = ["full"], optional = true }
tower-http = { version = "0.3.4", features = ["cors"], optional = true }
console_error_panic_hook = { version = "0.1.1", optional = true }
js-sys = { workspace = true, optional = true }
reqwest-wasm = { version = "0.11", features = ["json", "rustls-tls"], optional = true, default-features = false }
serde-wasm-bindgen = { workspace = true, optional = true }
tracing-wasm = { version = "0.2.1", optional = true }
wasm-bindgen = { workspace = true, features = ["serde-serialize"], optional = true }
wasm-bindgen-futures = { workspace = true, optional = true }
[dev-dependencies]
fluvio-wasm-timer = "0.2.5"
wasm-bindgen-test = { version = "0.3.0" }
[[bin]]
name = "rings"
path = "bin/rings.rs"
required-features = ["node"]