cb2c474447 | ||
---|---|---|
.github/workflows | ||
archetypes | ||
bin | ||
content | ||
layouts/partials | ||
scripts | ||
static | ||
themes/hugo-theme-learn | ||
wip/libp2p-docs-new | ||
.editorconfig | ||
.gitignore | ||
.hugo_build.lock | ||
LICENSE | ||
Makefile | ||
README.md | ||
config.toml |
README.md
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. We’d love ❤️ your help with any of it:
-
Introductory overviews: this lives in
content/introduction
. If you spot a problem or have improvements, please post an issue or PR. -
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.
-
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.
-
Reference documentation: Please see the issues in this repository for current activity around reference/API documentation.
-
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, let’s 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
You’ll 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.