echocorn 1.0.0b0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- echocorn-1.0.0b0/PKG-INFO +153 -0
- echocorn-1.0.0b0/README.md +106 -0
- echocorn-1.0.0b0/echocorn/__init__.py +1 -0
- echocorn-1.0.0b0/echocorn/__main__.py +1131 -0
- echocorn-1.0.0b0/echocorn.egg-info/PKG-INFO +153 -0
- echocorn-1.0.0b0/echocorn.egg-info/SOURCES.txt +11 -0
- echocorn-1.0.0b0/echocorn.egg-info/dependency_links.txt +1 -0
- echocorn-1.0.0b0/echocorn.egg-info/entry_points.txt +2 -0
- echocorn-1.0.0b0/echocorn.egg-info/requires.txt +1 -0
- echocorn-1.0.0b0/echocorn.egg-info/top_level.txt +1 -0
- echocorn-1.0.0b0/setup.cfg +7 -0
- echocorn-1.0.0b0/setup.py +67 -0
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: echocorn
|
|
3
|
+
Version: 1.0.0b0
|
|
4
|
+
Summary: Very fast asynchronous asgi server with HTTP/1.1 and HTTP/2.0
|
|
5
|
+
Home-page: https://github.com/mishakorzik/echocorn
|
|
6
|
+
Author: MishaKorzhik_He1Zen
|
|
7
|
+
Author-email: developer.mishakorzhik@gmail.com
|
|
8
|
+
License: Apache 2.0
|
|
9
|
+
Project-URL: Bug Tracker, https://github.com/mishakorzik/echocorn/issues
|
|
10
|
+
Project-URL: Donate, https://www.buymeacoffee.com/misakorzik
|
|
11
|
+
Keywords: asgi,async,uvloop,fast,http,https,hsts,tls,server,secure,secured,dualstack
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Programming Language :: Python
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.7
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
25
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
26
|
+
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
27
|
+
Classifier: Framework :: AsyncIO
|
|
28
|
+
Classifier: Topic :: Internet :: WWW/HTTP
|
|
29
|
+
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
|
|
30
|
+
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
|
31
|
+
Classifier: Environment :: Web Environment
|
|
32
|
+
Requires-Python: >=3.7
|
|
33
|
+
Description-Content-Type: text/markdown
|
|
34
|
+
Requires-Dist: h2>=4.0.0
|
|
35
|
+
Dynamic: author
|
|
36
|
+
Dynamic: author-email
|
|
37
|
+
Dynamic: classifier
|
|
38
|
+
Dynamic: description
|
|
39
|
+
Dynamic: description-content-type
|
|
40
|
+
Dynamic: home-page
|
|
41
|
+
Dynamic: keywords
|
|
42
|
+
Dynamic: license
|
|
43
|
+
Dynamic: project-url
|
|
44
|
+
Dynamic: requires-dist
|
|
45
|
+
Dynamic: requires-python
|
|
46
|
+
Dynamic: summary
|
|
47
|
+
|
|
48
|
+
# Echocorn
|
|
49
|
+
|
|
50
|
+
**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.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Key features
|
|
55
|
+
|
|
56
|
+
* High-performance ASGI server optimized for low-latency workloads
|
|
57
|
+
* Native HTTP/1.1 implementation plus built-in HTTP/2 support via `h2`
|
|
58
|
+
* Transparent response compression (gzip/deflate) to reduce bandwidth usage
|
|
59
|
+
* Enhanced HTTP header security (CSP, HSTS, X-Frame-Options, etc.) out of the box
|
|
60
|
+
* Minimal dependencies and small memory footprint
|
|
61
|
+
* Simple command-line interface for quick deployment
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Quick install
|
|
66
|
+
|
|
67
|
+
Install from PyPI:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
pip install echocorn
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Quick start
|
|
76
|
+
|
|
77
|
+
Run your ASGI application (example using a callable named `app` inside `app.py`):
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
echocorn --app app:app --port 443
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Show all available command-line options:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
echocorn --help
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Example usage
|
|
92
|
+
|
|
93
|
+
Use Echocorn to serve a FastAPI, Starlette, or any ASGI app.
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
# Serve app.app (where `app` is an ASGI application instance)
|
|
97
|
+
echocorn --app app:app --host 0.0.0.0 --port 443 --workers 2 --safe-headers --keyfile key.pem --certfile cert.pem
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Configuration & options
|
|
103
|
+
|
|
104
|
+
Echocorn exposes CLI flags for common server settings such as:
|
|
105
|
+
|
|
106
|
+
* `--app` — module:callable path to your ASGI application
|
|
107
|
+
* `--host` / `--port` — where the server listens
|
|
108
|
+
* `--workers` — number of worker processes
|
|
109
|
+
* `--certfile`, `--keyfile` — TLS/SSL files for secure connections
|
|
110
|
+
* `--compression` — toggle or tune response compression
|
|
111
|
+
* `--safe-headers` — enable security headers
|
|
112
|
+
* `--domain` — allows requests only if host in headers matches
|
|
113
|
+
* `--about` — show about the server
|
|
114
|
+
|
|
115
|
+
Run `echocorn --help` to see the full set of parameters and defaults.
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Security & performance
|
|
120
|
+
|
|
121
|
+
Echocorn focuses on secure and efficient defaults:
|
|
122
|
+
|
|
123
|
+
* HTTP header hardening (CSP, HSTS, X-Content-Type-Options, X-Frame-Options) to reduce common web risks
|
|
124
|
+
* Built-in compression to reduce latency & bandwidth costs for clients
|
|
125
|
+
* Optimised request/response handling path for minimal overhead and maximum throughput
|
|
126
|
+
|
|
127
|
+
For production use, pair Echocorn with standard hardening measures (firewall rules, TLS best practices, OS-level tuning) and monitor resource usage.
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Screenshots
|
|
132
|
+
|
|
133
|
+
Examples of running Echocorn and request logs:
|
|
134
|
+
|
|
135
|
+
<img width="48.9%" src="https://raw.githubusercontent.com/mishakorzik/echocorn/refs/heads/main/screenshot_1.jpg"/>
|
|
136
|
+
<img width="48.9%" src="https://raw.githubusercontent.com/mishakorzik/echocorn/refs/heads/main/screenshot_2.jpg"/>
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Donate
|
|
141
|
+
|
|
142
|
+
If you find Echocorn useful and want to support development, you can donate here:
|
|
143
|
+
|
|
144
|
+
[<img title="Donate" src="https://img.shields.io/badge/Donate-Echocorn-blue?style=for-the-badge&logo=github"/>](https://www.buymeacoffee.com/misakorzik)
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Community & support
|
|
149
|
+
|
|
150
|
+
* Telegram: [https://t.me/ubp2q](https://t.me/ubp2q)
|
|
151
|
+
* Discord: [https://discord.gg/xwpMuMYW57](https://discord.gg/xwpMuMYW57)
|
|
152
|
+
|
|
153
|
+
If you find a bug or have questions, open an issue or reach out on Discord.
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# Echocorn
|
|
2
|
+
|
|
3
|
+
**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.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Key features
|
|
8
|
+
|
|
9
|
+
* High-performance ASGI server optimized for low-latency workloads
|
|
10
|
+
* Native HTTP/1.1 implementation plus built-in HTTP/2 support via `h2`
|
|
11
|
+
* Transparent response compression (gzip/deflate) to reduce bandwidth usage
|
|
12
|
+
* Enhanced HTTP header security (CSP, HSTS, X-Frame-Options, etc.) out of the box
|
|
13
|
+
* Minimal dependencies and small memory footprint
|
|
14
|
+
* Simple command-line interface for quick deployment
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Quick install
|
|
19
|
+
|
|
20
|
+
Install from PyPI:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
pip install echocorn
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Quick start
|
|
29
|
+
|
|
30
|
+
Run your ASGI application (example using a callable named `app` inside `app.py`):
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
echocorn --app app:app --port 443
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Show all available command-line options:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
echocorn --help
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Example usage
|
|
45
|
+
|
|
46
|
+
Use Echocorn to serve a FastAPI, Starlette, or any ASGI app.
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# Serve app.app (where `app` is an ASGI application instance)
|
|
50
|
+
echocorn --app app:app --host 0.0.0.0 --port 443 --workers 2 --safe-headers --keyfile key.pem --certfile cert.pem
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Configuration & options
|
|
56
|
+
|
|
57
|
+
Echocorn exposes CLI flags for common server settings such as:
|
|
58
|
+
|
|
59
|
+
* `--app` — module:callable path to your ASGI application
|
|
60
|
+
* `--host` / `--port` — where the server listens
|
|
61
|
+
* `--workers` — number of worker processes
|
|
62
|
+
* `--certfile`, `--keyfile` — TLS/SSL files for secure connections
|
|
63
|
+
* `--compression` — toggle or tune response compression
|
|
64
|
+
* `--safe-headers` — enable security headers
|
|
65
|
+
* `--domain` — allows requests only if host in headers matches
|
|
66
|
+
* `--about` — show about the server
|
|
67
|
+
|
|
68
|
+
Run `echocorn --help` to see the full set of parameters and defaults.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Security & performance
|
|
73
|
+
|
|
74
|
+
Echocorn focuses on secure and efficient defaults:
|
|
75
|
+
|
|
76
|
+
* HTTP header hardening (CSP, HSTS, X-Content-Type-Options, X-Frame-Options) to reduce common web risks
|
|
77
|
+
* Built-in compression to reduce latency & bandwidth costs for clients
|
|
78
|
+
* Optimised request/response handling path for minimal overhead and maximum throughput
|
|
79
|
+
|
|
80
|
+
For production use, pair Echocorn with standard hardening measures (firewall rules, TLS best practices, OS-level tuning) and monitor resource usage.
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Screenshots
|
|
85
|
+
|
|
86
|
+
Examples of running Echocorn and request logs:
|
|
87
|
+
|
|
88
|
+
<img width="48.9%" src="https://raw.githubusercontent.com/mishakorzik/echocorn/refs/heads/main/screenshot_1.jpg"/>
|
|
89
|
+
<img width="48.9%" src="https://raw.githubusercontent.com/mishakorzik/echocorn/refs/heads/main/screenshot_2.jpg"/>
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Donate
|
|
94
|
+
|
|
95
|
+
If you find Echocorn useful and want to support development, you can donate here:
|
|
96
|
+
|
|
97
|
+
[<img title="Donate" src="https://img.shields.io/badge/Donate-Echocorn-blue?style=for-the-badge&logo=github"/>](https://www.buymeacoffee.com/misakorzik)
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Community & support
|
|
102
|
+
|
|
103
|
+
* Telegram: [https://t.me/ubp2q](https://t.me/ubp2q)
|
|
104
|
+
* Discord: [https://discord.gg/xwpMuMYW57](https://discord.gg/xwpMuMYW57)
|
|
105
|
+
|
|
106
|
+
If you find a bug or have questions, open an issue or reach out on Discord.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Nothing
|