Mr. D. Reinhardt, with a pair of guitars and tatters of sheet music in the back seat, speeds his convertible westward over the mountains. The campfire carries on without the blessing of his gypsy jazz, but his morning return is as a fearsome, left-handed character – familiar but Twisted (.py)
v5.0.0
A Python web server that makes async and offbeat network traffic easy, fun, and fast.
Overview
hendrix is a tool for handling bytes-on-the-wire to and from your python web application. In this sense, it is similar to mod_wsgi, uWSGI, and gunicorn.
However, hendrix differs from these other technologies in that it is natively asynchronous and designed with background tasks in mind. In this sense, it may serve some projects as a replacement for gevent or celery.
hendrix implements the WSGI protocol, so it can serve applications made with django, pyramid, flask and other WSGI frameworks. However, hendrix views your web as just another network resource - in fact, this is central to the hendrix philosophy.
Twisted is one of the most battle-tested and actively developed Python projects. Until hendrix, however, Twisted has not been part of a mainstream python web server. And that's a shame.
Features
- Multi-processing - The WSGI app can be served from multiple processes on a single machine.
- Multi-threading from within your Django / Flask / Pyramid app: Various APIs allow you to defer logic until later, place it in a different thread or process, and report back asynchronously. For example, see crosstown_traffic.
- Built-in Websockets Framework
- Optional Resource Caching
- Built-in SSL Support: Terminate SSL inside your app if you like. Public keys can be part of your logic!
- Daemonize by passing the
-dor--daemonizeflags tohx
Quickstart
Using pip
pip install hendrix
Running the Development Server
cd to the directory where your manage.py file is located and...
hx start --dev
This is roughly the equivalent of running the django devserver.
For more, see the full hendrix documentation.
Metadata
Release files for hendrix 5.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| hendrix-5.0.0.tar.gz | 81.4 kB | Without provenance | Details for hendrix-5.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| hendrix-5.0.0-py3-none-any.whl | Python 3 | none | any | Details for hendrix-5.0.0-py3-none-any.whl |
Total release size: 138.7 kB
Release files / hendrix-5.0.0.tar.gz
| Download URL | hendrix-5.0.0.tar.gz |
|---|---|
| Size | 81.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f78ca22f41528eec242b9685a6d88bc24ce60660660add07292088771738518b
|
|
BLAKE2b-256 checksum How to use checksums |
16ba2ce73956bb9de94af1ab642ff8a2622988e85e420028a2dd8f73f39a4780
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.12
|
Release files / hendrix-5.0.0-py3-none-any.whl
| Download URL | hendrix-5.0.0-py3-none-any.whl |
|---|---|
| Size | 57.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c0780230c75c7d912fbb530406fd8ac979b1849a2e535f1b72fb7002a29b9b44
|
|
BLAKE2b-256 checksum How to use checksums |
16d4e29e2f34c977889e8b0fea3765e54ef21675a0cb16556959a7ab0b6643fa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.12
|
Security for hendrix 5.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.