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/docs/rust/install
Install
minip2p-rs, connect two peers, and choose optional network features. - TypeScript/docs/typescript/start
Choose Node.js or React Native and make the first connection.
What minip2p does
- Authenticates peers with Ed25519 identities.
- Listens and connects 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/docs/rust/connect-peers
Print a peer address and measure a Ping RTT between two processes.
- TypeScript connections and streams/docs/typescript/connections-and-streams
Connect, cancel work, and exchange bytes over custom protocols.
- Publish with pubsub/docs/rust/pubsub
Subscribe and publish with gossipsub from Rust.
- TypeScript networking/docs/typescript/networking-and-events
Use events, pubsub, discovery, mDNS, relays, and NAT traversal.
- Traverse NAT/docs/rust/traverse-nat
Reach peers through a relay and upgrade to a direct path when possible.
- Host a relay server/docs/rust/host-a-relay
Install and operate the minip2p Circuit Relay v2 server.
Reference
- Feature matrix/docs/reference/feature-matrix
Compare capabilities and required network infrastructure.
- Glossary/docs/reference/glossary
Look up the terms used across both language sections.
- Rust API docsdocs.rs ↗
Browse the published Rust reference for the latest release.
- Rust troubleshooting/docs/rust/troubleshooting
Diagnose connection, stream, discovery, and event problems.
- TypeScript troubleshooting/docs/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 peer 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. |