forked from defenseunicorns/peat-mesh
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
115 lines (95 loc) · 3.8 KB
/
Cargo.toml
File metadata and controls
115 lines (95 loc) · 3.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
[package]
name = "peat-mesh"
version = "0.8.2"
edition = "2021"
authors = ["Kit Plummer <kitplummer@defenseunicorns.com>"]
license = "Apache-2.0"
description = "Peat mesh networking library with CRDT sync, transport security, and topology management"
repository = "https://github.com/defenseunicorns/peat-mesh"
documentation = "https://docs.rs/peat-mesh"
homepage = "https://github.com/defenseunicorns/peat-mesh"
keywords = ["mesh", "networking", "crdt", "p2p", "topology"]
categories = ["network-programming", "cryptography"]
[dependencies]
# Async runtime
tokio = { version = "1", features = ["full"] }
tokio-util = "0.7"
# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"
# Utilities
thiserror = "1"
anyhow = "1"
async-trait = "0.1"
tracing = "0.1"
chrono = { version = "0.4", features = ["serde"] }
# Mesh-specific dependencies
futures = "0.3"
uuid = { version = "1.0", features = ["v4", "serde"] }
# Transport security (bypass.rs — ADR-042)
ed25519-dalek = { version = "2", features = ["rand_core"] }
chacha20poly1305 = "0.10"
# Security primitives (ADR-049 Phase 5)
x25519-dalek = { version = "2", features = ["static_secrets"] }
hkdf = "0.12"
hmac = "0.12"
sha2 = "0.10"
subtle = "2.6"
base64 = "0.22"
hex = "0.4"
rand_core = { version = "0.6", features = ["getrandom"] }
# Discovery (ADR-049 Phase 2)
mdns-sd = "0.11"
toml = "0.8"
# Peat-Lite transport (ADR-035, optional)
log = { version = "0.4", optional = true }
peat-lite = { version = "0.2", default-features = false, optional = true }
# Bluetooth LE transport (ADR-032/ADR-039, optional)
peat-btle = { version = "0.2", optional = true }
# HTTP/WS service broker (ADR-049 Phase 6)
axum = { version = "0.7", features = ["macros", "ws", "multipart"], optional = true }
tower = { version = "0.4", features = ["util"], optional = true }
tower-http = { version = "0.5", features = ["cors", "trace", "timeout"], optional = true }
# Kubernetes discovery (ADR-0001)
kube = { version = "0.98", optional = true, default-features = false, features = ["runtime", "client", "derive", "rustls-tls"] }
k8s-openapi = { version = "0.24", optional = true, default-features = false }
rustls = { version = "0.23", optional = true, default-features = false, features = ["ring", "logging", "std", "tls12"] }
# Structured logging (binary target)
tracing-subscriber = { version = "0.3", features = ["env-filter"], optional = true }
# Automerge backend storage (ADR-049 Phase 3)
automerge = { version = "0.7.1", optional = true }
iroh = { version = "0.97", optional = true, features = ["address-lookup-mdns"] }
iroh-blobs = { version = "0.99", optional = true }
redb = { version = "2.4", optional = true }
lru = { version = "0.16.3", optional = true }
negentropy = { version = "0.5", optional = true }
rand = { version = "0.9", optional = true }
tokio-stream = { version = "0.1", optional = true }
[[bin]]
name = "peat-mesh-node"
required-features = ["node"]
[[example]]
name = "basic_mesh"
[[example]]
name = "document_sync"
required-features = ["automerge-backend"]
[[example]]
name = "broker_service"
required-features = ["automerge-backend", "broker"]
[features]
default = ["automerge-backend"]
lite-bridge = ["log", "dep:peat-lite"]
bluetooth = ["dep:peat-btle"]
automerge-backend = ["automerge", "iroh", "iroh-blobs", "redb", "lru", "negentropy", "rand", "tokio-stream"]
broker = ["axum", "tower", "tower-http"]
kubernetes = ["kube", "k8s-openapi", "rustls"]
node = ["automerge-backend", "broker", "kubernetes", "k8s-openapi/v1_32", "tracing-subscriber", "lite-bridge"]
[dev-dependencies]
tokio = { version = "1", features = ["full", "test-util", "macros"] }
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
tempfile = "3.13"
automerge = "0.7.1"
http-body-util = "0.1"
tokio-tungstenite = "0.24"
futures-util = "0.3"
k8s-openapi = { version = "0.24", features = ["v1_32"] }