Skip to main content

InterPlanetary Tunnel Toolkit

https://gitlab.com/galacteek/iptt/iptt/-/raw/master/media/img/iptt-256.png

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)

Source distribution for iptt 1.0.5
File Size Uploaded
iptt-1.0.5.tar.gz 9.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iptt 1.0.5
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

1.0.5 This release

2 release files

1.0.4

2 release files

1.0.2

2 release files

1.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page