Accept HTTP requests over libp2p streams and/or use libp2p protocols over HTTP
This module allows you to use HTTP requests as a transport for libp2p protocols (libp2p over HTTP), and also libp2p streams as a transport for HTTP requests (HTTP over libp2p).
It integrates with existing Node.js friendly HTTP frameworks such as express and Fastify as well as Request/ Response-based frameworks like Hono.
It even allows creating Node.js-style http.Servers and WebSocketServers in browsers to truly realize the power of the distributed web.
In addition to URL-based addressing, it can use a libp2p PeerId and/or multiaddr(s) and lets libp2p take care of the routing, thus taking advantage of features like multi-routes, NAT traversal and stream multiplexing over a single connection.
examples/express-server-over-libp2p
How to serve an express app over libp2p streamsexamples/hono-server-over-libp2p
undefinedexamples/libp2p-as-http-transport
undefinedexamples/libp2p-over-http-server
undefinedexamples/peer-id-auth
How to authenticate peers over HTTPexamples/serving-websites-from-web-browsers
How to serve websites from web browsers using libp2pexamples/websockets-over-libp2p
How to serve WebSockets over libp2p streamspackages/http
Accept HTTP requests over libp2p streams or use libp2p protocols over HTTPpackages/http-fetch
libp2p-compatible implementation of the fetch APIpackages/http-peer-id-auth
An implementation of Peer ID Authentication over HTTPpackages/http-ping
An HTTP version of the ping protocolpackages/http-server
HTTP server componentspackages/http-utils
Shared utils and common code for HTTP modulespackages/http-websocket
libp2p-compatible implementation of the WebSocket APIpackages/interop
Interop tests for the @libp2p/http collection of modules
Licensed under either of
- Apache 2.0, (LICENSE-APACHE / http://www.apache.org/licenses/LICENSE-2.0)
- MIT (LICENSE-MIT / http://opensource.org/licenses/MIT)
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.