---
title: Introduction
description: 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](/rust/install)**

Install `minip2p-rs`, connect two peers, and choose optional network
features.

**[TypeScript](/typescript/start)**

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 + alloc` devices 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](/rust/connect-peers)**

Print a peer address and measure a Ping RTT between two processes.

**[TypeScript connections and streams](/typescript/connections-and-streams)**

Connect, cancel work, and exchange bytes over custom protocols.

**[Publish with pubsub](/rust/pubsub)**

Subscribe and publish with gossipsub or floodsub from Rust.

**[TypeScript networking](/typescript/networking-and-events)**

Use events, pubsub, discovery, mDNS, relays, and NAT traversal.

**[Traverse NAT](/rust/traverse-nat)**

Reach peers through a relay and upgrade to a direct path when possible.

**[Host a relay server](/rust/host-a-relay)**

Install and operate the minip2p Circuit Relay v2 server.

## Reference

**[Feature matrix](/reference/feature-matrix)**

Compare capabilities and required network infrastructure.

**[Glossary](/reference/glossary)**

Look up the terms used across both language sections.

**[Rust API docs](https://docs.rs/minip2p-rs/latest/minip2p/)**

Browse the published Rust reference for the latest release.

**[Rust troubleshooting](/rust/troubleshooting)**

Diagnose connection, stream, discovery, and event problems.

**[TypeScript troubleshooting](/typescript/troubleshooting)**

Diagnose Promise, stream, lifecycle, and mobile problems.

## Constraints

| | |
| --- | --- |
| <Badge>pre-1.0</Badge> | Interfaces may change before the first stable release. |
| <Badge>QUIC and TCP</Badge> | The dial address picks the transport. |
| <Badge>no_std + alloc</Badge> | Portable Rust applications supply network I/O, time, and entropy. |
| <Badge>Rust 1.91+</Badge> | Minimum supported Rust version. |
| <Badge>Node.js 24+</Badge> | Minimum supported Node.js version. |
