InterPlanetary Tunnel Toolkit
Provides tools to communicate with existing network protocols over IPFS tunnels (libp2p streams).
iphttp: Command-line iphttp client (supports SSL)
iphttpd: iphttp server (can serve aiohttp apps or just forward to an existing HTTP service)
pip install -U iptt
Checkout the documentation here.
iphttp
iphttp is the command-line client. To make a simple GET request, pass the PeerId with the HTTP path. Use –ssl (or -s) to use SSL encryption:
iphttp QmQPeNsJPyVWPFDVHb77w8G42Fvo15z4bG2X8D2GhfbSXc/doc.txt
iphttp -s 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:80:7080
Example 2
Serve http://localhost:8080 for the P2P protocol /x/ipfs-http/8000/1.0
iphttpd -l localhost:8000: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).
Example 4
Serve an application with SSL on port 8200:
iphttpd -s --serve-aiohttp iphttpd_apps.helloworld --cert iphttpd.io.pem --key iphttpd.io-key.pem -l localhost:443:8200
Projects using iptt
License
God bless HTTP, and God bless IPFS license.
Metadata
Release files for iptt 1.0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| iptt-1.0.5.tar.gz | 9.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iptt-1.0.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.4 kB
Release files / iptt-1.0.5.tar.gz
| Download URL | iptt-1.0.5.tar.gz |
|---|---|
| Size | 9.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a1473f9f0762a2910fb3b8f0ea329f97b7c8a180d9a1dd862b8df3af598d6b85
|
|
BLAKE2b-256 checksum How to use checksums |
5380c592c4377606b2c2ecc93a905ee894c72d3aa973c50fce862a24e3d1c1eb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.7.3
|
Release files / iptt-1.0.5-py3-none-any.whl
| Download URL | iptt-1.0.5-py3-none-any.whl |
|---|---|
| Size | 10.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
29b6b053f5c35c891c76843df9c30bef3c320e80f91abb361206b45c6a9803e5
|
|
BLAKE2b-256 checksum How to use checksums |
3ca0e1b601cca75f5acf15405f011d5532c669b8e252ce4ddba7d7c1235f5064
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.7.3
|