beamdb 0.9.1

BEAM — distributed graph database syncing over WebSocket, WebRTC, and multicast. Successor to rod.
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[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