Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
128 lines (111 loc) · 3.56 KB
/
Copy pathCargo.toml
File metadata and controls
128 lines (111 loc) · 3.56 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
# QUICK- TCP-over-QUIC Tunnel - Cloudflare quiche Implementation
# Build: cargo build --release
#
# This implementation uses Cloudflare's quiche for QUIC with custom BBR support.
# Optimized for satellite networks (LEO, MEO, GEO).
[workspace]
resolver = "2"
members = [
"crates/quick-protocol",
"crates/quick-fec",
"crates/quick-compression",
"crates/quick-kcp",
"crates/quick-transport",
"crates/quick-config",
"crates/quick-metrics",
"crates/quick-core",
"crates/quick-dpi",
"crates/quick-dpi-storage",
"crates/quick-logging",
"crates/quick-container",
"crates/quick-reload",
"crates/quick-events",
"bins/quick-entry",
"bins/quick-exit",
]
[workspace.package]
version = "0.1.0"
edition = "2021"
rust-version = "1.75"
license = "MIT"
repository = "https://github.com/nexat/quick-"
authors = ["YANDO FOTSO Noel Junior"]
[workspace.dependencies]
# QUIC - Cloudflare's quiche library (default, requires NASM/CMake on Windows)
quiche = { git = "https://github.com/Yanstart/quiche", branch = "v0.22.0-bbrv3" }
# QUIC - Quinn (pure Rust fallback, easier to build)
quinn = "0.11"
rustls = { version = "0.23", default-features = false, features = ["ring", "std"] }
rcgen = "0.13"
webpki-roots = "0.26"
rustls-pemfile = "2.1"
# Async runtime
tokio = { version = "1.35", features = ["full"] }
# Error handling
thiserror = "1.0"
anyhow = "1.0"
# Serialization
serde = { version = "1.0", features = ["derive"] }
toml = "0.8"
bytes = "1.5"
# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
# Metrics
prometheus = "0.13"
# Crypto (for KCP encryption)
ring = "0.17"
# Random number generation (for secure connection IDs)
rand = "0.8"
# Testing
tokio-test = "0.4"
proptest = "1.4"
criterion = "0.5"
# Internal crates
quick-protocol = { path = "crates/quick-protocol" }
quick-fec = { path = "crates/quick-fec" }
quick-compression = { path = "crates/quick-compression" }
quick-kcp = { path = "crates/quick-kcp" }
quick-transport = { path = "crates/quick-transport", default-features = false }
quick-config = { path = "crates/quick-config" }
quick-metrics = { path = "crates/quick-metrics" }
quick-core = { path = "crates/quick-core" }
quick-dpi = { path = "crates/quick-dpi" }
quick-dpi-storage = { path = "crates/quick-dpi-storage" }
quick-logging = { path = "crates/quick-logging" }
quick-container = { path = "crates/quick-container", default-features = false }
quick-reload = { path = "crates/quick-reload" }
quick-events = { path = "crates/quick-events", default-features = false }
# Additional dependencies for new crates
sqlx = { version = "0.8", features = ["runtime-tokio", "postgres", "chrono", "uuid", "json"] }
chrono = { version = "0.4", features = ["serde"] }
uuid = { version = "1.6", features = ["v4", "serde"] }
serde_json = "1.0"
tracing-appender = "0.2"
parking_lot = "0.12"
axum = { version = "0.7", features = ["tokio"] }
tower = { version = "0.4", features = ["util"] }
tower-http = { version = "0.5", features = ["cors", "trace"] }
notify = "6.1"
async-trait = "0.1"
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls"] }
reqwest-eventsource = "0.6"
futures-util = "0.3"
sgp4 = "2"
libc = "0.2"
[profile.release]
lto = "thin"
codegen-units = 1
opt-level = 3
strip = true
# Size-optimized profile for IoT/embedded deployment (<5 MB target)
# Usage: cargo build --profile release-small --no-default-features --features quiche-backend
[profile.release-small]
inherits = "release"
lto = "fat"
opt-level = "s"
strip = true
panic = "abort"
[profile.bench]
lto = "thin"
codegen-units = 1