# Echocorn
**Echocorn** is an exceptionally fast, lightweight ASGI server with a custom HTTP/1.1 implementation and first-class HTTP/2 support (powered by the `h2` library). Designed for modern web applications, Echocorn combines high throughput with small resource overhead and includes built-in response compression and hardened HTTP header security.
---
## Key features
* High-performance ASGI server optimized for low-latency workloads
* Native HTTP/1.1 implementation plus built-in HTTP/2 support via `h2`
* Transparent response compression (gzip/deflate) to reduce bandwidth usage
* Enhanced HTTP header security (CSP, HSTS, X-Frame-Options, etc.) out of the box
* Minimal dependencies and small memory footprint
* Simple command-line interface for quick deployment
---
## Quick install
Install from PyPI:
```bash
pip install echocorn
```
---
## Quick start
Run your ASGI application (example using a callable named `app` inside `app.py`):
```bash
echocorn --app app:app --port 443
```
Show all available command-line options:
```bash
echocorn --help
```
---
## Example usage
Use Echocorn to serve a FastAPI, Starlette, or any ASGI app.
```bash
# Serve app.app (where `app` is an ASGI application instance)
echocorn --app app:app --host 0.0.0.0 --port 443 --workers 2 --safe-headers --keyfile key.pem --certfile cert.pem
```
---
## Configuration & options
Echocorn exposes CLI flags for common server settings such as:
* `--app` — module:callable path to your ASGI application
* `--host` / `--port` — where the server listens
* `--workers` — number of worker processes
* `--certfile`, `--keyfile` — TLS/SSL files for secure connections
* `--compression` — toggle or tune response compression
* `--safe-headers` — enable security headers
* `--domain` — allows requests only if host in headers matches
* `--about` — show about the server
Run `echocorn --help` to see the full set of parameters and defaults.
---
## Security & performance
Echocorn focuses on secure and efficient defaults:
* HTTP header hardening (CSP, HSTS, X-Content-Type-Options, X-Frame-Options) to reduce common web risks
* Built-in compression to reduce latency & bandwidth costs for clients
* Optimised request/response handling path for minimal overhead and maximum throughput
For production use, pair Echocorn with standard hardening measures (firewall rules, TLS best practices, OS-level tuning) and monitor resource usage.
---
## Screenshots
Examples of running Echocorn and request logs:
<img width="48.9%" src="https://raw.githubusercontent.com/mishakorzik/echocorn/refs/heads/main/screenshot_1.jpg"/>
<img width="48.9%" src="https://raw.githubusercontent.com/mishakorzik/echocorn/refs/heads/main/screenshot_2.jpg"/>
---
## Donate
If you find Echocorn useful and want to support development, you can donate here:
[<img title="Donate" src="https://img.shields.io/badge/Donate-Echocorn-blue?style=for-the-badge&logo=github"/>](https://www.buymeacoffee.com/misakorzik)
---
## Community & support
* Telegram: [https://t.me/ubp2q](https://t.me/ubp2q)
* Discord: [https://discord.gg/xwpMuMYW57](https://discord.gg/xwpMuMYW57)
If you find a bug or have questions, open an issue or reach out on Discord.
Raw data
{
"_id": null,
"home_page": "https://github.com/mishakorzik/echocorn",
"name": "echocorn",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "asgi, async, uvloop, fast, http, https, hsts, tls, server, secure, secured, dualstack",
"author": "MishaKorzhik_He1Zen",
"author_email": "developer.mishakorzhik@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/48/dd/e23e7e91568ee02bc58f2b2543de848a4faa3c208265bd9bedac176361c9/echocorn-1.0.0b0.tar.gz",
"platform": null,
"description": "# Echocorn\n\n**Echocorn** is an exceptionally fast, lightweight ASGI server with a custom HTTP/1.1 implementation and first-class HTTP/2 support (powered by the `h2` library). Designed for modern web applications, Echocorn combines high throughput with small resource overhead and includes built-in response compression and hardened HTTP header security.\n\n---\n\n## Key features\n\n* High-performance ASGI server optimized for low-latency workloads\n* Native HTTP/1.1 implementation plus built-in HTTP/2 support via `h2`\n* Transparent response compression (gzip/deflate) to reduce bandwidth usage\n* Enhanced HTTP header security (CSP, HSTS, X-Frame-Options, etc.) out of the box\n* Minimal dependencies and small memory footprint\n* Simple command-line interface for quick deployment\n\n---\n\n## Quick install\n\nInstall from PyPI:\n\n```bash\npip install echocorn\n```\n\n---\n\n## Quick start\n\nRun your ASGI application (example using a callable named `app` inside `app.py`):\n\n```bash\nechocorn --app app:app --port 443\n```\n\nShow all available command-line options:\n\n```bash\nechocorn --help\n```\n\n---\n\n## Example usage\n\nUse Echocorn to serve a FastAPI, Starlette, or any ASGI app.\n\n```bash\n# Serve app.app (where `app` is an ASGI application instance)\nechocorn --app app:app --host 0.0.0.0 --port 443 --workers 2 --safe-headers --keyfile key.pem --certfile cert.pem\n```\n\n---\n\n## Configuration & options\n\nEchocorn exposes CLI flags for common server settings such as:\n\n* `--app` \u2014 module:callable path to your ASGI application\n* `--host` / `--port` \u2014 where the server listens\n* `--workers` \u2014 number of worker processes\n* `--certfile`, `--keyfile` \u2014 TLS/SSL files for secure connections\n* `--compression` \u2014 toggle or tune response compression\n* `--safe-headers` \u2014 enable security headers\n* `--domain` \u2014 allows requests only if host in headers matches\n* `--about` \u2014 show about the server\n\nRun `echocorn --help` to see the full set of parameters and defaults.\n\n---\n\n## Security & performance\n\nEchocorn focuses on secure and efficient defaults:\n\n* HTTP header hardening (CSP, HSTS, X-Content-Type-Options, X-Frame-Options) to reduce common web risks\n* Built-in compression to reduce latency & bandwidth costs for clients\n* Optimised request/response handling path for minimal overhead and maximum throughput\n\nFor production use, pair Echocorn with standard hardening measures (firewall rules, TLS best practices, OS-level tuning) and monitor resource usage.\n\n---\n\n## Screenshots\n\nExamples of running Echocorn and request logs:\n\n<img width=\"48.9%\" src=\"https://raw.githubusercontent.com/mishakorzik/echocorn/refs/heads/main/screenshot_1.jpg\"/>\n<img width=\"48.9%\" src=\"https://raw.githubusercontent.com/mishakorzik/echocorn/refs/heads/main/screenshot_2.jpg\"/>\n\n---\n\n## Donate\n\nIf you find Echocorn useful and want to support development, you can donate here:\n\n[<img title=\"Donate\" src=\"https://img.shields.io/badge/Donate-Echocorn-blue?style=for-the-badge&logo=github\"/>](https://www.buymeacoffee.com/misakorzik)\n\n---\n\n## Community & support\n\n* Telegram: [https://t.me/ubp2q](https://t.me/ubp2q)\n* Discord: [https://discord.gg/xwpMuMYW57](https://discord.gg/xwpMuMYW57)\n\nIf you find a bug or have questions, open an issue or reach out on Discord.\n",
"bugtrack_url": null,
"license": "Apache 2.0",
"summary": "Very fast asynchronous asgi server with HTTP/1.1 and HTTP/2.0",
"version": "1.0.0b0",
"project_urls": {
"Bug Tracker": "https://github.com/mishakorzik/echocorn/issues",
"Donate": "https://www.buymeacoffee.com/misakorzik",
"Homepage": "https://github.com/mishakorzik/echocorn"
},
"split_keywords": [
"asgi",
" async",
" uvloop",
" fast",
" http",
" https",
" hsts",
" tls",
" server",
" secure",
" secured",
" dualstack"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "48dde23e7e91568ee02bc58f2b2543de848a4faa3c208265bd9bedac176361c9",
"md5": "e55b91e1835de4a3dca9a08a0ee4749f",
"sha256": "16a0df054d77e1d2879196127e9d41efbadbb30969814a79afe17dccd7bfd286"
},
"downloads": -1,
"filename": "echocorn-1.0.0b0.tar.gz",
"has_sig": false,
"md5_digest": "e55b91e1835de4a3dca9a08a0ee4749f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 15035,
"upload_time": "2025-11-01T15:03:59",
"upload_time_iso_8601": "2025-11-01T15:03:59.175551Z",
"url": "https://files.pythonhosted.org/packages/48/dd/e23e7e91568ee02bc58f2b2543de848a4faa3c208265bd9bedac176361c9/echocorn-1.0.0b0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-11-01 15:03:59",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "mishakorzik",
"github_project": "echocorn",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "echocorn"
}