Distributed Erlang over iroh P2P + TLS, with a bot powers SDK
1[package]
2name = "erl_iroh"
3version = "0.1.0"
4edition = "2021"
5description = "Distributed Erlang protocol over iroh P2P + TLS, with a bot powers SDK"
6license = "MIT OR Apache-2.0"
7readme = "README.md"
8keywords = ["erlang", "iroh", "p2p", "distribution", "beam"]
9categories = ["network-programming", "asynchronous"]
10# Demo sources live under examples/ but are installed as [[bin]] flake apps.
11autoexamples = false
12
13[dependencies]
14# Erlang distribution + ETF
15erl_dist = "0.8"
16eetf = "0.11"
17
18# P2P transport (QUIC + TLS + holepunch)
19iroh = "1.0"
20
21# Async runtime
22tokio = { version = "1", features = ["rt-multi-thread", "macros", "net", "time", "sync", "io-util", "signal"] }
23tokio-util = { version = "0.7", features = ["compat"] }
24futures = "0.3"
25async-dup = "1.2"
26
27# TLS for classic TCP path (security pedants)
28tokio-rustls = "0.26"
29rustls = { version = "0.23", default-features = false, features = ["ring", "std", "tls12"] }
30rustls-pki-types = "1"
31rustls-pemfile = "2"
32webpki-roots = "0.26"
33
34# Errors / utils
35thiserror = "2"
36anyhow = "1"
37bytes = "1"
38tracing = "0.1"
39rand = "0.8"
40bitflags = "2"
41
42# CLI demos (also used as flake apps)
43tracing-subscriber = { version = "0.3", features = ["env-filter"] }
44clap = { version = "4", features = ["derive"] }
45
46[dev-dependencies]
47tempfile = "3"
48rcgen = "0.13"
49
50[[bin]]
51name = "erl-iroh-demo"
52path = "examples/two_bots.rs"
53
54[[bin]]
55name = "erl-iroh-bot"
56path = "examples/bot.rs"
57
58[[bin]]
59name = "erl-iroh-peer"
60path = "examples/peer.rs"