{ "info": { "author": "Isaac Dickinson", "author_email": "eyesismine@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3 :: Only", "Topic :: Internet", "Topic :: Software Development :: Libraries" ], "description": ".. figure:: https://butterflynet.veriny.tf/bnet.png\n :alt: ButterflyNet - Drawn by Tudor Iacobescu\n\n|Build Status| |PyPI version|\n|https://img.shields.io/pypi/l/ButterflyNet.svg|\n|https://img.shields.io/pypi/dw/ButterflyNet.svg|\n\nButterflyNet is an server-side batteries-included secure networking\nframework built upon\n`asyncio `__.\n\n| All code in ButterflyNet is designed to be asynchronous by default,\n with special cases made for non-async code such as external libraries.\n| Because of the heavy usage of asyncio, this module does not officially\n support Python versions before 3.4. It may be possible to run it with\n a backported tulip library, but no official support will be given for\n this.\n\nWhy ButterflyNet?\n~~~~~~~~~~~~~~~~~\n\nButterflyNet was designed for a few main reasons:\n\n- Sockets are low-level; personally, I dislike them because they're not\n the friendliest thing to use.\n- Twisted has a steep learning curve, and has a lot of cruft.\n- asyncio networking is good, but it's very hands-off - ButterflyNet\n comes with everything needed for a full networking suite.\n\nAll the existing libraries are not, by design, secure. You can work\naround this with SSLContexts - however, ButterflyNet forces TLS with\nsecure settings on your server by default.\n\nGetting Started\n~~~~~~~~~~~~~~~\n\nButterflyNet is available to download off of PyPI:\n``pip install ButterflyNet``\n\n| Documentation can be found `here `__.\n| Examples can be found `here `__.\n\nLimitations\n~~~~~~~~~~~\n\nYou have a choice of TCP or UDP in most networking frameworks. However,\nButterflyNet is designed upon persistent, TLS-authenticated and secured\nconnections, of which UDP has:\n\n- No persistent connections\n- Unreliable TLS security\n\nThis means ButterflyNet is locked to TCP for the future. OpenSSL *does*\nsupport DTLS, but no support for this is planned.\n\n.. |Build Status| image:: https://img.shields.io/circleci/project/SunDwarf/ButterflyNet.svg\n :target: https://circleci.com/gh/SunDwarf/ConfigMaster/\n.. |PyPI version| image:: https://img.shields.io/pypi/v/ButterflyNet.svg\n :target: https://pypi.python.org/pypi/ButterflyNet/\n.. |https://img.shields.io/pypi/l/ButterflyNet.svg| image:: https://img.shields.io/pypi/l/ButterflyNet.svg\n.. |https://img.shields.io/pypi/dw/ButterflyNet.svg| image:: https://img.shields.io/pypi/dw/ButterflyNet.svg\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://butterflynet.veriny.tf", "keywords": null, "license": "LGPLv3", "maintainer": null, "maintainer_email": null, "name": "ButterflyNet", "package_url": "https://pypi.org/project/ButterflyNet/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/ButterflyNet/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://butterflynet.veriny.tf" }, "release_url": "https://pypi.org/project/ButterflyNet/1.1.0/", "requires_dist": null, "requires_python": null, "summary": "A better networking library.", "version": "1.1.0" }, "last_serial": 1850788, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "7ded64bd908c5b1bb5be5c04c8fc3007", "sha256": "dc39c479fb768457aa824ef2fb9881217d40086258a12bb791e607eb8be24540" }, "downloads": -1, "filename": "ButterflyNet-0.0.1-py3.4.egg", "has_sig": true, "md5_digest": "7ded64bd908c5b1bb5be5c04c8fc3007", "packagetype": "bdist_egg", "python_version": "3.4", "requires_python": null, "size": 18408, "upload_time": "2015-11-15T14:11:12", "url": "https://files.pythonhosted.org/packages/e1/63/c9f6932af746975c7f1e82919f13e59e94a9c0a17144fcab4c8335d9f34b/ButterflyNet-0.0.1-py3.4.egg" }, { "comment_text": "", "digests": { "md5": "dc82cf3ec4d648351b3f687a9003d136", "sha256": "192f7ef2195ee9058b7759222c922e4fd2cfd34cae25ec71fa0df47114796c9a" }, "downloads": -1, "filename": "ButterflyNet-0.0.1-py3.5.egg", "has_sig": true, "md5_digest": "dc82cf3ec4d648351b3f687a9003d136", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 18227, "upload_time": "2015-11-15T14:07:21", "url": "https://files.pythonhosted.org/packages/ca/36/7b93e88b9c4239f7a8e2a8b88cbd1ac197ad1a2c384ef948ffc82bf11bf3/ButterflyNet-0.0.1-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "6afb089a642e9916e1c6ef91cfdf6f87", "sha256": "241139a6d6cef7481b759b014b950eb3b9fcff170f32d82710a088ee0f860a99" }, "downloads": -1, "filename": "ButterflyNet-0.0.1-py3-none-any.whl", "has_sig": true, "md5_digest": "6afb089a642e9916e1c6ef91cfdf6f87", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 9342, "upload_time": "2015-11-15T14:07:26", "url": "https://files.pythonhosted.org/packages/bf/e0/37d698aba5e9cd1eef0526cb0479ca23982e22d33fc60ff630678d7f5037/ButterflyNet-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "91540fb58d52c0409f02cf79288138fb", "sha256": "a1d5d3644c3c98a2fa8b166e93315a7e139c09edad9ac8d085c3b0ebe6d0beae" }, "downloads": -1, "filename": "ButterflyNet-0.0.1.tar.gz", "has_sig": true, "md5_digest": "91540fb58d52c0409f02cf79288138fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6996, "upload_time": "2015-11-15T14:07:32", "url": "https://files.pythonhosted.org/packages/42/48/a151bcd964daac9c299fe69fa61d4c316055699a67bd897d46aaa8c28e83/ButterflyNet-0.0.1.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "3a1c0c2035e080b4845a9365f91d6c71", "sha256": "8dca90d2a3b689975b2b14c6820413fae776e2dc94d77a855b641b6fc17104cf" }, "downloads": -1, "filename": "ButterflyNet-1.0.0-py3.4.egg", "has_sig": true, "md5_digest": "3a1c0c2035e080b4845a9365f91d6c71", "packagetype": "bdist_egg", "python_version": "3.4", "requires_python": null, "size": 22007, "upload_time": "2015-11-22T13:37:22", "url": "https://files.pythonhosted.org/packages/d2/cc/0b76a94f5deec7b35430612d0c962fc64391c438698a3133f6fd4dc9e93f/ButterflyNet-1.0.0-py3.4.egg" }, { "comment_text": "", "digests": { "md5": "983b460eebcdfcb998956ad57864d18a", "sha256": "a668f6840e693df30d547bb4a74d08a7b078425d90e25586c979072d972a1586" }, "downloads": -1, "filename": "ButterflyNet-1.0.0-py3.5.egg", "has_sig": true, "md5_digest": "983b460eebcdfcb998956ad57864d18a", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 21986, "upload_time": "2015-11-22T13:36:30", "url": "https://files.pythonhosted.org/packages/fe/c1/42d6cf29274f71edfcff4a85172675a1523d56bbc1cdbe3e5f2e485b9a0c/ButterflyNet-1.0.0-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "e1044436907a6af146f28af225f41c80", "sha256": "50d9a0ae6f33d83533b8c7255be3b7db263328aaa91dd20002c77aefcb9dbfa1" }, "downloads": -1, "filename": "ButterflyNet-1.0.0-py3-none-any.whl", "has_sig": true, "md5_digest": "e1044436907a6af146f28af225f41c80", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 11067, "upload_time": "2015-11-22T13:36:40", "url": "https://files.pythonhosted.org/packages/db/78/92772515660fd8cc4a777fa18c775bdb1d42d80722eff9262494b50a2c00/ButterflyNet-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9ee5286feb7b4db7d50a53bcfed3e566", "sha256": "fc5d65199c7262ebd556c40f1273ffd05f05708c706b9c51c253f22c87bc1929" }, "downloads": -1, "filename": "ButterflyNet-1.0.0.tar.gz", "has_sig": true, "md5_digest": "9ee5286feb7b4db7d50a53bcfed3e566", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8542, "upload_time": "2015-11-22T13:37:00", "url": "https://files.pythonhosted.org/packages/b1/1a/a6f1e4221ba6a28005820280c9be8a2ad1fdc1d0416e38ec83bc1c651da3/ButterflyNet-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "489933e2ef6539dd5de0a2cce1e686de", "sha256": "e839c165616db36938ecfc3278a081440d6d4cfc51e586d43fb7193cb187035a" }, "downloads": -1, "filename": "ButterflyNet-1.0.1-py3.4.egg", "has_sig": true, "md5_digest": "489933e2ef6539dd5de0a2cce1e686de", "packagetype": "bdist_egg", "python_version": "3.4", "requires_python": null, "size": 19078, "upload_time": "2015-12-04T22:08:28", "url": "https://files.pythonhosted.org/packages/e7/38/0a13c1abae73540364cccba931bb12cbab03f3d3c4e148167101f4562b4a/ButterflyNet-1.0.1-py3.4.egg" }, { "comment_text": "", "digests": { "md5": "b769d6f4ccb975eafbf28b382142177e", "sha256": "85bc71772137e9f91f2706f35cf7657c2a110dc4986bf683edb93405f37d7c8f" }, "downloads": -1, "filename": "ButterflyNet-1.0.1-py3.5.egg", "has_sig": true, "md5_digest": "b769d6f4ccb975eafbf28b382142177e", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 19063, "upload_time": "2015-12-04T22:07:50", "url": "https://files.pythonhosted.org/packages/a4/1e/edb3de003884ab045a38a2e57fb8a804e9711337016994db43e4a36db238/ButterflyNet-1.0.1-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "90ac3ad63e6a3132416cc37db331a851", "sha256": "f8b193fbee49d645dbc412306b112286664ed5781711bed12f7ae36cb9e4afe8" }, "downloads": -1, "filename": "ButterflyNet-1.0.1-py3-none-any.whl", "has_sig": true, "md5_digest": "90ac3ad63e6a3132416cc37db331a851", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 9628, "upload_time": "2015-12-04T22:07:57", "url": "https://files.pythonhosted.org/packages/98/08/c35e457487768528cf44e8a0c3804cdf8b969a428118a6c9b7ec20878858/ButterflyNet-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8484909a6ea94eeadbef96d5b2b760d7", "sha256": "739940fe96eca6da456689bd4185d32f730c6e5d5b2d17ea849eaa8b0a9fdc3f" }, "downloads": -1, "filename": "ButterflyNet-1.0.1.tar.gz", "has_sig": true, "md5_digest": "8484909a6ea94eeadbef96d5b2b760d7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8281, "upload_time": "2015-12-04T22:08:09", "url": "https://files.pythonhosted.org/packages/97/49/42113880a21d7d2f62c11ff3a4db4806dda9e2ca12e3217d55667f362d10/ButterflyNet-1.0.1.tar.gz" } ], "1.0.1.post1": [ { "comment_text": "", "digests": { "md5": "1815e95af31ee1e7b2fbce9493a34510", "sha256": "74bc5ed5f0c0ea49501f4b82b98145cc5ac03a7cd813b12c03901b69764f4913" }, "downloads": -1, "filename": "ButterflyNet-1.0.1.post1-py3.4.egg", "has_sig": true, "md5_digest": "1815e95af31ee1e7b2fbce9493a34510", "packagetype": "bdist_egg", "python_version": "3.4", "requires_python": null, "size": 30098, "upload_time": "2015-12-05T15:59:54", "url": "https://files.pythonhosted.org/packages/22/59/135a178dcb0305bec466c2c0721b7abf31c6dd796c7fc6c5aca996bc0995/ButterflyNet-1.0.1.post1-py3.4.egg" }, { "comment_text": "", "digests": { "md5": "dee184dce55698e256c866337d6058b8", "sha256": "f56f082e9e5097074613db775dc73726d8aa33d3d5eb73c4abe08e67dac0d159" }, "downloads": -1, "filename": "ButterflyNet-1.0.1.post1-py3.5.egg", "has_sig": true, "md5_digest": "dee184dce55698e256c866337d6058b8", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 30072, "upload_time": "2015-12-05T15:59:29", "url": "https://files.pythonhosted.org/packages/b3/89/b54ee4bec5d9d3c52c52783049580b65fdc257f79f28a747dac208c1a296/ButterflyNet-1.0.1.post1-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "75d75c8e39f1fffbe2435e244a7961ca", "sha256": "30bc723df42bddab12e2fb96da722790b79e930f05561cdc38fdb8b77a0717a2" }, "downloads": -1, "filename": "ButterflyNet-1.0.1.post1-py3-none-any.whl", "has_sig": true, "md5_digest": "75d75c8e39f1fffbe2435e244a7961ca", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 14031, "upload_time": "2015-12-05T15:59:34", "url": "https://files.pythonhosted.org/packages/db/d7/d5c13e7c4ac56a1aca16e7584870b1ab069c6398b7e0bc8cb1484cfa6684/ButterflyNet-1.0.1.post1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c6c4224978d90612fe0cd2b5d9fb78bf", "sha256": "d3b4af560cb91d219601aa3c8d2b173abcb84031a6a900f6d5a5391a2743ae9c" }, "downloads": -1, "filename": "ButterflyNet-1.0.1.post1.tar.gz", "has_sig": true, "md5_digest": "c6c4224978d90612fe0cd2b5d9fb78bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10765, "upload_time": "2015-12-05T15:59:45", "url": "https://files.pythonhosted.org/packages/1a/b5/3a90b5c1473329e364d8c3698fabd7e14977cbd72b0eb497964ae490be9c/ButterflyNet-1.0.1.post1.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "3e0429f15a0cb7a18e1811710fad6955", "sha256": "d60f85944bc670cd9aee70441edfc5b5286243d7e2e4ac3a6346b0b6a0c3c3f9" }, "downloads": -1, "filename": "ButterflyNet-1.1.0-py3.4.egg", "has_sig": true, "md5_digest": "3e0429f15a0cb7a18e1811710fad6955", "packagetype": "bdist_egg", "python_version": "3.4", "requires_python": null, "size": 30286, "upload_time": "2015-12-07T19:54:24", "url": "https://files.pythonhosted.org/packages/cd/86/d70f39611b5b6f5f84048b0f35551b65f933ef2aa8c22c0c581bc2609598/ButterflyNet-1.1.0-py3.4.egg" }, { "comment_text": "", "digests": { "md5": "4e34e313f7d97a45b879fb5acb6a2915", "sha256": "7c63bf681e2befdccbe2dc1276a7a430ec50d856fa699dfce8b74f220e1f4bcb" }, "downloads": -1, "filename": "ButterflyNet-1.1.0-py3.5.egg", "has_sig": true, "md5_digest": "4e34e313f7d97a45b879fb5acb6a2915", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 30260, "upload_time": "2015-12-07T19:53:57", "url": "https://files.pythonhosted.org/packages/a0/e5/4d2b0a52441fd3d8d02e0b9ff8d9be356ecfa10308855dcf57e65a928a1b/ButterflyNet-1.1.0-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "197ef457492f5cae2e338ef1372c0667", "sha256": "06a0ad1ecb2addfa563f0b4db3c6189a33808b22aea780d411d9f3e9bc03613b" }, "downloads": -1, "filename": "ButterflyNet-1.1.0-py3-none-any.whl", "has_sig": true, "md5_digest": "197ef457492f5cae2e338ef1372c0667", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 13990, "upload_time": "2015-12-07T19:54:11", "url": "https://files.pythonhosted.org/packages/c5/12/dc64296fca6aebfe3af4f2c4e0e7367cf5827a4c51f0f964353d5d0ab4d2/ButterflyNet-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "66472163053eb14f8f31895bad4f06e5", "sha256": "8cbd20a4ab5fc2a3dbd02b5d1d6bcab908886dca54a70706b2fd7a6e7906f083" }, "downloads": -1, "filename": "ButterflyNet-1.1.0.tar.gz", "has_sig": true, "md5_digest": "66472163053eb14f8f31895bad4f06e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10828, "upload_time": "2015-12-07T19:54:16", "url": "https://files.pythonhosted.org/packages/e1/aa/2a1e06f5ef24a2c327b54463d427f29b4218c0d363f6651af1f91ba74d4d/ButterflyNet-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3e0429f15a0cb7a18e1811710fad6955", "sha256": "d60f85944bc670cd9aee70441edfc5b5286243d7e2e4ac3a6346b0b6a0c3c3f9" }, "downloads": -1, "filename": "ButterflyNet-1.1.0-py3.4.egg", "has_sig": true, "md5_digest": "3e0429f15a0cb7a18e1811710fad6955", "packagetype": "bdist_egg", "python_version": "3.4", "requires_python": null, "size": 30286, "upload_time": "2015-12-07T19:54:24", "url": "https://files.pythonhosted.org/packages/cd/86/d70f39611b5b6f5f84048b0f35551b65f933ef2aa8c22c0c581bc2609598/ButterflyNet-1.1.0-py3.4.egg" }, { "comment_text": "", "digests": { "md5": "4e34e313f7d97a45b879fb5acb6a2915", "sha256": "7c63bf681e2befdccbe2dc1276a7a430ec50d856fa699dfce8b74f220e1f4bcb" }, "downloads": -1, "filename": "ButterflyNet-1.1.0-py3.5.egg", "has_sig": true, "md5_digest": "4e34e313f7d97a45b879fb5acb6a2915", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 30260, "upload_time": "2015-12-07T19:53:57", "url": "https://files.pythonhosted.org/packages/a0/e5/4d2b0a52441fd3d8d02e0b9ff8d9be356ecfa10308855dcf57e65a928a1b/ButterflyNet-1.1.0-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "197ef457492f5cae2e338ef1372c0667", "sha256": "06a0ad1ecb2addfa563f0b4db3c6189a33808b22aea780d411d9f3e9bc03613b" }, "downloads": -1, "filename": "ButterflyNet-1.1.0-py3-none-any.whl", "has_sig": true, "md5_digest": "197ef457492f5cae2e338ef1372c0667", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 13990, "upload_time": "2015-12-07T19:54:11", "url": "https://files.pythonhosted.org/packages/c5/12/dc64296fca6aebfe3af4f2c4e0e7367cf5827a4c51f0f964353d5d0ab4d2/ButterflyNet-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "66472163053eb14f8f31895bad4f06e5", "sha256": "8cbd20a4ab5fc2a3dbd02b5d1d6bcab908886dca54a70706b2fd7a6e7906f083" }, "downloads": -1, "filename": "ButterflyNet-1.1.0.tar.gz", "has_sig": true, "md5_digest": "66472163053eb14f8f31895bad4f06e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10828, "upload_time": "2015-12-07T19:54:16", "url": "https://files.pythonhosted.org/packages/e1/aa/2a1e06f5ef24a2c327b54463d427f29b4218c0d363f6651af1f91ba74d4d/ButterflyNet-1.1.0.tar.gz" } ] }