echocorn


Nameechocorn JSON
Version 1.0.0b0 PyPI version JSON
download
home_pagehttps://github.com/mishakorzik/echocorn
SummaryVery fast asynchronous asgi server with HTTP/1.1 and HTTP/2.0
upload_time2025-11-01 15:03:59
maintainerNone
docs_urlNone
authorMishaKorzhik_He1Zen
requires_python>=3.7
licenseApache 2.0
keywords asgi async uvloop fast http https hsts tls server secure secured dualstack
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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"
}
        
Elapsed time: 1.38151s