Files
nym/smolmix/core
benedetta davico 0f7dbb94a8 fix for crates (#6745)
* version fix

* try to publish core crates first

* bump version ci

* fix to yaml

* Slight modifications to ordering, remove core-crates and rely on  ordering as test + sed tweak

* crates release: bump version to 1.21.0 (#6744)

Co-authored-by: Nym bot <nym-bot@users.noreply.github.com>
Co-authored-by: mfahampshire <maxhampshire@pm.me>

* Remove unnecessary verification step becase of dryrun (doubled)

* Revert some changes to develop

* Add preflight to its own workflow

* Clippy

* Update crate publishing file

* Clippy

---------

Co-authored-by: benedettadavico <benedettadavico@users.noreply.github.com>
Co-authored-by: mfahampshire <maxhampshire@pm.me>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nym bot <nym-bot@users.noreply.github.com>
2026-05-11 14:50:14 +00:00
..
2026-04-14 20:13:12 +00:00
2026-04-14 20:13:12 +00:00
2026-05-11 14:50:14 +00:00
2026-04-14 20:13:12 +00:00

smolmix

A TCP/UDP tunnel over the Nym mixnet. Uses smoltcp as a userspace network stack and connects to an Exit Gateway's IP Packet Router, so the exit IP is the gateway's — not yours.

Tunnel gives you standard TcpStream and UdpSocket types (from tokio-smoltcp) that work transparently with the async Rust ecosystem: tokio-rustls for TLS, hyper for HTTP, tokio-tungstenite for WebSockets, etc.

Examples

All examples include a clearnet-vs-mixnet comparison with timing and accept --ipr <ADDRESS> for targeting a specific exit node.

cargo run -p smolmix --example tcp         # raw TCP connection
cargo run -p smolmix --example udp         # raw UDP datagram
cargo run -p smolmix --example websocket   # WebSocket over TLS (raw TcpStream composability)

Architecture

See src/ARCHITECTURE.md.