-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathCargo.toml
More file actions
156 lines (148 loc) · 5.62 KB
/
Copy pathCargo.toml
File metadata and controls
156 lines (148 loc) · 5.62 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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
[workspace]
members = [
"crates/api",
"crates/bootstrap_client",
"crates/bootstrap_srv",
"crates/core",
"crates/dht",
"crates/gossip",
"crates/kitsune2",
"crates/kitsune2_showcase",
"crates/test_utils",
"crates/tool_proto_build",
"crates/transport_iroh",
]
resolver = "2"
[workspace.package]
version = "0.5.0-dev.6"
authors = ["Holochain Core Dev Team <devcore@holochain.org>"]
homepage = "https://www.holochain.org/"
repository = "https://github.com/holochain/kitsune2"
keywords = ["holochain", "kitsune", "p2p", "dht", "networking"]
categories = ["network-programming"]
license = "Apache-2.0"
edition = "2024"
[profile.release]
panic = "abort"
[profile.dev]
panic = "abort"
[workspace.dependencies]
# Self dependencies for workspace crates to depend on each other.
# For example, most crates will depend on the api crate.
kitsune2 = { version = "0.5.0-dev.0", path = "crates/kitsune2", default-features = false }
kitsune2_api = { version = "0.5.0-dev.0", path = "crates/api" }
kitsune2_dht = { version = "0.5.0-dev.0", path = "crates/dht" }
kitsune2_gossip = { version = "0.5.0-dev.0", path = "crates/gossip" }
kitsune2_transport_iroh = { version = "0.5.0-dev.0", path = "crates/transport_iroh" }
kitsune2_bootstrap_client = { version = "0.5.0-dev.0", path = "crates/bootstrap_client" }
# used by bootstrap_srv for mpmc worker queue pattern.
async-channel = "2.3.1"
# this is used by bootstrap_srv as the http server implementation.
axum = { version = "0.8", default-features = false }
# CORS support for axum
tower-http = "0.6"
# Tower middleware and service abstractions
tower = "0.5"
# Used with tower-http for constants
http = "1.3"
# debugging is far easier when you can see short byte arrays
# as base64 instead of decimal u8s.
base64 = "0.22.1"
# shallow-clone byte arrays is a solved problem.
# bytes is the crate that solves it.
bytes = { version = "1.8.0", features = ["serde"] }
# Used to pretty-print the timestamps in the showcase app
chrono = "0.4.41"
# bootstrap_srv for cli param parsing
clap = "4.5.21"
# bootstrap_srv uses this to make a best-effort to clean up tempfiles
# on shutdown.
ctrlc = { version = "3.4.5", features = ["termination"] }
# bootstrap_srv for signature verification.
ed25519-dalek = "2.1.1"
# alternative transport implementation using iroh
iroh = "1.0.0"
# automock traits for tests
mockall = "0.14"
# watchable stream of values used in iroh transport
n0-watcher = "1.0.0-rc.0"
# bootstrap_srv uses this to determine worker thread count.
num_cpus = "1.16.0"
# api uses this for the kitsune2 wire protocol.
prost = "0.14"
# used to generate private cryptography keys.
rand = "0.8.5"
# kitsune types need to be serializable for network transmission.
serde = { version = "1.0", features = ["derive"] }
# kitsune2 agent info is serialized as json to improve debugability of
# bootstrapping. So, we need a json library.
serde_json = "1.0"
# tokio is used for synchronization primitives as well as internal
# task spawning. We could consider abstracting the async runtime
# at some point in the future.
tokio = "1.41.1"
# Simplify writing async code
futures = "0.3"
# bootstrap_srv uses tempfiles as virtual memory for storage instead of RAM.
tempfile = "3.14.0"
# kitsune2 internally uses a mix of std::io::Error and thiserror derivation.
thiserror = "2.0.3"
# ureq is used in the bootstrap client module.
ureq = "3.0"
# url validation used by the api crate.
url = "2.5.4"
# kitsune2 uses tracing to log events. A consumer can choose any subscriber
# to receive these logs.
tracing = "0.1"
# Used in the showcase app to log events to a file
tracing-appender = "0.2.3"
# Used in testing and the showcase app to output tracing
tracing-subscriber = "0.3"
# TLS support for the bootstrap server
axum-server = { version = "0.7.1", default-features = false }
# TLS support for the bootstrap server
rustls = { version = "0.23", default-features = false }
rustls-pemfile = "2.2"
# axum-server integration with rustls for TLS
tokio-rustls = "0.26"
# for generating JSON schemas to help with checking configuration
schemars = { version = "0.9", features = ["preserve_order"] }
# Used in the showcase CLI
rustyline = { version = "18.0" }
# Used in showcase app for the commands
strum = { version = "0.28", features = ["derive", "strum_macros"] }
# Used for telemetry in relay server and bootstrap relay metrics
opentelemetry = "0.30"
opentelemetry_sdk = "0.30"
opentelemetry-otlp = { version = "0.30", features = ["http-proto"] }
# --- tool-dependencies ---
# The following workspace dependencies are thus-far only used in unpublished
# tools and so are not needed in any true dependency trees.
# Please be careful to only include them in build dependencies or move them
# above this section.
# --- tool-dependencies ---
prost-build = "0.14"
# --- dev-dependencies ---
# The following workspace dependencies are used in crate dev-dependencies.
# Please be careful to only include them in dev dependencies or move them
# above this section.
# --- dev-dependencies ---
# Criterion benchmarks
criterion = { version = "0.8", features = ["async_tokio"] }
kitsune2_bootstrap_srv = { version = "0.5.0-dev.0", path = "crates/bootstrap_srv" }
kitsune2_core = { version = "0.5.0-dev.0", path = "crates/core" }
kitsune2_test_utils = { version = "0.5.0-dev.0", path = "crates/test_utils" }
# iroh relay for testing iroh transport
iroh-relay = "1.0.0"
iroh-base = "1.0.0"
# DNS resolver split out of iroh-relay in the 1.0 release; used in tests
# that drive a relay client.
iroh-dns = "1.0.0"
# used to hash op data
sha2 = "0.11"
# Generating test certificates in the bootstrap_srv
rcgen = "0.14"
# Deterministic RNG for reproducible tests
rand_chacha = "0.10"
# Used in the schema example
jsonschema = "0.46"