Netix is a high-performance ASGI (Asynchronous Server Gateway Interface) server designed for efficiently serving ASGI web applications and APIs. It offers a robust, customizable, and easy-to-use platform for deploying your ASGI applications.
Project description
Netix ASGI Server
Netix is a high-performance ASGI (Asynchronous Server Gateway Interface) server designed for efficiently serving ASGI web applications and APIs. It offers a robust, customizable, and easy-to-use platform for deploying your ASGI applications.
Table of Contents
- Features
- Installation
- Getting Started
- Configuration
- Middleware Support
- Contributing
- License
- Acknowledgments
- Support and Feedback
Features
- Concurrency Control: Easily set the number of worker processes to manage concurrent requests efficiently.
- Socket Options: Support for both Unix sockets and network sockets with customizable socket options.
- Middleware Support: Implement request and response middlewares to customize the behavior of your ASGI application.
- Daemon Mode: Run Netix as a daemon to keep it running in the background, detached from the terminal.
- Status Monitoring: Schedule status checks to monitor the health of your ASGI server.
Installation
You can install Netix via pip
, making it a breeze to get started:
pip install netix
Configuration
Available Commands and Options
You can control and configure Netix using various command-line options when starting the server:
--host
: Listen host. Defaults to "127.0.0.1".--daemon
: Start the daemon mode to run the server in the background. Use--daemon main:app
or@app module
to daemonize.--port
: Listen port. Defaults to 8000.--bind
: Address to bind. You can use this option instead of--host
and--port
. For example, "127.0.0.1:8000" or "/tmp/file.sock".--reuse-port
: UseSO_REUSEPORT
when available.--worker-num
: Number of worker processes. Defaults to 1.--backlog
: Maximum number of pending connections. Defaults to 100.--ssl-cert
: SSL certificate location. For example, "/path/to/fullchain.pem".--ssl-key
: SSL private key location. For example, "/path/to/privkey.pem".--debug
: Enable debug mode. Intended for development.--no-ws
: Disable built-in WebSocket support.--log-level
: Defaults to "DEBUG". For available log levels, see Python Logging Levels.--download-rate
: Limits the sending speed to the client. Defaults to 1048576, which means 1 MiB/s.--upload-rate
: Limits the upload / POST speed. Defaults to 1048576, which means 1 MiB/s.--buffer-size
: Defaults to 16384, or 16 KiB.--client-max-body-size
: Defaults to 2 * 1048576, or 2 MiB.--request-timeout
: Defaults to 30 seconds.--keepalive-timeout
: Defaults to 30 seconds.--keepalive-connections
: Maximum number of keep-alive connections per worker. Defaults to 512 connections per worker.--root-path
: Set the ASGI root_path. Defaults to an empty string.
For example, you can run Netix with these options:
python3 -m netix --debug --port 8080 example:app
python3 -m netix --daemon example:app
or
netix --debug --port 8080 example:app
netix --daemon example:app
Example
- Run the Lexan ASGI Framework App using Netix Server.
$ netix --bind 127.0.0.1:8000 example:app
- Output:
Starting Netix v1.11 (cpython 3.11.4, linux)
------------------------------------------------------------------------
Settings: [
host=127.0.0.1, port=8000, reuse_port=True, worker_num=1, ssl={}, app=test:app, log_level=DEBUG
]
------------------------------------------------------------------------
[2023-10-21 23:02:39] Starting Netix ASGI server for /\ Aquilify
[2023-10-21 23:02:39,890] INFO: lifespan: startup
[2023-10-21 23:02:40] Netix (ASGI) (pid 69334) is started at 127.0.0.1:8000 (Press CTRL+C to quit)
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
Built Distribution
File details
Details for the file netix-1.13.tar.gz
.
File metadata
- Download URL: netix-1.13.tar.gz
- Upload date:
- Size: 38.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5bc78f71ba4b0e900037dd2526fff4dc24441803e33a59aa8d26d564f8997326 |
|
MD5 | 3a8330c47c70f4b8aa8d07cb8f80e9a0 |
|
BLAKE2b-256 | a58b9d9a6fc5f1e4f4a4f03fc61baa7f26a9dd80c2d564ca52219abd49945b6e |
File details
Details for the file netix-1.13-py3-none-any.whl
.
File metadata
- Download URL: netix-1.13-py3-none-any.whl
- Upload date:
- Size: 45.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27586efbfe7af26950183d8897316b2f098a2d008eeda4563b3766a9281b2036 |
|
MD5 | 9df8b64ded40e2c4a8aef46dc7516448 |
|
BLAKE2b-256 | cec6cbb1f0d9fb4800f5dbdf6e4c774aa0803e06142444203e1399cea2c90671 |