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-libp2pHow to serve an express app over libp2p streamsexamples/hono-server-over-libp2pundefinedexamples/libp2p-as-http-transportundefinedexamples/libp2p-over-http-serverundefinedexamples/peer-id-authHow to authenticate peers over HTTPexamples/serving-websites-from-web-browsersHow to serve websites from web browsers using libp2pexamples/websockets-over-libp2pHow to serve WebSockets over libp2p streamspackages/httpAccept HTTP requests over libp2p streams or use libp2p protocols over HTTPpackages/http-fetchlibp2p-compatible implementation of the fetch APIpackages/http-peer-id-authAn implementation of Peer ID Authentication over HTTPpackages/http-pingAn HTTP version of the ping protocolpackages/http-serverHTTP server componentspackages/http-utilsShared utils and common code for HTTP modulespackages/http-websocketlibp2p-compatible implementation of the WebSocket APIpackages/interopInterop 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.