Commit graph

229 commits

Author SHA1 Message Date
Giovanni Barillari
acfd66d81d
Fix WSGI latin1 encoding (#692) 2025-09-18 13:04:37 +02:00
Giovanni Barillari
5cbf2b5296
Use ; to join cookie headers in WSGI (#683) 2025-09-11 14:09:32 +02:00
Giovanni Barillari
58777fe5d9
Code lint 2025-08-26 17:05:45 +02:00
Giovanni Barillari
66086dc3e2
Code lint 2025-08-25 18:54:51 +02:00
Giovanni Barillari
5347a52011
Bump dependencies 2025-07-30 19:56:24 +02:00
Giovanni Barillari
2e4fb2f2de
Release GIL while collecting proc info
Some checks failed
test / linux (3.10) (push) Has been cancelled
test / linux (3.11) (push) Has been cancelled
test / linux (3.12) (push) Has been cancelled
test / linux (3.13) (push) Has been cancelled
test / linux (3.14) (push) Has been cancelled
test / linux (3.9) (push) Has been cancelled
test / linux (pypy3.11) (push) Has been cancelled
test / linux (3.13t) (push) Has been cancelled
test / linux (3.14t) (push) Has been cancelled
test / macos (3.10) (push) Has been cancelled
test / macos (3.11) (push) Has been cancelled
test / macos (3.12) (push) Has been cancelled
test / macos (3.13) (push) Has been cancelled
test / macos (3.14) (push) Has been cancelled
test / macos (3.9) (push) Has been cancelled
test / macos (3.13t) (push) Has been cancelled
test / macos (3.14t) (push) Has been cancelled
test / windows (3.10) (push) Has been cancelled
test / windows (3.11) (push) Has been cancelled
test / windows (3.12) (push) Has been cancelled
test / windows (3.13) (push) Has been cancelled
test / windows (3.13t) (push) Has been cancelled
test / windows (3.14) (push) Has been cancelled
test / windows (3.14t) (push) Has been cancelled
test / windows (3.9) (push) Has been cancelled
2025-07-24 23:59:31 +02:00
Giovanni Barillari
7643f3491b
Pass relevant close frame in ASGI ws (#648) 2025-07-24 23:42:11 +02:00
Giovanni Barillari
9b91c40e21
Function pointers are Copy
Some checks are pending
test / linux (3.10) (push) Waiting to run
test / linux (3.11) (push) Waiting to run
test / linux (3.12) (push) Waiting to run
test / linux (3.13) (push) Waiting to run
test / linux (3.14) (push) Waiting to run
test / linux (3.9) (push) Waiting to run
test / linux (pypy3.11) (push) Waiting to run
test / linux (3.13t) (push) Waiting to run
test / linux (3.14t) (push) Waiting to run
test / macos (3.10) (push) Waiting to run
test / macos (3.11) (push) Waiting to run
test / macos (3.12) (push) Waiting to run
test / macos (3.13) (push) Waiting to run
test / macos (3.14) (push) Waiting to run
test / macos (3.9) (push) Waiting to run
test / macos (3.13t) (push) Waiting to run
test / macos (3.14t) (push) Waiting to run
test / windows (3.10) (push) Waiting to run
test / windows (3.11) (push) Waiting to run
test / windows (3.12) (push) Waiting to run
test / windows (3.13) (push) Waiting to run
test / windows (3.13t) (push) Waiting to run
test / windows (3.14) (push) Waiting to run
test / windows (3.14t) (push) Waiting to run
test / windows (3.9) (push) Waiting to run
2025-07-24 19:36:09 +02:00
Giovanni Barillari
f2b401335a
Use biased tokio::select when it makes sense
Some checks failed
test / windows (3.13) (push) Has been cancelled
test / windows (3.13t) (push) Has been cancelled
test / windows (3.14) (push) Has been cancelled
test / windows (3.14t) (push) Has been cancelled
test / linux (3.10) (push) Has been cancelled
test / linux (3.11) (push) Has been cancelled
test / linux (3.12) (push) Has been cancelled
test / linux (3.13) (push) Has been cancelled
test / linux (3.14) (push) Has been cancelled
test / linux (3.9) (push) Has been cancelled
test / linux (pypy3.11) (push) Has been cancelled
test / macos (3.10) (push) Has been cancelled
test / macos (3.11) (push) Has been cancelled
test / linux (3.13t) (push) Has been cancelled
test / linux (3.14t) (push) Has been cancelled
test / macos (3.12) (push) Has been cancelled
test / macos (3.13) (push) Has been cancelled
test / macos (3.14) (push) Has been cancelled
test / macos (3.9) (push) Has been cancelled
test / macos (3.13t) (push) Has been cancelled
test / macos (3.14t) (push) Has been cancelled
test / windows (3.10) (push) Has been cancelled
test / windows (3.11) (push) Has been cancelled
test / windows (3.12) (push) Has been cancelled
test / windows (3.9) (push) Has been cancelled
2025-07-22 20:10:16 +02:00
Giovanni Barillari
6c0897de31
Always detach from the interpreter in wsgi 2025-07-22 19:15:53 +02:00
Giovanni Barillari
cfa46f10e9
Add Unix Domain Socket support (#642) 2025-07-22 19:11:03 +02:00
Giovanni Barillari
96f23f8026
Add workers max RSS (#640)
Some checks are pending
test / linux (pypy3.11) (push) Waiting to run
test / linux (3.13t) (push) Waiting to run
test / linux (3.14t) (push) Waiting to run
test / macos (3.10) (push) Waiting to run
test / macos (3.11) (push) Waiting to run
test / macos (3.12) (push) Waiting to run
test / macos (3.14) (push) Waiting to run
test / macos (3.9) (push) Waiting to run
test / macos (3.13t) (push) Waiting to run
test / macos (3.14t) (push) Waiting to run
test / windows (3.10) (push) Waiting to run
test / windows (3.11) (push) Waiting to run
test / windows (3.13) (push) Waiting to run
test / windows (3.13t) (push) Waiting to run
test / windows (3.14) (push) Waiting to run
test / windows (3.14t) (push) Waiting to run
test / windows (3.9) (push) Waiting to run
test / macos (3.13) (push) Waiting to run
test / windows (3.12) (push) Waiting to run
test / linux (3.10) (push) Waiting to run
test / linux (3.11) (push) Waiting to run
test / linux (3.12) (push) Waiting to run
test / linux (3.13) (push) Waiting to run
test / linux (3.14) (push) Waiting to run
test / linux (3.9) (push) Waiting to run
2025-07-21 22:43:18 +02:00
Giovanni Barillari
f3b840855a
Allow to disable static files cache headers (#641) 2025-07-21 22:42:35 +02:00
Giovanni Barillari
0324e6c9a4
Refactor workers code to use traits in place of macros (#639)
Some checks are pending
test / linux (3.13) (push) Waiting to run
test / linux (3.14) (push) Waiting to run
test / linux (3.9) (push) Waiting to run
test / linux (pypy3.11) (push) Waiting to run
test / linux (3.13t) (push) Waiting to run
test / linux (3.14t) (push) Waiting to run
test / macos (3.10) (push) Waiting to run
test / macos (3.11) (push) Waiting to run
test / macos (3.12) (push) Waiting to run
test / macos (3.13) (push) Waiting to run
test / macos (3.14) (push) Waiting to run
test / macos (3.9) (push) Waiting to run
test / macos (3.13t) (push) Waiting to run
test / macos (3.14t) (push) Waiting to run
test / windows (3.10) (push) Waiting to run
test / windows (3.11) (push) Waiting to run
test / windows (3.12) (push) Waiting to run
test / windows (3.13) (push) Waiting to run
test / windows (3.13t) (push) Waiting to run
test / windows (3.14) (push) Waiting to run
test / windows (3.14t) (push) Waiting to run
test / windows (3.9) (push) Waiting to run
test / linux (3.10) (push) Waiting to run
test / linux (3.11) (push) Waiting to run
test / linux (3.12) (push) Waiting to run
2025-07-21 12:36:10 +02:00
Giovanni Barillari
d73be31aff Fix lint on Rust 1.88 2025-07-01 22:15:38 +02:00
Giovanni Barillari
52de19afd6
Gate jemalloc behind feature (#618)
Some checks are pending
test / linux (3.11) (push) Waiting to run
test / linux (3.10) (push) Waiting to run
test / macos (3.9) (push) Waiting to run
test / linux (3.12) (push) Waiting to run
test / linux (3.13) (push) Waiting to run
test / linux (3.14) (push) Waiting to run
test / linux (3.9) (push) Waiting to run
test / linux (pypy3.11) (push) Waiting to run
test / linux (3.13t) (push) Waiting to run
test / linux (3.14t) (push) Waiting to run
test / macos (3.10) (push) Waiting to run
test / macos (3.11) (push) Waiting to run
test / macos (3.12) (push) Waiting to run
test / macos (3.13) (push) Waiting to run
test / macos (3.14) (push) Waiting to run
test / macos (3.13t) (push) Waiting to run
test / macos (3.14t) (push) Waiting to run
test / windows (3.10) (push) Waiting to run
test / windows (3.11) (push) Waiting to run
test / windows (3.12) (push) Waiting to run
test / windows (3.13) (push) Waiting to run
test / windows (3.13t) (push) Waiting to run
test / windows (3.14) (push) Waiting to run
test / windows (3.14t) (push) Waiting to run
test / windows (3.9) (push) Waiting to run
2025-06-27 19:24:14 +02:00
Giovanni Barillari
e9966165e3
Add descriptions to ASGI flow errors (#614)
Some checks failed
test / linux (3.13) (push) Has been cancelled
test / linux (3.10) (push) Has been cancelled
test / linux (3.11) (push) Has been cancelled
test / linux (3.12) (push) Has been cancelled
test / linux (3.13t) (push) Has been cancelled
test / linux (3.9) (push) Has been cancelled
test / linux (pypy3.11) (push) Has been cancelled
test / macos (3.10) (push) Has been cancelled
test / macos (3.11) (push) Has been cancelled
test / macos (3.12) (push) Has been cancelled
test / macos (3.13) (push) Has been cancelled
test / macos (3.13t) (push) Has been cancelled
test / macos (3.9) (push) Has been cancelled
test / windows (3.10) (push) Has been cancelled
test / windows (3.11) (push) Has been cancelled
test / windows (3.12) (push) Has been cancelled
test / windows (3.13) (push) Has been cancelled
test / windows (3.13t) (push) Has been cancelled
test / windows (3.9) (push) Has been cancelled
2025-06-25 20:59:12 +02:00
Giovanni Barillari
961dd98574
Disable connections keepalive on shutdown signal (#612) 2025-06-25 20:21:50 +02:00
Giovanni Barillari
fa63ea8da4
Immediately send ASGI response on event streams (#607)
Some checks failed
test / linux (3.10) (push) Has been cancelled
test / linux (3.11) (push) Has been cancelled
test / linux (3.12) (push) Has been cancelled
test / linux (3.13) (push) Has been cancelled
test / linux (3.13t) (push) Has been cancelled
test / linux (3.9) (push) Has been cancelled
test / linux (pypy3.11) (push) Has been cancelled
test / macos (3.10) (push) Has been cancelled
test / macos (3.11) (push) Has been cancelled
test / macos (3.12) (push) Has been cancelled
test / macos (3.13) (push) Has been cancelled
test / macos (3.13t) (push) Has been cancelled
test / macos (3.9) (push) Has been cancelled
test / windows (3.10) (push) Has been cancelled
test / windows (3.11) (push) Has been cancelled
test / windows (3.12) (push) Has been cancelled
test / windows (3.13) (push) Has been cancelled
test / windows (3.13t) (push) Has been cancelled
test / windows (3.9) (push) Has been cancelled
2025-06-13 13:02:54 +02:00
Giovanni Barillari
ef347eb9e5
Fix PyPy builds (#597) 2025-06-08 15:31:50 +02:00
Giovanni Barillari
5ef87c88d9
Revise ASGI ws accept flow to wait for send (#592) 2025-06-02 19:57:39 +02:00
Giovanni Barillari
2d171bc7f4
Treat ws transport errors as disconnections in ASGI (#575) 2025-05-20 14:48:09 +02:00
Giovanni Barillari
891c4f96d0
Handle errors in TCP accept loop (close #580) 2025-05-20 14:47:23 +02:00
Giovanni Barillari
17c45dd580
Switch to 2024 edition 2025-05-19 10:25:13 +02:00
Giovanni Barillari
7e4ebba286
Review shared socket implementation (#579) 2025-05-18 22:11:08 +02:00
Giovanni Barillari
afe5c1a706
Add mTLS support (#574) 2025-05-11 08:31:17 +02:00
Giovanni Barillari
6959ee0d11
Add support for static files serving (#566) 2025-05-07 20:26:20 +02:00
Giovanni Barillari
7ff40e72af
Avoid to raise RuntimeError on undecodable RSGI headers 2025-05-07 19:11:24 +02:00
Giovanni Barillari
32eda13ae5
Strip port from WSGI REMOTE_ADDR (#562) 2025-04-11 18:10:16 +02:00
Giovanni Barillari
d9fe22cf35
Review Python thread state management in blocking pools (#561) 2025-04-11 18:09:55 +02:00
Giovanni Barillari
1ebedeed37
Bump file readers buffer to 128k 2025-04-11 13:50:57 +02:00
Giovanni Barillari
0208c3aed2
Review protocols IO with iter responses (#559) 2025-04-10 18:49:02 +02:00
Giovanni Barillari
2c466b371d
Review ASGI send error logging (#557) 2025-04-09 19:14:14 +02:00
Giovanni Barillari
88745ed96a
Avoid to share listener socket on Linux and FreeBSD (#546) 2025-04-06 15:43:40 +02:00
Giovanni Barillari
7858f63a0c
Support generators for ASGI headers (#543) 2025-04-02 20:16:07 +02:00
Giovanni Barillari
7ae0b95112
Keep ASGI scope's raw_path untouched (#542) 2025-04-02 20:15:51 +02:00
Giovanni Barillari
b6538fdd57
Handle cancel messages in PyFutureAwaitable (#541) 2025-04-02 20:15:35 +02:00
Giovanni Barillari
2420e32ccc
Bump dependencies 2025-04-02 20:09:18 +02:00
Giovanni Barillari
5887b52536
Revert unsendable on WSGIProtocol (#527) 2025-03-21 12:51:23 +01:00
Giovanni Barillari
0c6897b689
Better var names in ASGI I/O 2025-03-18 20:02:49 +01:00
Giovanni Barillari
e804c9edf7
Add client disconnection handling in ASGI and RSGI (#524)
* Handle client disconnection in ASGI

* Add `RSGIHTTPProtocol.client_disconnect`
2025-03-18 19:58:07 +01:00
Giovanni Barillari
aeac42e50c
Review ASGI I/O flow (#523)
* Avoid `future_into_py_iter` usage in ASGI, add `PyErrAwaitable`
* Review atomic ordering in ASGI I/O
2025-03-18 19:17:45 +01:00
Giovanni Barillari
50f4a156bc
Support custom server header (#522) 2025-03-18 19:17:06 +01:00
Giovanni Barillari
1659e5160e
Fix embed server shutdown 2025-03-18 19:16:45 +01:00
Giovanni Barillari
cb8f66c85c
Bump PyO3 to 0.24 (#521) 2025-03-18 18:58:16 +01:00
Giovanni Barillari
a36f439812
Wait for inflight requests to complete on worker shutdown (#520) 2025-03-18 18:42:24 +01:00
Giovanni Barillari
18afd6ec86
Add server.embed module 2025-03-02 23:07:01 +01:00
Giovanni Barillari
9b1adc3799
PyO3 freelist is fixed on nogil 2025-02-26 22:57:31 +01:00
Giovanni Barillari
2bcbffc8cf
Add request headers read timeout (#509) 2025-02-26 22:28:54 +01:00
Giovanni Barillari
e9518354bb
Bump version to 2.0 (#507)
* Add back custom allocators

* Rename runtime params

* Stop producing PGO builds
2025-02-25 20:27:28 +01:00