Introduction
Connect applications over authenticated QUIC and TCP from Rust, Node.js, or React Native.
minip2p connects applications over authenticated QUIC and TCP. Use it from Rust, Node.js, or React Native. The Rust API is synchronous and caller-driven; the TypeScript API uses Promises and typed events.
Choose a starting point
Rust
Install minip2p-rs, connect two peers, and choose optional network
features.
TypeScript
Choose Node.js or React Native and make the first connection.
What minip2p does
- Authenticates peers with Ed25519 identities.
- Listens and dials over QUIC, TCP, or both.
- Negotiates custom protocol streams between peers.
- Adds pubsub, discovery, relay paths, and NAT traversal when requested.
- Runs on
no_std + allocdevices through the portable Rust endpoint.
The base configuration includes QUIC, Identify, Ping, and custom protocols. Optional capabilities keep the same endpoint interface.
Common tasks
Connect two Rust peers
Print a peer address and measure a Ping RTT between two processes.
TypeScript connections and streams
Connect, cancel work, and exchange bytes over custom protocols.
Publish with pubsub
Subscribe and publish with gossipsub or floodsub from Rust.
TypeScript networking
Use events, pubsub, discovery, mDNS, relays, and NAT traversal.
Traverse NAT
Reach peers through a relay and upgrade to a direct path when possible.
Host a relay server
Install and operate the minip2p Circuit Relay v2 server.
Reference
Feature matrix
Compare capabilities and required network infrastructure.
Glossary
Look up the terms used across both language sections.
Rust API docs
Browse the published Rust reference for the latest release.
Rust troubleshooting
Diagnose connection, stream, discovery, and event problems.
TypeScript troubleshooting
Diagnose Promise, stream, lifecycle, and mobile problems.
Constraints
| pre-1.0 | Interfaces may change before the first stable release. |
| QUIC and TCP | The dial address picks the transport. |
| no_std + alloc | Portable Rust applications supply network I/O, time, and entropy. |
| Rust 1.91+ | Minimum supported Rust version. |
| Node.js 24+ | Minimum supported Node.js version. |