Skip to content

Commit

Permalink
docs: update README structure (#2115)
Browse files Browse the repository at this point in the history
  • Loading branch information
maschad authored Oct 5, 2023
1 parent 28794fe commit 980857c
Showing 1 changed file with 72 additions and 73 deletions.
145 changes: 72 additions & 73 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,76 +1,3 @@
# js-libp2p-monorepo <!-- omit in toc -->

[![libp2p.io](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](http://libp2p.io/)
[![Discuss](https://img.shields.io/discourse/https/discuss.libp2p.io/posts.svg?style=flat-square)](https://discuss.libp2p.io)
[![codecov](https://img.shields.io/codecov/c/github/libp2p/js-libp2p.svg?style=flat-square)](https://codecov.io/gh/libp2p/js-libp2p)
[![CI](https://img.shields.io/github/actions/workflow/status/libp2p/js-libp2p/main.yml?branch=master\&style=flat-square)](https://github.com/libp2p/js-libp2p/actions/workflows/main.yml?query=branch%3Amaster)

> JavaScript implementation of libp2p, a modular peer to peer network stack
## Table of contents <!-- omit in toc -->

- [Structure](#structure)
- [Project status](#project-status)
- [Background](#background)
- [Roadmap](#roadmap)
- [Install](#install)
- [Usage](#usage)
- [Configuration](#configuration)
- [Limits](#limits)
- [Getting started](#getting-started)
- [Tutorials and Examples](#tutorials-and-examples)
- [Development](#development)
- [Tests](#tests)
- [Run unit tests](#run-unit-tests)
- [Packages](#packages)
- [Used by](#used-by)
- [Contribute](#contribute)
- [API Docs](#api-docs)
- [License](#license)
- [Contribution](#contribution)

## Structure

- [`/doc`](./doc) Docs for libp2p
- [`/examples/auto-relay`](./examples/auto-relay) Shows how to configure relayed connections
- [`/examples/chat`](./examples/chat) An example chat app using libp2p
- [`/examples/connection-encryption`](./examples/connection-encryption) An example of how to configure connection encrypters
- [`/examples/delegated-routing`](./examples/delegated-routing) How to configure libp2p delegated routers
- [`/examples/discovery-mechanisms`](./examples/discovery-mechanisms) How to configure peer discovery mechanisms
- [`/examples/echo`](./examples/echo) An example echo app
- [`/examples/peer-and-content-routing`](./examples/peer-and-content-routing) How to use peer and content routing
- [`/examples/pnet`](./examples/pnet) How to configure a libp2p private network
- [`/examples/protocol-and-stream-muxing`](./examples/protocol-and-stream-muxing) How to use multiplex protocols streams
- [`/examples/pubsub`](./examples/pubsub) An example using libp2p pubsub
- [`/examples/transports`](./examples/transports) An example using different types of libp2p transport
- [`/interop`](./interop) Multidimension Interop Test
- [`/packages/crypto`](./packages/crypto) Crypto primitives for libp2p
- [`/packages/interface`](./packages/interface) The interface implemented by a libp2p node
- [`/packages/interface-compliance-tests`](./packages/interface-compliance-tests) Compliance tests for JS libp2p interfaces
- [`/packages/interface-internal`](./packages/interface-internal) Interfaces implemented by internal libp2p components
- [`/packages/kad-dht`](./packages/kad-dht) JavaScript implementation of the Kad-DHT for libp2p
- [`/packages/keychain`](./packages/keychain) Key management and cryptographically protected messages
- [`/packages/libp2p`](./packages/libp2p) JavaScript implementation of libp2p, a modular peer to peer network stack
- [`/packages/logger`](./packages/logger) A logging component for use in js-libp2p modules
- [`/packages/metrics-prometheus`](./packages/metrics-prometheus) Collect libp2p metrics for scraping by Prometheus or Graphana
- [`/packages/multistream-select`](./packages/multistream-select) JavaScript implementation of multistream-select
- [`/packages/peer-collections`](./packages/peer-collections) Stores values against a peer id
- [`/packages/peer-discovery-bootstrap`](./packages/peer-discovery-bootstrap) Peer discovery via a list of bootstrap peers
- [`/packages/peer-discovery-mdns`](./packages/peer-discovery-mdns) Node.js libp2p mDNS discovery implementation for peer discovery
- [`/packages/peer-id`](./packages/peer-id) Implementation of @libp2p/interface-peer-id
- [`/packages/peer-id-factory`](./packages/peer-id-factory) Create PeerId instances
- [`/packages/peer-record`](./packages/peer-record) Used to transfer signed peer data across the network
- [`/packages/peer-store`](./packages/peer-store) Stores information about peers libp2p knows on the network
- [`/packages/protocol-perf`](./packages/protocol-perf) Implementation of Perf Protocol
- [`/packages/pubsub`](./packages/pubsub) libp2p pubsub base class
- [`/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).
- [`/packages/stream-multiplexer-mplex`](./packages/stream-multiplexer-mplex) JavaScript implementation of <https://github.com/libp2p/mplex>
- [`/packages/transport-tcp`](./packages/transport-tcp) A TCP transport for libp2p
- [`/packages/transport-webrtc`](./packages/transport-webrtc) A libp2p transport using WebRTC connections
- [`/packages/transport-websockets`](./packages/transport-websockets) JavaScript implementation of the WebSockets module that libp2p uses and that implements the interface-transport spec
- [`/packages/transport-webtransport`](./packages/transport-webtransport) JavaScript implementation of the WebTransport module that libp2p uses and that implements the interface-transport spec
- [`/packages/utils`](./packages/utils) Package to aggregate shared logic and dependencies for the libp2p ecosystem

<h1 align="center">
<a href="https://libp2p.io"><img width="250" src="https://github.com/libp2p/js-libp2p/blob/master/img/libp2p.png?raw=true" alt="libp2p hex logo" /></a>
</h1>
Expand Down Expand Up @@ -99,6 +26,16 @@
<br>
</p>

# js-libp2p-monorepo <!-- omit in toc -->

[![libp2p.io](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](http://libp2p.io/)
[![Discuss](https://img.shields.io/discourse/https/discuss.libp2p.io/posts.svg?style=flat-square)](https://discuss.libp2p.io)
[![codecov](https://img.shields.io/codecov/c/github/libp2p/js-libp2p.svg?style=flat-square)](https://codecov.io/gh/libp2p/js-libp2p)
[![CI](https://img.shields.io/github/actions/workflow/status/libp2p/js-libp2p/main.yml?branch=master\&style=flat-square)](https://github.com/libp2p/js-libp2p/actions/workflows/main.yml?query=branch%3Amaster)

> JavaScript implementation of libp2p, a modular peer to peer network stack

### Project status

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.
Expand All @@ -110,6 +47,26 @@ If you are looking for the documentation of the latest release, you can view the

**Want to update libp2p in your project?** Check our [migrations folder](./doc/migrations).

## Table of contents <!-- omit in toc -->

- [Background](#background)
- [Roadmap](#roadmap)
- [Install](#install)
- [Usage](#usage)
- [Configuration](#configuration)
- [Limits](#limits)
- [Getting started](#getting-started)
- [Tutorials and Examples](#tutorials-and-examples)
- [Structure](#structure)
- [Development](#development)
- [Tests](#tests)
- [Run unit tests](#run-unit-tests)
- [Packages](#packages)
- [Used by](#used-by)
- [Contribute](#contribute)
- [API Docs](#api-docs)
- [License](#license)

## Background

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.
Expand Down Expand Up @@ -159,6 +116,48 @@ If you are starting your journey with `js-libp2p`, read the [GETTING\_STARTED.md

You can find multiple examples on the [examples folder](./examples) that will guide you through using libp2p for several scenarios.

## Structure

- [`/doc`](./doc) Docs for libp2p
- [`/examples/auto-relay`](./examples/auto-relay) Shows how to configure relayed connections
- [`/examples/chat`](./examples/chat) An example chat app using libp2p
- [`/examples/connection-encryption`](./examples/connection-encryption) An example of how to configure connection encrypters
- [`/examples/delegated-routing`](./examples/delegated-routing) How to configure libp2p delegated routers
- [`/examples/discovery-mechanisms`](./examples/discovery-mechanisms) How to configure peer discovery mechanisms
- [`/examples/echo`](./examples/echo) An example echo app
- [`/examples/peer-and-content-routing`](./examples/peer-and-content-routing) How to use peer and content routing
- [`/examples/pnet`](./examples/pnet) How to configure a libp2p private network
- [`/examples/protocol-and-stream-muxing`](./examples/protocol-and-stream-muxing) How to use multiplex protocols streams
- [`/examples/pubsub`](./examples/pubsub) An example using libp2p pubsub
- [`/examples/transports`](./examples/transports) An example using different types of libp2p transport
- [`/interop`](./interop) Multidimension Interop Test
- [`/packages/crypto`](./packages/crypto) Crypto primitives for libp2p
- [`/packages/interface`](./packages/interface) The interface implemented by a libp2p node
- [`/packages/interface-compliance-tests`](./packages/interface-compliance-tests) Compliance tests for JS libp2p interfaces
- [`/packages/interface-internal`](./packages/interface-internal) Interfaces implemented by internal libp2p components
- [`/packages/kad-dht`](./packages/kad-dht) JavaScript implementation of the Kad-DHT for libp2p
- [`/packages/keychain`](./packages/keychain) Key management and cryptographically protected messages
- [`/packages/libp2p`](./packages/libp2p) JavaScript implementation of libp2p, a modular peer to peer network stack
- [`/packages/logger`](./packages/logger) A logging component for use in js-libp2p modules
- [`/packages/metrics-prometheus`](./packages/metrics-prometheus) Collect libp2p metrics for scraping by Prometheus or Graphana
- [`/packages/multistream-select`](./packages/multistream-select) JavaScript implementation of multistream-select
- [`/packages/peer-collections`](./packages/peer-collections) Stores values against a peer id
- [`/packages/peer-discovery-bootstrap`](./packages/peer-discovery-bootstrap) Peer discovery via a list of bootstrap peers
- [`/packages/peer-discovery-mdns`](./packages/peer-discovery-mdns) Node.js libp2p mDNS discovery implementation for peer discovery
- [`/packages/peer-id`](./packages/peer-id) Implementation of @libp2p/interface-peer-id
- [`/packages/peer-id-factory`](./packages/peer-id-factory) Create PeerId instances
- [`/packages/peer-record`](./packages/peer-record) Used to transfer signed peer data across the network
- [`/packages/peer-store`](./packages/peer-store) Stores information about peers libp2p knows on the network
- [`/packages/protocol-perf`](./packages/protocol-perf) Implementation of Perf Protocol
- [`/packages/pubsub`](./packages/pubsub) libp2p pubsub base class
- [`/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).
- [`/packages/stream-multiplexer-mplex`](./packages/stream-multiplexer-mplex) JavaScript implementation of <https://github.com/libp2p/mplex>
- [`/packages/transport-tcp`](./packages/transport-tcp) A TCP transport for libp2p
- [`/packages/transport-webrtc`](./packages/transport-webrtc) A libp2p transport using WebRTC connections
- [`/packages/transport-websockets`](./packages/transport-websockets) JavaScript implementation of the WebSockets module that libp2p uses and that implements the interface-transport spec
- [`/packages/transport-webtransport`](./packages/transport-webtransport) JavaScript implementation of the WebTransport module that libp2p uses and that implements the interface-transport spec
- [`/packages/utils`](./packages/utils) Package to aggregate shared logic and dependencies for the libp2p ecosystem

## Development

**Clone and install dependencies:**
Expand Down

0 comments on commit 980857c

Please sign in to comment.