[package]
edition = "2024"
rust-version = "1.85"
name = "beamdb"
version = "0.9.1"
authors = [
"Martti Malmi <martti@mmalmi.org>",
"David Newman <david.r.newman@proton.me>",
]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "BEAM — distributed graph database syncing over WebSocket, WebRTC, and multicast. Successor to rod."
homepage = "https://github.com/guan-tends/beam"
documentation = "https://docs.rs/beamdb"
readme = "README.md"
keywords = [
"p2p",
"graph-database",
"distributed",
"sync",
"websocket",
]
categories = [
"database",
"network-programming",
"asynchronous",
]
license = "MIT"
repository = "https://github.com/guan-tends/beam"
[features]
default = []
persy = ["dep:persy"]
webrtc = [
"dep:str0m",
"dep:stun",
]
[lib]
name = "beam"
crate-type = [
"cdylib",
"rlib",
]
path = "src/lib.rs"
[[bin]]
name = "beam"
path = "src/main.rs"
[[bin]]
name = "beam-sea-keygen"
path = "src/bin/beam-sea-keygen.rs"
[[example]]
name = "dump_redb"
path = "examples/dump_redb.rs"
[[example]]
name = "encrypted_data"
path = "examples/encrypted_data.rs"
[[example]]
name = "nested_graph"
path = "examples/nested_graph.rs"
[[example]]
name = "persistent_storage"
path = "examples/persistent_storage.rs"
[[example]]
name = "quickstart"
path = "examples/quickstart.rs"
[[example]]
name = "two_node_sync"
path = "examples/two_node_sync.rs"
[[example]]
name = "user_auth"
path = "examples/user_auth.rs"
[[test]]
name = "async_put_e2e"
path = "tests/async_put_e2e.rs"
[[test]]
name = "cross_backend_mesh_e2e"
path = "tests/cross_backend_mesh_e2e.rs"
[[test]]
name = "examples_e2e"
path = "tests/examples_e2e.rs"
[[test]]
name = "integration"
path = "tests/integration.rs"
[[test]]
name = "migration_e2e"
path = "tests/migration_e2e.rs"
[[test]]
name = "persy_e2e"
path = "tests/persy_e2e.rs"
[[test]]
name = "quorum_e2e"
path = "tests/quorum_e2e.rs"
[[test]]
name = "send_metrics_e2e"
path = "tests/send_metrics_e2e.rs"
[[test]]
name = "shutdown_e2e"
path = "tests/shutdown_e2e.rs"
[[test]]
name = "webrtc_datachannel"
path = "tests/webrtc_datachannel.rs"
[[test]]
name = "webrtc_node_sync"
path = "tests/webrtc_node_sync.rs"
[[test]]
name = "wire_live"
path = "tests/wire_live.rs"
[[test]]
name = "wire_tests"
path = "tests/wire_tests.rs"
[[bench]]
name = "my_benchmark"
path = "benches/my_benchmark.rs"
harness = false
[dependencies.aes-gcm]
version = "0.10"
[dependencies.async-trait]
version = "0.1.51"
[dependencies.base64]
version = "0.22"
[dependencies.bytes]
version = "1.1.0"
[dependencies.clap]
version = "4.6"
features = [
"derive",
"env",
]
[dependencies.dirs]
version = "6.0"
[dependencies.env_logger]
version = "0.11"
[dependencies.futures-util]
version = "0.3.21"
[dependencies.java-utils]
version = "0.1.0"
[dependencies.log]
version = "0.4.14"
[dependencies.oko-multicast-socket]
version = "0.5"
features = ["tokio"]
[dependencies.p256]
version = "0.14"
features = [
"ecdh",
"getrandom",
]
[dependencies.parking_lot]
version = "0.12"
[dependencies.pbkdf2]
version = "0.13"
[dependencies.persy]
version = "1.8"
features = ["background_ops"]
optional = true
[dependencies.postcard]
version = "1"
features = ["alloc"]
default-features = false
[dependencies.rand]
version = "0.9"
[dependencies.redb]
version = "4.1"
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0.64"
[dependencies.sha2]
version = "0.11"
[dependencies.size_format]
version = "1.0.2"
[dependencies.str0m]
version = "0.21"
optional = true
[dependencies.stun]
version = "0.17"
optional = true
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1.17.0"
features = ["full"]
[dependencies.tokio-native-tls]
version = "0.3.0"
[dependencies.tokio-stream]
version = "0.1.8"
[dependencies.tokio-tungstenite]
version = "0.30"
features = ["native-tls"]
[dependencies.url]
version = "2.2.2"
[dependencies.warp]
version = "0.4.3"
features = ["server"]
[dependencies.zeroize]
version = "1.7"
[dev-dependencies.criterion]
version = "0.8"
features = [
"async_futures",
"async_tokio",
"html_reports",
]
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
strip = true