{"id":17594892,"url":"https://github.com/pinnaculum/iptt","last_synced_at":"2025-08-18T22:31:33.257Z","repository":{"id":178117661,"uuid":"557900795","full_name":"pinnaculum/iptt","owner":"pinnaculum","description":"InterPlanetary Tunnel Toolkit: https://gitlab.com/galacteek/iptt/iptt","archived":false,"fork":false,"pushed_at":"2023-11-19T16:39:22.000Z","size":49,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-31T00:09:44.702Z","etag":null,"topics":["aio-lib","aiohttp","aiohttp-","asyncio","http-client","http-server","ipfs","kubo","tunneling"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pinnaculum.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"liberapay":"galacteek"}},"created_at":"2022-10-26T14:13:36.000Z","updated_at":"2023-03-09T11:03:58.000Z","dependencies_parsed_at":"2023-11-19T17:42:34.764Z","dependency_job_id":null,"html_url":"https://github.com/pinnaculum/iptt","commit_stats":null,"previous_names":["pinnaculum/iptt"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pinnaculum%2Fiptt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pinnaculum%2Fiptt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pinnaculum%2Fiptt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pinnaculum%2Fiptt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pinnaculum","download_url":"https://codeload.github.com/pinnaculum/iptt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230284070,"owners_count":18202330,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aio-lib","aiohttp","aiohttp-","asyncio","http-client","http-server","ipfs","kubo","tunneling"],"created_at":"2024-10-22T07:12:19.787Z","updated_at":"2024-12-18T14:17:16.747Z","avatar_url":"https://github.com/pinnaculum.png","language":"Python","funding_links":["https://liberapay.com/galacteek"],"categories":[],"sub_categories":[],"readme":"InterPlanetary Tunnel Toolkit\n=============================\n\n.. image:: https://gitlab.com/galacteek/iptt/iptt/-/raw/master/media/img/iptt-256.png\n    :width: 128\n    :height: 128\n\nProvides tools to communicate with existing network protocols over\nIPFS tunnels (libp2p streams).\n\n- *iphttp*: Command-line iphttp client (supports SSL)\n- *iphttpd*: iphttp server (can serve *aiohttp* apps or just forward to an\n  existing HTTP service)\n\n.. code-block:: bash\n\n    pip install -U iptt\n\nCheckout the documentation `here \u003chttps://iptt.readthedocs.io/en/latest\u003e`_.\n\niphttp\n======\n\n*iphttp* is the command-line client. To make a simple GET request,\npass the PeerId with the HTTP path. Use *--ssl* (or *-s*) to use\nSSL encryption:\n\n.. code-block:: bash\n\n    iphttp QmQPeNsJPyVWPFDVHb77w8G42Fvo15z4bG2X8D2GhfbSXc/doc.txt\n\n    iphttp -s QmQPeNsJPyVWPFDVHb77w8G42Fvo15z4bG2X8D2GhfbSXc/doc.txt\n\nUse *--maddr* to pass the RPC API multiaddr_ of your kubo_ node (the\ndefault multiaddr is */ip4/127.0.0.1/tcp/5001*) :\n\n.. code-block:: bash\n\n    iphttp --maddr /dns4/localhost/tcp/5010 \\\n        QmQPeNsJPyVWPFDVHb77w8G42Fvo15z4bG2X8D2GhfbSXc/summary.html\n\nInteractive mode: just pass a PeerId and all requests in the CLI\nsession will be based on that peer.\n\n.. code-block:: bash\n\n    iphttp -i QmQPeNsJPyVWPFDVHb77w8G42Fvo15z4bG2X8D2GhfbSXc\n\nThe following commands are supported in interactive mode:\n\n- get(path: str, q={}, h={}): HTTP GET request on path *path* with query *q*\n  and HTTP headers *h* (dict)\n\n- post(path: str, q={}, data={}, h={}): HTTP POST request on path with post data *data*, HTTP query *q* (dict) and HTTP headers *h* (dict)\n\n.. code-block:: python\n\n    get('/')\n    get('/', q={'arg1': 4})\n    get('/', h={'X-Important-Header': 'some-value'})\n\n    post('/form', q={'arg1': 2}, data={'message': 'Form field data'})\n    post('/form', data={'message': 'Form field data'})\n\niphttpd\n=======\n\n*iphttpd* allows you to register an IPFS P2P service for an\nalready running HTTP server, and can also serve an HTTP application\nfrom a Python module (only *aiohttp* apps are supported right now).\n\nExample 1\n---------\n\nServe **http://localhost:7000** for the P2P protocol **/x/ipfs-http/80/1.0**\n\n.. code-block:: bash\n\n    iphttpd -l localhost:80:7080\n\nExample 2\n---------\n\nServe **http://localhost:8080** for the P2P protocol **/x/ipfs-http/8000/1.0**\n\n.. code-block:: bash\n\n    iphttpd -l localhost:8000:8080\n\nExample 3\n---------\n\nServe an aiohttp application from Python module\n**iphttpd_apps.helloworld**:\n\n.. code-block:: bash\n\n    iphttpd --serve-aiohttp iphttpd_apps.helloworld\n\nYour module should implement the coroutine **create_app(args)** and return\nan *aiohttp.web.Application* instance that will be used to run the service\n(see the helloworld_ service).\n\nExample 4\n---------\n\nServe an application with SSL on port 8200:\n\n.. code-block:: bash\n\n    iphttpd -s --serve-aiohttp iphttpd_apps.helloworld --cert iphttpd.io.pem --key iphttpd.io-key.pem -l localhost:443:8200\n\nProjects using iptt\n===================\n\n- galacteek_\n\nLicense\n=======\n\n**God bless HTTP, and God bless IPFS** license.\n\n.. _galacteek: https://gitlab.com/galacteek/galacteek\n.. _helloworld: https://gitlab.com/galacteek/iptt/iptt/-/blob/master/iphttpd_apps/helloworld.py\n.. _kubo: https://github.com/ipfs/kubo\n.. _multiaddr: https://multiformats.io/multiaddr\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpinnaculum%2Fiptt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpinnaculum%2Fiptt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpinnaculum%2Fiptt/lists"}