Files
nym/mixtcp
mfahampshire 5e63a70215 Add mixtcp crate for smoltcp-based IP tunneling
Introduces mixtcp, a smoltcp-based device that tunnels TCP/IP through
the mixnet via IpMixStream and Exit Gateway IPRs.

Components:
- NymIprDevice: smoltcp::phy::Device impl using channel-based I/O
- NymIprBridge: async task bridging the device to IpMixStream
- create_device(): helper to set up the complete stack

Examples:
- cloudflare_ping: ICMP ping through the mixnet
- https_client: HTTPS requests through the mixnet
- tls: TLS connections through the mixnet
2026-04-29 10:28:03 +01:00
..

MixTCP

This is an initial proof of concept of a SmolTCP device that uses the Mixnet for transport. It relies on the IpMixStream module from the Rust SDK to set up a connection with an Exit Gateway's Ip-Packet-Router, meaning that this is the IP that is seen by the receiver of the request.

This can be used as the basis for building HTTP(S) crates on top of the Mixnet whilst abstracting away the complexities of using the Mixnet for transport.

More to come in the future.

examples/ contains examples for:

  • a TLS ping with Cloudflare
  • creating a reqwest-like HTTPS GET request and receiving a response

Component Interaction

                          create_device()
                                |
                 +--------------+---------------+
                 |              |               |
                 v              v               v
           NymIprDevice   NymIprBridge      IpPair
                 |              |            (10.0.x.x)
                 |              |
                 +-- channels --+
                                |
                                v
                           IpMixStream
                                |
                                v
                             Mixnet