[package]
edition = "2021"
rust-version = "1.90"
name = "dynomite-engine"
version = "0.0.1"
authors = ["The Dynomite Rust Port Authors"]
build = false
include = [
"/src/**/*.rs",
"/examples/**/*.rs",
"/Cargo.toml",
"/README.md",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Embeddable Dynamo-style distributed replication engine: token-ring partitioning, gossip cluster, hinted handoff, anti-entropy, RediSearch FT.* surface."
homepage = "https://github.com/gburd/dynomite"
documentation = "https://docs.rs/dynomite"
readme = "README.md"
keywords = [
"dynamo",
"distributed",
"cluster",
"replication",
"redis",
]
categories = [
"database-implementations",
"network-programming",
"concurrency",
]
license = "Apache-2.0"
repository = "https://github.com/gburd/dynomite"
[package.metadata.docs.rs]
all-features = false
targets = ["x86_64-unknown-linux-gnu"]
[features]
bench-macro = []
chaos = []
default = [
"tcp",
"tls",
]
quic = ["dep:quiche"]
riak-storage = ["dep:noxu"]
tcp = []
tls = []
[lib]
name = "dynomite"
path = "src/lib.rs"
[[example]]
name = "demo_vector_text"
path = "examples/demo_vector_text.rs"
[[example]]
name = "embedded_cluster3"
path = "examples/embedded_cluster3.rs"
[[example]]
name = "embedded_custom_transport_sketch"
path = "examples/embedded_custom_transport_sketch.rs"
[[example]]
name = "embedded_minimal"
path = "examples/embedded_minimal.rs"
[[example]]
name = "embedded_single_node"
path = "examples/embedded_single_node.rs"
[[example]]
name = "random_slicing"
path = "examples/random_slicing.rs"
[dependencies.aes]
version = "0.8"
[dependencies.ahash]
version = "0.8"
[dependencies.base64]
version = "0.22"
[dependencies.bytes]
version = "1.11"
[dependencies.cbc]
version = "0.1"
features = ["alloc"]
[dependencies.cipher]
version = "0.4"
features = ["block-padding"]
[dependencies.crossbeam-channel]
version = "0.5"
[dependencies.crossbeam-queue]
version = "0.3"
[dependencies.dynomite-text]
version = "0.0.1"
[dependencies.dynomite-vec]
version = "0.0.1"
[dependencies.futures-core]
version = "0.3"
[dependencies.gen-fsm]
version = "0.0.1"
[dependencies.httparse]
version = "1.10"
[dependencies.nix]
version = "0.31"
features = [
"signal",
"process",
"fs",
"user",
"net",
"hostname",
]
[dependencies.noxu]
version = "3.0.2"
optional = true
[dependencies.opentelemetry]
version = "0.32"
[dependencies.parking_lot]
version = "0.12"
[dependencies.prometheus]
version = "0.14"
[dependencies.quiche]
version = "0.28"
optional = true
[dependencies.rand]
version = "0.8"
[dependencies.rand_core]
version = "0.6"
features = ["std"]
[dependencies.rsa]
version = "0.9"
features = [
"sha1",
"sha2",
"std",
"pem",
]
[dependencies.rustls]
version = "0.23"
features = [
"std",
"ring",
]
default-features = false
[dependencies.rustls-pemfile]
version = "2"
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.serde_yaml]
version = "0.9"
[dependencies.sha1]
version = "0.10"
[dependencies.socket2]
version = "0.6"
[dependencies.thiserror]
version = "2.0"
[dependencies.throttle-core]
version = "0.0.1"
[dependencies.time]
version = "0.3"
features = [
"formatting",
"macros",
"local-offset",
]
[dependencies.tokio]
version = "1.52"
features = ["full"]
[dependencies.tokio-rustls]
version = "0.26"
features = ["ring"]
default-features = false
[dependencies.tokio-util]
version = "0.7"
features = ["full"]
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-opentelemetry]
version = "0.33"
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"env-filter",
"fmt",
"json",
]
[dependencies.webpki-roots]
version = "0.26"
[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]
[dev-dependencies.hegeltest]
version = "0.14"
features = ["native"]
[dev-dependencies.hex]
version = "0.4"
[dev-dependencies.rcgen]
version = "0.14"
[dev-dependencies.regex]
version = "1"
[dev-dependencies.tempfile]
version = "3.27"
[dev-dependencies.tokio]
version = "1.52"
features = [
"full",
"full",
"test-util",
]
[lints.clippy]
doc_markdown = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
missing_docs = "warn"
unsafe_code = "forbid"
[lints.rust.rust_2018_idioms]
level = "warn"
priority = -1
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(loom)"]