InterPlanetary Tunnel Toolkit
Project description
InterPlanetary Tunnel Toolkit
Provides tools to communicate with existing network protocols over IPFS tunnels (libp2p streams).
iphttp: Command-line iphttp client
iphttpd: iphttp server (can serve aiohttp apps or just forward to an existing HTTP service)
pip install -U iptt
iphttp
iphttp is the command-line client. To make a simple GET request, pass the PeerId with the HTTP path:
iphttp QmQPeNsJPyVWPFDVHb77w8G42Fvo15z4bG2X8D2GhfbSXc/doc.txt
Use –maddr to pass the RPC API multiaddr of your kubo node (the default multiaddr is /ip4/127.0.0.1/tcp/5001) :
iphttp --maddr /dns4/localhost/tcp/5010 \
QmQPeNsJPyVWPFDVHb77w8G42Fvo15z4bG2X8D2GhfbSXc/summary.html
Interactive mode: just pass a PeerId and all requests in the CLI session will be based on that peer.
iphttp -i QmQPeNsJPyVWPFDVHb77w8G42Fvo15z4bG2X8D2GhfbSXc
The following commands are supported in interactive mode:
get(path: str, q={}, h={}): HTTP GET request on path path with query q and HTTP headers h (dict)
post(path: str, q={}, data={}, h={}): HTTP POST request on path with post data data, HTTP query q (dict) and HTTP headers h (dict)
get('/')
get('/', q={'arg1': 4})
get('/', h={'X-Important-Header': 'some-value'})
post('/form', q={'arg1': 2}, data={'message': 'Form field data'})
post('/form', data={'message': 'Form field data'})
iphttpd
iphttpd allows you to register an IPFS P2P service for an already running HTTP server, and can also serve an HTTP application from a Python module (only aiohttp apps are supported right now).
Example 1
Serve http://localhost:7000 for the P2P protocol /x/ipfs-http/80/1.0
iphttpd -l localhost:7080
Example 2
Serve http://localhost:8080 for the P2P protocol /x/ipfs-http/8000/1.0
iphttpd --public-port 8000 -l localhost:8080
Example 3
Serve an aiohttp application from Python module iphttpd_apps.helloworld:
iphttpd --serve-aiohttp iphttpd_apps.helloworld
Your module should implement the coroutine create_app(args) and return an aiohttp.web.Application instance that will be used to run the service (see the helloworld service).
License
God bless HTTP, and God bless IPFS license.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.