Skip to main content

A better networking library.

Project description

ButterflyNet - Drawn by Tudor Iacobescu

Build Status PyPI version https://img.shields.io/pypi/l/ButterflyNet.svg https://img.shields.io/pypi/dw/ButterflyNet.svg

ButterflyNet is an server-side batteries-included secure networking framework built upon asyncio.

All code in ButterflyNet is designed to be asynchronous by default, with special cases made for non-async code such as external libraries.
Because of the heavy usage of asyncio, this module does not officially support Python versions before 3.4. It may be possible to run it with a backported tulip library, but no official support will be given for this.

Why ButterflyNet?

ButterflyNet was designed for a few main reasons:

  • Sockets are low-level; personally, I dislike them because they’re not the friendliest thing to use.

  • Twisted has a steep learning curve, and has a lot of cruft.

  • asyncio networking is good, but it’s very hands-off - ButterflyNet comes with everything needed for a full networking suite.

All the existing libraries are not, by design, secure. You can work around this with SSLContexts - however, ButterflyNet forces TLS with secure settings on your server by default.

Getting Started

ButterflyNet is available to download off of PyPI: pip install ButterflyNet

Documentation can be found here.
Examples can be found here.

Limitations

You have a choice of TCP or UDP in most networking frameworks. However, ButterflyNet is designed upon persistent, TLS-authenticated and secured connections, of which UDP has:

  • No persistent connections

  • Unreliable TLS security

This means ButterflyNet is locked to TCP for the future. OpenSSL does support DTLS, but no support for this is planned.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ButterflyNet-1.1.0.tar.gz (10.8 kB view details)

Uploaded Source

Built Distributions

ButterflyNet-1.1.0-py3.5.egg (30.3 kB view details)

Uploaded Source

ButterflyNet-1.1.0-py3.4.egg (30.3 kB view details)

Uploaded Source

ButterflyNet-1.1.0-py3-none-any.whl (14.0 kB view details)

Uploaded Python 3

File details

Details for the file ButterflyNet-1.1.0.tar.gz.

File metadata

File hashes

Hashes for ButterflyNet-1.1.0.tar.gz
Algorithm Hash digest
SHA256 8cbd20a4ab5fc2a3dbd02b5d1d6bcab908886dca54a70706b2fd7a6e7906f083
MD5 66472163053eb14f8f31895bad4f06e5
BLAKE2b-256 e1aa2a1e06f5ef24a2c327b54463d427f29b4218c0d363f6651af1f91ba74d4d

See more details on using hashes here.

File details

Details for the file ButterflyNet-1.1.0-py3.5.egg.

File metadata

File hashes

Hashes for ButterflyNet-1.1.0-py3.5.egg
Algorithm Hash digest
SHA256 7c63bf681e2befdccbe2dc1276a7a430ec50d856fa699dfce8b74f220e1f4bcb
MD5 4e34e313f7d97a45b879fb5acb6a2915
BLAKE2b-256 a0e54d2b0a52441fd3d8d02e0b9ff8d9be356ecfa10308855dcf57e65a928a1b

See more details on using hashes here.

File details

Details for the file ButterflyNet-1.1.0-py3.4.egg.

File metadata

File hashes

Hashes for ButterflyNet-1.1.0-py3.4.egg
Algorithm Hash digest
SHA256 d60f85944bc670cd9aee70441edfc5b5286243d7e2e4ac3a6346b0b6a0c3c3f9
MD5 3e0429f15a0cb7a18e1811710fad6955
BLAKE2b-256 cd86d70f39611b5b6f5f84048b0f35551b65f933ef2aa8c22c0c581bc2609598

See more details on using hashes here.

File details

Details for the file ButterflyNet-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ButterflyNet-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 06a0ad1ecb2addfa563f0b4db3c6189a33808b22aea780d411d9f3e9bc03613b
MD5 197ef457492f5cae2e338ef1372c0667
BLAKE2b-256 c512dc64296fca6aebfe3af4f2c4e0e7367cf5827a4c51f0f964353d5d0ab4d2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page