aboutsummaryrefslogtreecommitdiffstats
path: root/research/experiments/019-idle-links/quic/Cargo.toml
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-09-28 19:41:08 +0100
committereunhhu <[email protected]>2026-09-28 19:41:08 +0100
commit63cc9554f2cd93e46d0413a21cbce05014e2f2b3 (patch)
tree1479bb368b8fa4d2dcac3c43d73c9b34ffca41dc /research/experiments/019-idle-links/quic/Cargo.toml
parenta83d663404e030a8734fddc8827fb4afe309a1b9 (diff)
downloadpure-63cc9554f2cd93e46d0413a21cbce05014e2f2b3.tar.gz
pure-63cc9554f2cd93e46d0413a21cbce05014e2f2b3.zip
Measure a link at rest: 132 bytes against a QUIC connection's 38,106 (094)
M1 of design 011. A Pure node allows 1,000 to 1,000,000 senders; each sends one order and, once told it is stored, rests. At rest a link costs the node 132 bytes (the sender allowed, 73; its number heard, about 60) and no transport state; with a million the node runs in 139 MB. A quinn 0.11 service holding the same exchange's clients connected at rest costs 38,106 bytes a connection: 289 times as much, past the design's 1/100. A link at rest takes its next record in 0.56 ms to stored, one X25519 on the node included; a new QUIC connection takes 1.06 ms and 2.8 times the receiver's CPU, without storing. research/experiments/019-idle-links: links.c, many senders written from serve/link.h's packet format alone (a second implementation), and the quinn service and clients (quic/, built offline); run.py makes both measurements.
Diffstat (limited to 'research/experiments/019-idle-links/quic/Cargo.toml')
-rw-r--r--research/experiments/019-idle-links/quic/Cargo.toml18
1 files changed, 18 insertions, 0 deletions
diff --git a/research/experiments/019-idle-links/quic/Cargo.toml b/research/experiments/019-idle-links/quic/Cargo.toml
new file mode 100644
index 0000000..cc0f527
--- /dev/null
+++ b/research/experiments/019-idle-links/quic/Cargo.toml
@@ -0,0 +1,18 @@
+[package]
+name = "idle-quic"
+version = "0.1.0"
+edition = "2021"
+publish = false
+
+# The QUIC side of M1 (../run.py, docs/design/011-pure-transport.md): quinn
+# 0.11 with rustls and ring, as a Rust service would use it.
+[dependencies]
+quinn = { version = "0.11", default-features = false, features = ["rustls-ring", "runtime-tokio"] }
+rustls = { version = "0.23", default-features = false, features = ["ring", "std"] }
+tokio = { version = "1", features = ["rt", "rt-multi-thread", "macros", "time", "net", "sync", "io-util", "io-std"] }
+ring = "0.17"
+
+[profile.release]
+debug = 1
+
+[workspace]