# go-libp2p examples and tutorials

In this folder, you can find a variety of examples to help you get started in using go-libp2p. Every example as a specific purpose and some of each incorporate a full tutorial that you can follow through, helping you expand your knowledge about libp2p and p2p networks in general.

Let us know if you find any issue or if you want to contribute and add a new tutorial, feel welcome to submit a PR, thank you!

## Examples and Tutorials

- [The libp2p 'host'](./libp2p-host)
- [The libp2p 'host' with Secure WebSockets and AutoTLS](./autotls)
- [Building an http proxy with libp2p](./http-proxy)
- [An echo host](./echo)
- [Routed echo host](./routed-echo/)
- [Multicodecs with protobufs](./multipro)
- [Relay-based P2P Communication](./relay/)
- [P2P chat application](./chat)
- [P2P chat application w/ rendezvous peer discovery](./chat-with-rendezvous)
- [P2P chat application with peer discovery using mdns](./chat-with-mdns)
- [P2P chat using pubsub](./pubsub)
- [A chapter based approach to building a libp2p application](./ipfs-camp-2019/) _Created for [IPFS Camp 2019](https://github.com/ipfs/camp/tree/master/CORE_AND_ELECTIVE_COURSES/CORE_COURSE_B)_
- [View metrics using Prometheus and Grafana](./metrics-and-dashboards)

For js-libp2p examples, check https://github.com/libp2p/js-libp2p-examples
