{"id":13739145,"url":"https://github.com/str4d/txi2p","last_synced_at":"2025-07-03T22:05:26.371Z","repository":{"id":11035523,"uuid":"13369224","full_name":"str4d/txi2p","owner":"str4d","description":"I2P bindings for Twisted.","archived":false,"fork":false,"pushed_at":"2022-08-02T17:46:50.000Z","size":266,"stargazers_count":15,"open_issues_count":3,"forks_count":7,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-07-03T22:04:59.052Z","etag":null,"topics":["i2p","plugin","python","twisted","twisted-library"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/str4d.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-10-06T20:52:54.000Z","updated_at":"2024-09-17T02:13:09.000Z","dependencies_parsed_at":"2022-08-28T08:21:01.876Z","dependency_job_id":null,"html_url":"https://github.com/str4d/txi2p","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/str4d/txi2p","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/str4d%2Ftxi2p","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/str4d%2Ftxi2p/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/str4d%2Ftxi2p/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/str4d%2Ftxi2p/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/str4d","download_url":"https://codeload.github.com/str4d/txi2p/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/str4d%2Ftxi2p/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263410762,"owners_count":23462297,"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":["i2p","plugin","python","twisted","twisted-library"],"created_at":"2024-08-03T04:00:26.239Z","updated_at":"2025-07-03T22:05:26.299Z","avatar_url":"https://github.com/str4d.png","language":"Python","funding_links":[],"categories":["\u003ca id=\"6e80463404d46f0493cf6e84597e4b5c\"\u003e\u003c/a\u003e工具","Libraries"],"sub_categories":["\u003ca id=\"ceb532aae106b39ea224c7aef786c831\"\u003e\u003c/a\u003eI2P","SAM"],"readme":"=====\ntxi2p\n=====\n\n.. image:: https://api.travis-ci.org/str4d/txi2p.svg?branch=master\n    :target: https://www.travis-ci.org/str4d/txi2p\n    :alt: travis\n\n.. image:: https://coveralls.io/repos/github/str4d/txi2p/badge.svg?branch=master\n    :target: https://coveralls.io/github/str4d/txi2p?branch=master\n    :alt: coveralls\n\n|txi2p| is a set of I2P bindings for `Twisted \u003chttps://twistedmatrix.com/\u003e`_\n10.1 or greater. It currently requires Python 2.\n\n|txi2p| will run on Python 3.3+ (requiring `Twisted`_ 15.4 or greater).\n\n|txi2p| supports both the SAM and BOB APIs for I2P. The default API is SAM.\n\nInstallation\n============\n\nYou can install |txi2p| from PyPI::\n\n    $ pip2 install txi2p\n\nor by downloading the source and running::\n\n    $ pip2 install .\n\ninside the source directory.\n\nQuickstart\n==========\n\nIf you are not familiar with using endpoints or endpoint strings, read the\n`Twisted endpoints`_ documentation.\n\n.. _Twisted endpoints: https://twistedmatrix.com/documents/current/core/howto/endpoints.html\n\nUsing endpoint classes\n----------------------\n\nTo connect to an I2P site::\n\n    from twisted.internet import reactor\n    from twisted.internet.endpoints import clientFromString\n    from txi2p.sam import SAMI2PStreamClientEndpoint\n\n    samEndpoint = clientFromString(reactor, 'tcp:127.0.0.1:7656')\n    endpoint = SAMI2PStreamClientEndpoint.new(samEndpoint, 'stats.i2p')\n    d = endpoint.connect(factory)\n\nTo have a server listen on an I2P Destination::\n\n    from twisted.internet import reactor\n    from twisted.internet.endpoints import clientFromString\n    from txi2p.sam import SAMI2PStreamServerEndpoint\n\n    samEndpoint = clientFromString(reactor, 'tcp:127.0.0.1:7656')\n    endpoint = SAMI2PStreamServerEndpoint.new(samEndpoint, '/path/to/keyfile')\n    d = endpoint.listen(factory)\n\nUsing endpoint strings\n----------------------\n\nRequires `Twisted`_ 14.0 or greater.\n\nTo connect to an I2P site::\n\n    from twisted.internet import reactor\n    from twisted.internet.endpoints import clientFromString\n\n    endpoint = clientFromString(reactor, 'i2p:stats.i2p')\n    d = endpoint.connect(factory)\n\nTo have a server listen on an I2P Destination::\n\n    from twisted.internet import reactor\n    from twisted.internet.endpoints import serverFromString\n\n    endpoint = serverFromString(reactor, 'i2p:/path/to/keyfile')\n    d = endpoint.listen(factory)\n\nTo connect using a specific API::\n\n    from twisted.internet import reactor\n    from twisted.internet.endpoints import clientFromString\n\n    endpoint = clientFromString(reactor, 'i2p:stats.i2p:api=BOB')\n    d = endpoint.connect(factory)\n\nTo connect using a non-standard API host or port::\n\n    from twisted.internet import reactor\n    from twisted.internet.endpoints import clientFromString\n\n    endpoint = clientFromString(reactor, 'i2p:stats.i2p:api=SAM:apiEndpoint=tcp\\:127.0.0.1\\:31337')\n    d = endpoint.connect(factory)\n\n\nEndpoint strings\n================\n\nThe Twisted plugin for |clientFromString| and |serverFromString| will\nonly work for `Twisted`_ 14.0 or greater.\n\nBoth client and server strings support the following keyword arguments:\n\n* ``api=\u003capiName\u003e`` - Either ``SAM`` or ``BOB``.\n* ``apiEndpoint=\u003cendpointString\u003e`` - An escaped client endpoint string pointing\n  to the API, e.g. ``tcp\\:127.0.0.1\\:2827``.\n* ``options=keyOne\\:valueOne,keyTwo\\:valueTwo`` - I2CP options as a\n  comma-separated key:value list. See the `I2CP specification` for available\n  options.\n\n.. _I2CP specification: https://geti2p.net/en/docs/protocol/i2cp\n\nClients\n-------\n\nClient string format::\n\n    i2p:\u003chost\u003e[:port][:key=value]*\n\nSupported arguments:\n\n**SAM**\n\n* ``nickname``\n* ``autoClose``\n* ``keyfile``\n* ``localPort``\n* ``sigType``\n\n**BOB**\n\n* ``tunnelNick``\n* ``inhost``\n* ``inport``\n\nServers\n-------\n\nServer string format::\n\n    i2p:\u003ckeyfile\u003e[:port][:key=value]*\n\nSupported arguments:\n\n**SAM**\n\n* ``nickname``\n* ``autoClose``\n* ``sigType``\n\n**BOB**\n\n* ``tunnelNick``\n* ``outhost``\n* ``outport``\n\nImportant changes\n=================\n\n0.3.2\n-----\n\n* The default signature type for new Destinations is Ed25519.\n\n  * If the SAM server does not support that (Java I2P 0.9.16 and earlier), txi2p\n    will fall back on ECDSA_SHA256_P256, followed by the old default DSA_SHA1.\n\n0.3\n---\n\n* Ports are now supported on the SAM API.\n\n  * Previous ``port`` options are no longer ignored.\n  * New ``localPort`` option for setting the client's local port.\n\n* The ``SAMI2PStreamServerEndpoint`` API has changed to no longer require a\n  reactor.\n\nDocumentation\n=============\n\nAPI documentation is available at https://txi2p.readthedocs.org\n\n.. |txi2p| replace:: ``txi2p``\n.. |clientFromString| replace:: ``clientFromString()``\n.. |serverFromString| replace:: ``serverFromString()``\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstr4d%2Ftxi2p","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstr4d%2Ftxi2p","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstr4d%2Ftxi2p/lists"}