Documentation site for the libp2p project. https://docs.libp2p.io/
Go to file
Danny Salman cb2c474447 bin 2022-11-09 23:12:35 -05:00
.github/workflows merge master 2022-10-27 02:52:57 +01:00
archetypes huge hairball commit, sorry 2019-03-07 17:45:13 -05:00
bin bin 2022-11-09 23:12:35 -05:00
content init migration to Doks 2022-11-09 22:47:03 -05:00
layouts/partials various edits, update summaries, fix assets, and more 2022-10-14 17:51:15 -04:00
scripts vuepress -> hugo 2021-06-14 16:14:55 -04:00
static completely simplify, rmv chapters, segment overviews, enhance presentation, re-add reference 2022-10-14 14:05:28 -04:00
themes/hugo-theme-learn rmv older hugo learn theme 2022-09-13 00:09:02 -04:00
wip/libp2p-docs-new Merge branch 'theme/migrate-to-doks' of github.com:libp2p/docs into theme/migrate-to-doks 2022-11-09 23:09:02 -05:00
.editorconfig Initial commit 2018-10-04 18:21:13 -04:00
.gitignore init migration to Doks 2022-11-09 22:47:03 -05:00
.hugo_build.lock updated hugo version && added ARM64 to makefule 2022-05-18 13:36:07 -05:00
LICENSE optimize overall repo and adapt to new 2022-11-09 23:08:10 -05:00
Makefile Merge branch 'master' into feat/filecorgi 2022-08-24 15:26:26 -04:00
README.md edits 2022-09-05 04:11:56 -04:00
config.toml init migration to Doks 2022-11-09 22:47:03 -05:00

README.md

Made by icon. Project icon. Build status icon. PRs Welcome Discuss


Overview

libp2p is a modular framework that encapsulates an evolving set of specifications for peer-to-peer networking. What started as the networking component that enables IPFS turned into a general-purpose framework to deliver a modular, peer-to-peer networking stack of protocols that are transport agnostic, flexible, reusable, and easy to upgrade.

libp2p enables interoperability between applications, resilient applications, and advanced networking features like decentralized publish-subscribe or advanced data structures like distributed hash tables.

Contributing content

The documentation site contains several different kinds of content. Wed love ❤️ your help with any of it:

  1. Introductory overviews: this lives in content/introduction. If you spot a problem or have improvements, please post an issue or PR.

  2. Guides, examples, and tutorials: Most examples currently live in other repositories, like js-libp2p examples. If you have thoughts on integrating them better, please file an issue. If you have feedback on individual examples or want to add a new one, please file an issue or pull request on the relevant repository. If you have ideas for guides or tutorials, they belong here! Please propose them in an issue here before creating a pull request.

  3. Concept guides: Concept guides are intended to present a brief overview of libp2p-related concepts. They live in the content/concepts folder and should strive to answer:

    • What is this?
    • How does it relate to the rest of libp2p?
    • How can (or should?) you use it? (This can often vary by implementation
    • Where do you go to learn more?
    • What is the current state of affairs?

    See a list of concepts we need help with by checking the issues.

  4. Reference documentation: Please see the issues in this repository for current activity around reference/API documentation.

  5. Community: If there are missing community links, feel free to file an issue or pull request,

This repository is also a website; we could use your help with design and technical features (interactive examples, better syntax highlighting, scripts to pull in content from other repositories, etc.) in addition to writing. To get a sense of what we could use help on, check the issues. If you decide to work on one, please post to the issue to let us know!

Before posting a pull request with your changes, please check our style guide and contributing guide.

Finally, lets work together to keep this a respectful and friendly space. Please make sure to follow our official code of conduct.

Running locally

The site uses a MakeFile to handle the site building procedure.

Build the optimized site by running:

make

To create a production build, run:

make build

This requires hugo & ipfs on your PATH

Youll find the final static site in the public directory.

To serve the static files, run:

make serve

This requires hugo & ipfs on your PATH

Preview the site at http://localhost:1313.

Run the following make command in the root directory to start a hot-reloading dev server:

make dev

This requires hugo on your PATH

Preview the site at http://localhost:1313.

To add an preview the site on IPFS, build the site in the root directory by running:

make deploy

This requires hugo & ipfs on your PATH

See the Makefile for the full list of make commands, or run make help in the project root.

You can pass the environment variable DEBUG=true to increase the verbosity of your chosen command.

Configuration guide

Static site generator

The libp2p documentation site uses Hugo as a static site generator, making it easy to serve and host the static files on IPFS. In particular, the site uses the Hugo Learn theme to present the libp2p documentation.

Automated deployments

When opening a pull request, CI scripts will run against your feature branch to test your changes.

The CI/CD production workflow builds on the master branch and deploys the documentation site on fleek. It reflects the latest commit on master and publishes at https://docs.libp2p.io.

Translation

Please stay tuned for the steps to translate the documentation.

Primary maintainers

  • @DannyS03: primary contact, project organization & technical writing
  • @mxinden: libp2p steward, primarily rust-libp2p
  • @marten-seemann: libp2p steward, primarily go-libp2p
  • @MarcoPolo: libp2p steward, primarily go-libp2p
  • @jennijuju: documentation management
  • @p-shahi: libp2p project management
  • @BigLep: interplanetary management and supervision

License

All software code is copyright (c) Protocol Labs, Inc. under the MIT/Apache-2 dual license. Other written documentation and content are copyright (c) Protocol Labs, Inc. under the Creative Commons Attribution-Share-Alike License.