{ "info": { "author": "Yingbo Gu", "author_email": "tensiongyb@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# Shadowproxy\n\n[![Build Status](https://travis-ci.org/guyingbo/shadowproxy.svg?branch=master)](https://travis-ci.org/guyingbo/shadowproxy)\n[![Python Version](https://img.shields.io/pypi/pyversions/shadowproxy.svg)](https://pypi.python.org/pypi/shadowproxy)\n[![Version](https://img.shields.io/pypi/v/shadowproxy.svg)](https://pypi.python.org/pypi/shadowproxy)\n[![Format](https://img.shields.io/pypi/format/shadowproxy.svg)](https://pypi.python.org/pypi/shadowproxy)\n[![License](https://img.shields.io/pypi/l/shadowproxy.svg)](https://pypi.python.org/pypi/shadowproxy)\n[![Code Coverage](https://codecov.io/gh/guyingbo/shadowproxy/branch/master/graph/badge.svg)](https://codecov.io/gh/guyingbo/shadowproxy)\n[![Lines Of Code](https://tokei.rs/b1/github/guyingbo/shadowproxy?category=code)](https://github.com/guyingbo/shadowproxy)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)\n\n\n## Introduction\n\nA proxy server that implements Socks5/Shadowsocks/Redirect/HTTP (tcp) and Shadowsocks/TProxy/Tunnel (udp) protocols.\n\nThanks to Dabeaz's awesome [curio](https://github.com/dabeaz/curio) project.\n\nThis project is inspired by qwj's [python-proxy](https://github.com/qwj/python-proxy) project.\n\nIt is a replacement of shadowsocks and shadowsocks-libev, you can replace ss-redir, ss-tunnel, ss-server, ss-local with just one shadowproxy command.\n\n## Installation\n\nshadowproxy requires Python3.6+\n\n```\npip3 install shadowproxy\n```\n\n## Features\n\n### supported protocols\n\nprotocol | server | client | scheme\n--- | --- | --- | ---\nsocks5 | \u2713 | \u2713 | socks://\nsocks4 | \u2713 | \u2713 | socks4://\nss | \u2713 | \u2713 | ss://\nss aead | \u2713 | \u2713 | ss://\nhttp connect | \u2713 | \u2713 | http://\nhttp forward | | \u2713 | forward://\ntransparent proxy | \u2713 | | red://\ntunnel(udp) | \u2713 | | tunneludp://\nss(udp) | \u2713 | \u2713 | ssudp://\n\n### supported plugins\n\nplugin | server | client\n--- | --- | ---\nhttp_simple | \u2713 | \u2713\ntls1.2_ticket_auth | \u2713 | \u2713\n\n### supported ciphers\n\n* aes-256-cfb\n* aes-128-cfb\n* aes-192-cfb\n* chacha20\n* salsa20\n* rc4\n* chacha20-ietf-poly1305\n* aes-256-gcm\n* aes-192-gcm\n* aes-128-gcm\n\n### other features\n\n* support both IPv4 and IPv6\n\nHere are some ipv6 url examples:\n\n```\nhttp://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html\nhttp://[1080:0:0:0:8:800:200C:417A]/index.html\nhttp://[3ffe:2a00:100:7031::1]\nhttp://[1080::8:800:200C:417A]/foo\nhttp://[::192.9.5.5]/ipng\nhttp://[::FFFF:129.144.52.38]:80/index.html\nhttp://[2010:836B:4179::836B:4179]\n```\n\n## Usage\n\n```\nusage: shadowproxy [-h] [-v] [--version] server [server ...]\n\nuri syntax:\n\n{scheme}://[{userinfo}@][hostname]:{port}[/?[plugin={p;args}][via={uri}][target={t}][source_ip={ip}]][#{fragment}]\n\nuserinfo = cipher:password or base64(cipher:password) when scheme is ss, ssudp\nuserinfo = username:password or base64(username:password) when scheme is socks, http.\n\n```\n\nexamples:\n\n```\n# simple shadowsocks server\nshadowproxy ss://chacha20:password@0.0.0.0:8888\n\n# ipv6 binding\nshadowproxy ss://chacha20:password@[::]:8888\n\n# socks5 --> shadowsocks\nshadowproxy -v socks://:8527/?via=ss://aes-256-cfb:password@127.0.0.1:8888\n\n# http --> shadowsocks\nshadowproxy -v http://:8527/?via=ss://aes-256-cfb:password@127.0.0.1:8888\n\n# redir --> shadowsocks\nshadowproxy -v red://:12345/?via=ss://aes-256-cfb:password@127.0.0.1:8888\n\n# shadowsocks server (udp)\nshadowproxy -v ssudp://aes-256-cfb:password@:8527\n\n# tunnel --> shadowsocks (udp)\nshadowproxy -v tunneludp://:8527/?target=8.8.8.8:53&via=ssudp://aes-256-cfb:password@127.0.0.1:8888\n\n# tproxy --> shadowsocks (udp)\nshadowproxy -v tproxyudp://:8527/?via=ssudp://aes-256-cfb:password@127.0.0.1:8888\n```\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/guyingbo/shadowproxy", "keywords": "", "license": "MIT", "maintainer": "Yingbo Gu", "maintainer_email": "tensiongyb@gmail.com", "name": "shadowproxy", "package_url": "https://pypi.org/project/shadowproxy/", "platform": "", "project_url": "https://pypi.org/project/shadowproxy/", "project_urls": { "Homepage": "https://github.com/guyingbo/shadowproxy" }, "release_url": "https://pypi.org/project/shadowproxy/0.6.7/", "requires_dist": [ "pycryptodome (>=3.4.3)", "curio (>=0.9)", "pylru (>=1.0.9)", "iofree (>=0.1.2)", "httptools", "hkdf" ], "requires_python": "", "summary": "A proxy server that implements Socks5/Shadowsocks/Redirect/HTTP (tcp) and Shadowsocks/TProxy/Tunnel (udp) protocols.", "version": "0.6.7" }, "last_serial": 5637328, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "e6d9faceca6c940843c1f861fb0579ac", "sha256": "06dd789b58beda0596d0350f01497cc9c76ee22a97e5e546156de71dd5ee3da6" }, "downloads": -1, "filename": "shadowproxy-0.1.1.tar.gz", "has_sig": false, "md5_digest": "e6d9faceca6c940843c1f861fb0579ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8767, "upload_time": "2017-03-24T12:12:24", "url": "https://files.pythonhosted.org/packages/f8/90/b3d1103a812e64286fcce3db054021e2836e47ee13bcf37b0335512cbca1/shadowproxy-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "a409db65bafbf728f1a31ef6c86811ee", "sha256": "9dffb009f72f3a29f62ca5a2cfc16e25ba2a2380a89bf175ed2fb364deb4bd8b" }, "downloads": -1, "filename": "shadowproxy-0.1.2.tar.gz", "has_sig": false, "md5_digest": "a409db65bafbf728f1a31ef6c86811ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9128, "upload_time": "2017-03-27T10:12:10", "url": "https://files.pythonhosted.org/packages/3d/03/e8821c92e41744b83d2894c4cd67ecba96541ba903fcb77fe453d71f0b49/shadowproxy-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "883a902259ca11a39e98e0408524fd0d", "sha256": "5a5221a4b67e0df888167e61db6fa144a153a571fc5ad34b33350c1cf4cc88fb" }, "downloads": -1, "filename": "shadowproxy-0.1.3.tar.gz", "has_sig": false, "md5_digest": "883a902259ca11a39e98e0408524fd0d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9330, "upload_time": "2017-03-28T07:27:36", "url": "https://files.pythonhosted.org/packages/59/f9/a64489f566664d0143701bcd1c154cf8f9e4cf61a784d9681af06a1188ca/shadowproxy-0.1.3.tar.gz" } ], "0.1.5": [], "0.1.6": [ { "comment_text": "", "digests": { "md5": "d701fd8e1081cb304697f11143773496", "sha256": "8cf43f75a93ac1716bed4074d36b11b9625c183f92b41d6dfb7c881e6ee5a6f4" }, "downloads": -1, "filename": "shadowproxy-0.1.6.tar.gz", "has_sig": false, "md5_digest": "d701fd8e1081cb304697f11143773496", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9346, "upload_time": "2017-03-28T08:21:04", "url": "https://files.pythonhosted.org/packages/36/db/1349b14a14d03049bcd286b7dc3d1885eb88acca266eb46b2696cc04ce32/shadowproxy-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "70c6dfdd236051be6f56c05235f4bded", "sha256": "41363255cd587a5ef8d9e452e5b74a0881bbe11b46eb923a83c4cc79d0539589" }, "downloads": -1, "filename": "shadowproxy-0.1.7.tar.gz", "has_sig": false, "md5_digest": "70c6dfdd236051be6f56c05235f4bded", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9564, "upload_time": "2017-03-29T06:51:34", "url": "https://files.pythonhosted.org/packages/3f/22/f73b061ea1207cdc0a6a45fff1b9599db521cf189bc3cb560bb1ec9ae4fb/shadowproxy-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "b931b9215824dcb7ad8f74738ff39eab", "sha256": "5890da4b75d4d4fac9df703b20b0b5c83f90e09b2ab81e464b2d699c184364ac" }, "downloads": -1, "filename": "shadowproxy-0.1.8.tar.gz", "has_sig": false, "md5_digest": "b931b9215824dcb7ad8f74738ff39eab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10077, "upload_time": "2017-04-05T05:48:21", "url": "https://files.pythonhosted.org/packages/03/c4/56d9d4bcbac3fa9f02256cffc1174aff0e5727c678c34ea6096a03d8ae6f/shadowproxy-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "e1c9b8fb4d59cbea74bb5247847ac836", "sha256": "a1a2da47501508d8f489e00d6d204f621d4617f8a8eecd755901c5b9c3838703" }, "downloads": -1, "filename": "shadowproxy-0.1.9.tar.gz", "has_sig": false, "md5_digest": "e1c9b8fb4d59cbea74bb5247847ac836", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10073, "upload_time": "2017-04-07T08:45:18", "url": "https://files.pythonhosted.org/packages/73/2a/be4ccd0965c5802e66f59c0afdb59a289c06105c7c9acd9c6ef6639eba00/shadowproxy-0.1.9.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "4feee4ca544ff35802553560b9807fc7", "sha256": "41683d2e6a18a633d692842742495a42a9164dbd81a02dda223a1d9494b157a0" }, "downloads": -1, "filename": "shadowproxy-0.2.0.tar.gz", "has_sig": false, "md5_digest": "4feee4ca544ff35802553560b9807fc7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10064, "upload_time": "2017-06-14T03:48:36", "url": "https://files.pythonhosted.org/packages/81/81/05e6943323a6bf4b866aa0bbc373908ed099bed1ed0b04913fbee5784fb4/shadowproxy-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "9bd68c5f578a3f3dffd01d40fdb451aa", "sha256": "56276f8f3387fb18771812e1123b5c271a3193e5401a98920002d4d2417616bc" }, "downloads": -1, "filename": "shadowproxy-0.2.1.tar.gz", "has_sig": false, "md5_digest": "9bd68c5f578a3f3dffd01d40fdb451aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10122, "upload_time": "2017-09-07T03:36:23", "url": "https://files.pythonhosted.org/packages/74/33/56fc9b57d58b26e7ebd706607b69b730a58b5b32972de3f65113c944b814/shadowproxy-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "9e33029aae12bc5627001cb6fd3f822a", "sha256": "747185fabcbdd31a1fb48ea6e41814bbdb4b63dc23308553215ee0b16db1c19b" }, "downloads": -1, "filename": "shadowproxy-0.2.2.tar.gz", "has_sig": false, "md5_digest": "9e33029aae12bc5627001cb6fd3f822a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10124, "upload_time": "2017-09-07T03:45:00", "url": "https://files.pythonhosted.org/packages/de/a3/b3d4df5ef4986a73805e4ad74836234a5ef0d4a8be6f80613f12a0fafcb5/shadowproxy-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "168a1b56c162b5dee61f1c87f1529048", "sha256": "e79d71294fc6a2f1a47c9b27ce23d9a1432a8c50857095da8442702ca8d07e4b" }, "downloads": -1, "filename": "shadowproxy-0.2.3.tar.gz", "has_sig": false, "md5_digest": "168a1b56c162b5dee61f1c87f1529048", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10546, "upload_time": "2017-09-12T07:01:45", "url": "https://files.pythonhosted.org/packages/17/20/dc31d1934541f758e91166f553691e411777607b762b2308ec003d6c5460/shadowproxy-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "c8fac0278f98020978386ca686a876d9", "sha256": "47ee4d7d6b22b139223030430618d62bad30b0d8dd711327da55205c16862f21" }, "downloads": -1, "filename": "shadowproxy-0.2.4.tar.gz", "has_sig": false, "md5_digest": "c8fac0278f98020978386ca686a876d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11603, "upload_time": "2018-04-17T09:35:38", "url": "https://files.pythonhosted.org/packages/66/15/4adbad43ce398cf02f463c540020204aa598c7de9e8e6caa11cb46fdc0b4/shadowproxy-0.2.4.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "d13838ebefd78f827e88223b89665db9", "sha256": "1a3b6aa8e33163e7636993173d0503881341bd6cf996524bbdfbe840253e1881" }, "downloads": -1, "filename": "shadowproxy-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d13838ebefd78f827e88223b89665db9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15811, "upload_time": "2018-08-20T10:03:29", "url": "https://files.pythonhosted.org/packages/91/16/4d604512ef22d6772cff84d3f17bb152add4bafbfc0b0b10249600eb4065/shadowproxy-0.3.0-py3-none-any.whl" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "9f0a5f171caeeada1f5afc2cd4b45fa9", "sha256": "a15389cc7fa574be844a2e9032dad80173f313882c8908cf26af97a06bbb054c" }, "downloads": -1, "filename": "shadowproxy-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9f0a5f171caeeada1f5afc2cd4b45fa9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16239, "upload_time": "2018-08-23T08:08:11", "url": "https://files.pythonhosted.org/packages/f4/7a/fe8208ff8bf0f27002edaa04cd334b697f512a1e5c03aec545b5b4f35451/shadowproxy-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "50059d2cd2f8dc1cafb4d99c06925044", "sha256": "4b26d6f6a5e0b2fd817135677b718b42a7de6358c2e50077ea03efa09a8423e8" }, "downloads": -1, "filename": "shadowproxy-0.4.0.tar.gz", "has_sig": false, "md5_digest": "50059d2cd2f8dc1cafb4d99c06925044", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7990, "upload_time": "2018-08-23T08:08:21", "url": "https://files.pythonhosted.org/packages/30/e9/c4a51e40e35497a86b565234e2bfa342d1d8823e5c47c4a3a70043661b6a/shadowproxy-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "a346eb8d6caf557cbf8d0bbd47b22800", "sha256": "3b7c8b2a1bedd480dac78efd956929262c21afe17fc25809d331a05468395d5d" }, "downloads": -1, "filename": "shadowproxy-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a346eb8d6caf557cbf8d0bbd47b22800", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16572, "upload_time": "2018-09-06T06:25:36", "url": "https://files.pythonhosted.org/packages/9e/e3/ce5069057276ae4add7d668833a137f9f3fb5284587d09d9b22da8589335/shadowproxy-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "21bd0fe77e24c29fcc8e4b17d48b4512", "sha256": "2bb471ac258ba8eb85476a8134944db4cd1ab02825e330587cc1b9e20cf4c2a7" }, "downloads": -1, "filename": "shadowproxy-0.5.0.tar.gz", "has_sig": false, "md5_digest": "21bd0fe77e24c29fcc8e4b17d48b4512", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8167, "upload_time": "2018-09-06T06:25:45", "url": "https://files.pythonhosted.org/packages/71/85/dfbd83b9fb4e1eaa66f15d0b048cb9e6c806a77083f7939fc24d2940d93e/shadowproxy-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "3225b030e613cf615757fa165d37dc86", "sha256": "03d700525ee3dbae9ce0de839991e1269d7e711f8ea3fee22b8875c211b88729" }, "downloads": -1, "filename": "shadowproxy-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3225b030e613cf615757fa165d37dc86", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28483, "upload_time": "2019-01-21T05:12:39", "url": "https://files.pythonhosted.org/packages/48/bc/6a118027f6b34a6e7ff91937339150730819ff8ab9242f073dd9ec4ccb97/shadowproxy-0.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4ef9d9ee0b0349f283b7473f0ff892a3", "sha256": "89aea468d2f4b7f6e5e5657787a9ab7b4dcb6e2f0a6265d2ae0bf5fcce753277" }, "downloads": -1, "filename": "shadowproxy-0.6.0.tar.gz", "has_sig": false, "md5_digest": "4ef9d9ee0b0349f283b7473f0ff892a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14517, "upload_time": "2019-01-21T05:12:41", "url": "https://files.pythonhosted.org/packages/54/27/8b33f8228e952d4e984a23ef20fb72077b120fd2c669b0133ba4faf8fbbb/shadowproxy-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "d344fd27e9884e57f92d0cc1aa636cc4", "sha256": "a604456127fa40f5db1faa4c706fc24944cb78edf52239f7cad34d0287f19fd9" }, "downloads": -1, "filename": "shadowproxy-0.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d344fd27e9884e57f92d0cc1aa636cc4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 42151, "upload_time": "2019-01-21T05:47:46", "url": "https://files.pythonhosted.org/packages/ce/c4/a0744b9fee7ebd428ea3996ee1855d7c1ba319cb030db203d13062b51a8b/shadowproxy-0.6.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "da7c59c06a78b8cb8402bf5672c44900", "sha256": "9576fbfc486691e9474818e5d44fefc28bbb1900b7ab9aacb1916b9f32114696" }, "downloads": -1, "filename": "shadowproxy-0.6.1.tar.gz", "has_sig": false, "md5_digest": "da7c59c06a78b8cb8402bf5672c44900", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20163, "upload_time": "2019-01-21T05:47:48", "url": "https://files.pythonhosted.org/packages/3f/30/d596c18f69772a8819b0d53ed478144706f035c70539bec7b30e8b7fd184/shadowproxy-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "a773e09e83427efe04065c3c357c09b5", "sha256": "f91d6caf717e60bb34236ece7cd9c1e100fbdc82fc9d6f87cb55ae3ab09502f0" }, "downloads": -1, "filename": "shadowproxy-0.6.2-py3-none-any.whl", "has_sig": false, "md5_digest": "a773e09e83427efe04065c3c357c09b5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 32951, "upload_time": "2019-03-04T03:31:19", "url": "https://files.pythonhosted.org/packages/4e/7a/0941818de44451b7b75f30c75db9595ad3978bc611a83613f0d9a0315a8a/shadowproxy-0.6.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5792529ca183afee5be99371c4c04751", "sha256": "cbac5a4dd7d2625e271970e4fbbcdc4c5bead1ed582da5b3f0645b910c336cdd" }, "downloads": -1, "filename": "shadowproxy-0.6.2.tar.gz", "has_sig": false, "md5_digest": "5792529ca183afee5be99371c4c04751", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20512, "upload_time": "2019-03-04T03:31:21", "url": "https://files.pythonhosted.org/packages/c5/ec/1b3e6532b35ae677b4b749f9c63cf0a35a0b5427737be21c3cd87b3f3150/shadowproxy-0.6.2.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "9f9b3426b30a4e012ca8547998483ce0", "sha256": "99d82c360de468987849ed63fc4f0efa3225e8792cfd7be7b34ada8c4769fdb4" }, "downloads": -1, "filename": "shadowproxy-0.6.3-py3-none-any.whl", "has_sig": false, "md5_digest": "9f9b3426b30a4e012ca8547998483ce0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 32990, "upload_time": "2019-03-08T10:29:42", "url": "https://files.pythonhosted.org/packages/5b/53/4dc96cf80ceb217e6eafe604acd1228a907fafdcfd1feefa7acf46cc9833/shadowproxy-0.6.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3eefdbedfbc7c873b8baf254a7ecb11f", "sha256": "f505720f608c5c1a9f4cc1b2194caaa845b1d337bddf25afb5c19cfa7351a160" }, "downloads": -1, "filename": "shadowproxy-0.6.3.tar.gz", "has_sig": false, "md5_digest": "3eefdbedfbc7c873b8baf254a7ecb11f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20563, "upload_time": "2019-03-08T10:29:44", "url": "https://files.pythonhosted.org/packages/67/d3/293b356b63949fee73cd8c6f74fe8a2029e27ac587aa214dc69261b405b6/shadowproxy-0.6.3.tar.gz" } ], "0.6.5": [ { "comment_text": "", "digests": { "md5": "aaddb9bc8f4c43fc086cc3b5c2b8d449", "sha256": "99396e6ff428a408886d458a720026cc532c64ac5a4da8ad7b97963a7a97cb2c" }, "downloads": -1, "filename": "shadowproxy-0.6.5-py3-none-any.whl", "has_sig": false, "md5_digest": "aaddb9bc8f4c43fc086cc3b5c2b8d449", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 33002, "upload_time": "2019-03-08T11:59:37", "url": "https://files.pythonhosted.org/packages/91/d9/05495cac5f4413b7dfbd7035b07841c93e6b5e188ff49b2a39f8163fa860/shadowproxy-0.6.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "396370e14f986bbf0ba8457d2ee45c13", "sha256": "ee876601ef10d3ce50431daf892171b70d351c61d7de6bec290d29ec68a8ca09" }, "downloads": -1, "filename": "shadowproxy-0.6.5.tar.gz", "has_sig": false, "md5_digest": "396370e14f986bbf0ba8457d2ee45c13", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20570, "upload_time": "2019-03-08T11:59:39", "url": "https://files.pythonhosted.org/packages/c8/70/0583daa74a389d3ec6135891094ea263774183c64bd38b380ecd73321c82/shadowproxy-0.6.5.tar.gz" } ], "0.6.6": [ { "comment_text": "", "digests": { "md5": "0cf8c772d50d4fe9b6883e6f923ca1ad", "sha256": "d8d49df418cf38f422cb05c1e7a6b76dd5835866c5ff0ffca02cde97ef32ab98" }, "downloads": -1, "filename": "shadowproxy-0.6.6-py3-none-any.whl", "has_sig": false, "md5_digest": "0cf8c772d50d4fe9b6883e6f923ca1ad", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 33045, "upload_time": "2019-07-30T03:32:55", "url": "https://files.pythonhosted.org/packages/44/66/6be7b1fe996e3dc657f57e5cdd6153449d8e74343058c20dc511fa35a8fa/shadowproxy-0.6.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "98297b3d7588cb5a199df433965ab6dd", "sha256": "d15a9ecc5be365cd1ff247a805e267ac8a9ebbff885c1cc2324d5df744732911" }, "downloads": -1, "filename": "shadowproxy-0.6.6.tar.gz", "has_sig": false, "md5_digest": "98297b3d7588cb5a199df433965ab6dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20871, "upload_time": "2019-07-30T03:32:57", "url": "https://files.pythonhosted.org/packages/8b/18/439cbb28f44434e2c8496026c6a1fc204ee77b9c9cd97cfec044ec44b884/shadowproxy-0.6.6.tar.gz" } ], "0.6.7": [ { "comment_text": "", "digests": { "md5": "3557a236db178561a8c65ff6033549a3", "sha256": "03616ebe93a5442285bee22da2bde6ef84231b802b969d60f78cb4b1e2fe22d5" }, "downloads": -1, "filename": "shadowproxy-0.6.7-py3-none-any.whl", "has_sig": false, "md5_digest": "3557a236db178561a8c65ff6033549a3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 33368, "upload_time": "2019-08-06T02:41:16", "url": "https://files.pythonhosted.org/packages/fc/9b/30e516267b0b6ae2638cfec66a13ed06059bf265aaaaf3e89de634b9f0fa/shadowproxy-0.6.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2206dcccb2f0be305c255f8a0b2b7080", "sha256": "d5dbf46777d847aa076ea1627ab0f90b3808cd9eb851e1e687b07306b4c5a978" }, "downloads": -1, "filename": "shadowproxy-0.6.7.tar.gz", "has_sig": false, "md5_digest": "2206dcccb2f0be305c255f8a0b2b7080", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21204, "upload_time": "2019-08-06T02:41:18", "url": "https://files.pythonhosted.org/packages/56/cc/1ef9e2a50ac3e881051d450b6f8bc77415da7c0a1026ce493d06dc9241e7/shadowproxy-0.6.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3557a236db178561a8c65ff6033549a3", "sha256": "03616ebe93a5442285bee22da2bde6ef84231b802b969d60f78cb4b1e2fe22d5" }, "downloads": -1, "filename": "shadowproxy-0.6.7-py3-none-any.whl", "has_sig": false, "md5_digest": "3557a236db178561a8c65ff6033549a3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 33368, "upload_time": "2019-08-06T02:41:16", "url": "https://files.pythonhosted.org/packages/fc/9b/30e516267b0b6ae2638cfec66a13ed06059bf265aaaaf3e89de634b9f0fa/shadowproxy-0.6.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2206dcccb2f0be305c255f8a0b2b7080", "sha256": "d5dbf46777d847aa076ea1627ab0f90b3808cd9eb851e1e687b07306b4c5a978" }, "downloads": -1, "filename": "shadowproxy-0.6.7.tar.gz", "has_sig": false, "md5_digest": "2206dcccb2f0be305c255f8a0b2b7080", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21204, "upload_time": "2019-08-06T02:41:18", "url": "https://files.pythonhosted.org/packages/56/cc/1ef9e2a50ac3e881051d450b6f8bc77415da7c0a1026ce493d06dc9241e7/shadowproxy-0.6.7.tar.gz" } ] }