{ "info": { "author": "twisteroid ambassador", "author_email": "twisteroid.ambassador@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: AsyncIO", "Intended Audience :: Developers", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3 :: Only", "Topic :: Internet :: Proxy Servers" ], "description": "# ptadapter\n\n`ptadapter` is a Python 3\npackage that interfaces with Pluggable Transports.\n\nPluggable Transports (PT) are originally created for [Tor] as a modular,\ninterchangeable (pluggable) method of tunneling and obfuscating\nnetwork traffic (transport). This design makes PTs useful not only for\nTor, but many other use cases where traffic obfuscation is desired.\nLearn more about Pluggable Transports at the dedicated website,\nhttps://www.pluggabletransports.info/\n\n[Tor]: https://torproject.org/\n\nThis package implements Version 1 of the Pluggable Transport\nspecifications (relevant specs can be found in the `specifications`\ndirectory). Version 2 of the specs is in development: refer to the\nwebsite linked above for progress.\n\n(This package also implements Tor's Extended ORPort protocol, which\ncan be optionally used to receive server connections from PTs.)\n\n**This package REQUIRES Python 3.7 or higher.** It has no 3rd-party\ndependencies.\n\n## What's Included\n\nThis package implements several Python classes that execute and\ncommunicate with a PT subprocess, allowing connections to be made\nthrough the PT as a client, or received as a server.\nThe code is built on top of `asyncio`, and uses the familiar\n`StreamReader` and `StreamWriter` for connections.\n\nAlso included is a ready-made tool that can run PTs as a standalone\ntunnel. No coding is necessary to use this.\n\n## What's Required\n\n* Python 3.7 or above.\n* The Pluggable Transport to be used, as an executable program. This\n may be installed from the repository, built from source, extracted\n from the Tor Browser Bundle, etc.\n\n## How to get this package\n\nThis package is now uploaded to PyPI, so install it the usual way:\n\n pip install ptadapter\n\nIf you don't want to install, you could also\nclone this repository or download a source package, and put the\n`ptadapter` directory in the working directory or somewhere in your\nPYTHONPATH.\n\n## How to use PTs in you own Python program\n\nStart with the [Documentation]. Currently the docs are hosted on\nGithub Pages and updated manually. When Read The Docs supports building\ndocs with Python 3.7, the docs will be moved there.\n\n[Documentation]: https://twisteroidambassador.github.io/ptadapter-docs/\n\n## How to create a standalone PT tunnel\n\nIf the package is installed via `pip`, an entry script called\n`ptadapter` is created, so run the command below to see usage:\n\n ptadapter --help\n\nOtherwise, run:\n\n python -m ptadapter --help\n\nA configuration file should be provided to the script.\nThe [Documentation] contains a detailed guide page, which includes\nan example config file with detailed comments; the example config file\ncan also be found in this repository.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/twisteroidambassador/ptadapter", "keywords": "pluggable-transport obfuscation tcp", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "ptadapter", "package_url": "https://pypi.org/project/ptadapter/", "platform": "", "project_url": "https://pypi.org/project/ptadapter/", "project_urls": { "Documentation": "https://twisteroidambassador.github.io/ptadapter-docs/", "Homepage": "https://github.com/twisteroidambassador/ptadapter", "Tracker": "https://github.com/twisteroidambassador/ptadapter/issues" }, "release_url": "https://pypi.org/project/ptadapter/3.0.0rc2/", "requires_dist": [ "sphinx-autodoc-typehints ; extra == 'build-docs'", "sphinxcontrib-trio ; extra == 'build-docs'" ], "requires_python": ">=3.7", "summary": "Pluggable Transports Python interface & standalone tunnels", "version": "3.0.0rc2" }, "last_serial": 4620798, "releases": { "3.0.0rc1": [ { "comment_text": "", "digests": { "md5": "b51126cda510572282efb0d818c92693", "sha256": "97f84253ecbbaceafd571433a68324907c402bccbcbfcac019c8e2459bf44d90" }, "downloads": -1, "filename": "ptadapter-3.0.0rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "b51126cda510572282efb0d818c92693", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 33272, "upload_time": "2018-12-18T14:57:03", "url": "https://files.pythonhosted.org/packages/ae/a3/01c71b107d7545dfc4947047275a5055bd79d9b7e83fa0409230ca533df8/ptadapter-3.0.0rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d09c395ff5bb19148ba63ad15df0629d", "sha256": "02614f831078d3facaeff7ce0cb1eb49ba34e1196c9cadbc62c5919065bcebcd" }, "downloads": -1, "filename": "ptadapter-3.0.0rc1.tar.gz", "has_sig": false, "md5_digest": "d09c395ff5bb19148ba63ad15df0629d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 19344, "upload_time": "2018-12-18T14:57:07", "url": "https://files.pythonhosted.org/packages/57/7f/fd89076d15d8951cb7ebf870b5247ac0cc7f2d86af6b008faf22371206b7/ptadapter-3.0.0rc1.tar.gz" } ], "3.0.0rc2": [ { "comment_text": "", "digests": { "md5": "fc96c81213dc2cd1ca9ff307c6b14915", "sha256": "4bcbc045f607354dd8ef20f601c87712984ee1579f97306eac938fa59297047d" }, "downloads": -1, "filename": "ptadapter-3.0.0rc2-py3-none-any.whl", "has_sig": false, "md5_digest": "fc96c81213dc2cd1ca9ff307c6b14915", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 33313, "upload_time": "2018-12-20T13:23:06", "url": "https://files.pythonhosted.org/packages/db/59/51f07d599bc5670f1c9637ecc552fea308115fcbd847105341f8ebe0d574/ptadapter-3.0.0rc2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "df76dffa6292e5f468e11e6be4675bba", "sha256": "a54df39ebe0116aba5821afa05630162ecf559e9d2873013f2cd9492a2f038dd" }, "downloads": -1, "filename": "ptadapter-3.0.0rc2.tar.gz", "has_sig": false, "md5_digest": "df76dffa6292e5f468e11e6be4675bba", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 19448, "upload_time": "2018-12-20T13:23:08", "url": "https://files.pythonhosted.org/packages/b4/86/270deff83234afe886e12ea4789af24a45b46c9bdfec00f99d402dc08f76/ptadapter-3.0.0rc2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fc96c81213dc2cd1ca9ff307c6b14915", "sha256": "4bcbc045f607354dd8ef20f601c87712984ee1579f97306eac938fa59297047d" }, "downloads": -1, "filename": "ptadapter-3.0.0rc2-py3-none-any.whl", "has_sig": false, "md5_digest": "fc96c81213dc2cd1ca9ff307c6b14915", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 33313, "upload_time": "2018-12-20T13:23:06", "url": "https://files.pythonhosted.org/packages/db/59/51f07d599bc5670f1c9637ecc552fea308115fcbd847105341f8ebe0d574/ptadapter-3.0.0rc2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "df76dffa6292e5f468e11e6be4675bba", "sha256": "a54df39ebe0116aba5821afa05630162ecf559e9d2873013f2cd9492a2f038dd" }, "downloads": -1, "filename": "ptadapter-3.0.0rc2.tar.gz", "has_sig": false, "md5_digest": "df76dffa6292e5f468e11e6be4675bba", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 19448, "upload_time": "2018-12-20T13:23:08", "url": "https://files.pythonhosted.org/packages/b4/86/270deff83234afe886e12ea4789af24a45b46c9bdfec00f99d402dc08f76/ptadapter-3.0.0rc2.tar.gz" } ] }