You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-[`/packages/peer-record`](./packages/peer-record) Used to transfer signed peer data across the network
63
-
-[`/packages/peer-store`](./packages/peer-store) Stores information about peers libp2p knows on the network
64
-
-[`/packages/protocol-perf`](./packages/protocol-perf) Implementation of Perf Protocol
65
-
-[`/packages/pubsub`](./packages/pubsub) libp2p pubsub base class
66
-
-[`/packages/pubsub-floodsub`](./packages/pubsub-floodsub) libp2p-floodsub, also known as pubsub-flood or just dumbsub, this implementation of pubsub focused on delivering an API for Publish/Subscribe, but with no CastTree Forming (it just floods the network).
67
-
-[`/packages/stream-multiplexer-mplex`](./packages/stream-multiplexer-mplex) JavaScript implementation of <https://github.com/libp2p/mplex>
68
-
-[`/packages/transport-tcp`](./packages/transport-tcp) A TCP transport for libp2p
69
-
-[`/packages/transport-webrtc`](./packages/transport-webrtc) A libp2p transport using WebRTC connections
70
-
-[`/packages/transport-websockets`](./packages/transport-websockets) JavaScript implementation of the WebSockets module that libp2p uses and that implements the interface-transport spec
71
-
-[`/packages/transport-webtransport`](./packages/transport-webtransport) JavaScript implementation of the WebTransport module that libp2p uses and that implements the interface-transport spec
72
-
-[`/packages/utils`](./packages/utils) Package to aggregate shared logic and dependencies for the libp2p ecosystem
> JavaScript implementation of libp2p, a modular peer to peer network stack
37
+
38
+
102
39
### Project status
103
40
104
41
This project has been used in production for years in Ethereum, IPFS, and more. It is actively maintained by multiple organizations and continues to be improved! The API might change, but we strictly follow semver.
@@ -110,6 +47,26 @@ If you are looking for the documentation of the latest release, you can view the
110
47
111
48
**Want to update libp2p in your project?** Check our [migrations folder](./doc/migrations).
112
49
50
+
## Table of contents <!-- omit in toc -->
51
+
52
+
-[Background](#background)
53
+
-[Roadmap](#roadmap)
54
+
-[Install](#install)
55
+
-[Usage](#usage)
56
+
-[Configuration](#configuration)
57
+
-[Limits](#limits)
58
+
-[Getting started](#getting-started)
59
+
-[Tutorials and Examples](#tutorials-and-examples)
60
+
-[Structure](#structure)
61
+
-[Development](#development)
62
+
-[Tests](#tests)
63
+
-[Run unit tests](#run-unit-tests)
64
+
-[Packages](#packages)
65
+
-[Used by](#used-by)
66
+
-[Contribute](#contribute)
67
+
-[API Docs](#api-docs)
68
+
-[License](#license)
69
+
113
70
## Background
114
71
115
72
libp2p is the product of a long and arduous quest to understand the evolution of the Internet networking stack. In order to build P2P applications, devs have long had to make custom ad-hoc solutions to fit their needs, sometimes making some hard assumptions about their runtimes and the state of the network at the time of their development. Today, looking back more than 20 years, we see a clear pattern in the types of mechanisms built around the Internet Protocol, IP, which can be found throughout many layers of the OSI layer system, libp2p distils these mechanisms into flat categories and defines clear interfaces that once exposed, enable other protocols and applications to use and swap them, enabling upgradability and adaptability for the runtime, without breaking the API.
@@ -159,6 +116,48 @@ If you are starting your journey with `js-libp2p`, read the [GETTING\_STARTED.md
159
116
160
117
You can find multiple examples on the [examples folder](./examples) that will guide you through using libp2p for several scenarios.
161
118
119
+
## Structure
120
+
121
+
-[`/doc`](./doc) Docs for libp2p
122
+
-[`/examples/auto-relay`](./examples/auto-relay) Shows how to configure relayed connections
123
+
-[`/examples/chat`](./examples/chat) An example chat app using libp2p
124
+
-[`/examples/connection-encryption`](./examples/connection-encryption) An example of how to configure connection encrypters
125
+
-[`/examples/delegated-routing`](./examples/delegated-routing) How to configure libp2p delegated routers
126
+
-[`/examples/discovery-mechanisms`](./examples/discovery-mechanisms) How to configure peer discovery mechanisms
127
+
-[`/examples/echo`](./examples/echo) An example echo app
128
+
-[`/examples/peer-and-content-routing`](./examples/peer-and-content-routing) How to use peer and content routing
129
+
-[`/examples/pnet`](./examples/pnet) How to configure a libp2p private network
130
+
-[`/examples/protocol-and-stream-muxing`](./examples/protocol-and-stream-muxing) How to use multiplex protocols streams
131
+
-[`/examples/pubsub`](./examples/pubsub) An example using libp2p pubsub
132
+
-[`/examples/transports`](./examples/transports) An example using different types of libp2p transport
133
+
-[`/interop`](./interop) Multidimension Interop Test
134
+
-[`/packages/crypto`](./packages/crypto) Crypto primitives for libp2p
135
+
-[`/packages/interface`](./packages/interface) The interface implemented by a libp2p node
136
+
-[`/packages/interface-compliance-tests`](./packages/interface-compliance-tests) Compliance tests for JS libp2p interfaces
137
+
-[`/packages/interface-internal`](./packages/interface-internal) Interfaces implemented by internal libp2p components
138
+
-[`/packages/kad-dht`](./packages/kad-dht) JavaScript implementation of the Kad-DHT for libp2p
139
+
-[`/packages/keychain`](./packages/keychain) Key management and cryptographically protected messages
140
+
-[`/packages/libp2p`](./packages/libp2p) JavaScript implementation of libp2p, a modular peer to peer network stack
141
+
-[`/packages/logger`](./packages/logger) A logging component for use in js-libp2p modules
142
+
-[`/packages/metrics-prometheus`](./packages/metrics-prometheus) Collect libp2p metrics for scraping by Prometheus or Graphana
143
+
-[`/packages/multistream-select`](./packages/multistream-select) JavaScript implementation of multistream-select
144
+
-[`/packages/peer-collections`](./packages/peer-collections) Stores values against a peer id
145
+
-[`/packages/peer-discovery-bootstrap`](./packages/peer-discovery-bootstrap) Peer discovery via a list of bootstrap peers
146
+
-[`/packages/peer-discovery-mdns`](./packages/peer-discovery-mdns) Node.js libp2p mDNS discovery implementation for peer discovery
147
+
-[`/packages/peer-id`](./packages/peer-id) Implementation of @libp2p/interface-peer-id
-[`/packages/peer-record`](./packages/peer-record) Used to transfer signed peer data across the network
150
+
-[`/packages/peer-store`](./packages/peer-store) Stores information about peers libp2p knows on the network
151
+
-[`/packages/protocol-perf`](./packages/protocol-perf) Implementation of Perf Protocol
152
+
-[`/packages/pubsub`](./packages/pubsub) libp2p pubsub base class
153
+
-[`/packages/pubsub-floodsub`](./packages/pubsub-floodsub) libp2p-floodsub, also known as pubsub-flood or just dumbsub, this implementation of pubsub focused on delivering an API for Publish/Subscribe, but with no CastTree Forming (it just floods the network).
154
+
-[`/packages/stream-multiplexer-mplex`](./packages/stream-multiplexer-mplex) JavaScript implementation of <https://github.com/libp2p/mplex>
155
+
-[`/packages/transport-tcp`](./packages/transport-tcp) A TCP transport for libp2p
156
+
-[`/packages/transport-webrtc`](./packages/transport-webrtc) A libp2p transport using WebRTC connections
157
+
-[`/packages/transport-websockets`](./packages/transport-websockets) JavaScript implementation of the WebSockets module that libp2p uses and that implements the interface-transport spec
158
+
-[`/packages/transport-webtransport`](./packages/transport-webtransport) JavaScript implementation of the WebTransport module that libp2p uses and that implements the interface-transport spec
159
+
-[`/packages/utils`](./packages/utils) Package to aggregate shared logic and dependencies for the libp2p ecosystem
0 commit comments