ASGI3-compatible transport server with a transport-agnostic core and stdlib-only implementation.
Project description
tigrcorn
tigrcorn is an ASGI3-compatible transport server implemented with package-owned protocol/runtime code.
async def app(scope, receive, send):
...
Implemented surfaces in this archive
- HTTP/1.1 server path with streaming request bodies
- HTTP/1.1, HTTP/2, and HTTP/3 CONNECT relay tunneling
- trailer-field exposure on the HTTP/1.1, HTTP/2, and HTTP/3 request paths through an extension event
- HTTP content-coding negotiation for buffered responses (
gzip,deflate, andbrwhen Brotli support is present) - WebSocket upgrade and frame processing over HTTP/1.1
- WebSocket permessage-deflate on the HTTP/1.1, HTTP/2, and HTTP/3 paths
- HTTP/2 codec, HPACK dynamic state, RFC 8441 WebSocket bootstrap, server push, and prior-knowledge server path
- RFC 9220 WebSocket bootstrap on the HTTP/3 carrier
- QUIC transport helpers, QUIC-TLS handshake support, session tickets, Retry, resumption, 0-RTT, migration handling, and HTTP/3 over UDP through the public API and CLI
- public mTLS-style client-certificate configuration for TLS and QUIC-TLS listeners through
ssl_ca_certsandssl_require_client_cert - QPACK encoder/decoder streams and dynamic state
- certificate path validation, OCSP, CRL, and ALPN helpers in the package security subsystem
- package-owned TLS 1.3 server path on TCP/Unix listeners with record protection, ALPN selection, X.509 path validation, OCSP/CRL policy hooks, mTLS, and ASGI
tlsscope exposure - TCP, Unix, UDP, pipe, and in-process listener implementations
- raw framed custom transport hosting path
Canonical certification boundary
The package-wide certification target is defined in docs/review/conformance/CERTIFICATION_BOUNDARY.md.
That boundary names the required RFC surface for RFC 9112, RFC 9113, RFC 9114, RFC 9000, RFC 9001, RFC 9002, RFC 7541, RFC 9204, RFC 6455, RFC 7692, RFC 8441, RFC 9220, RFC 8446, RFC 9110 CONNECT semantics, RFC 9110 trailer fields, RFC 9110 content coding, RFC 5280, RFC 6960, and RFC 7301.
Evidence tiers shipped with this archive
This archive separates three evidence tiers and binds them to a single current release root:
- Local conformance —
docs/review/conformance/corpus.json - Same-stack replay —
docs/review/conformance/external_matrix.same_stack_replay.json - Independent certification —
docs/review/conformance/external_matrix.release.json
The current canonical release root is docs/review/conformance/releases/0.3.6/release-0.3.6/.
That root contains:
tigrcorn-independent-certification-release-matrix/tigrcorn-same-stack-replay-matrix/tigrcorn-mixed-compatibility-release-matrix/tigrcorn-provisional-http3-gap-bundle/(a preserved non-certifying historical review bundle from the pre-closure gap state)tigrcorn-provisional-all-surfaces-gap-bundle/(a preserved non-certifying stricter-profile planning bundle)tigrcorn-provisional-flow-control-gap-bundle/(a preserved non-certifying QUIC / HTTP/3 flow-control review bundle)
The compatibility file docs/review/conformance/external_matrix.current_release.json is still preserved as a mixed matrix because it combines third-party HTTP/1.1 / HTTP/2 peers with same-stack HTTP/3 and RFC 9220 replay fixtures. The legacy 0.3.2, 0.3.6-rfc-hardening, and 0.3.6-current bundles remain in-tree for provenance, but the 0.3.6 root is now the canonical current release bundle.
Interoperability evidence status in this archive
The canonical independent matrix now includes preserved passing artifacts for:
- HTTP/1.1, HTTP/2, HTTP/2 over TLS, WebSocket over HTTP/1.1, WebSocket over HTTP/2, and QUIC handshake interoperability
- third-party
aioquicHTTP/3 request/response, mTLS, Retry, resumption, 0-RTT, migration, and GOAWAY / QPACK scenarios - third-party
aioquicRFC 9220 WebSocket-over-HTTP/3 scenarios
The package-owned TCP/TLS listener path is backed by package-owned TLS 1.3, ALPN, X.509 validation, revocation policy hooks, and mTLS integration.
As a result, the canonical release gates now pass and the package is certifiably fully RFC compliant under the authoritative certification boundary in docs/review/conformance/CERTIFICATION_BOUNDARY.md.
Important scope note:
- Under the current authoritative boundary, RFC 7692, RFC 9110 CONNECT / trailers / content coding, and RFC 6960 are intentionally bounded at
local_conformancerather thanindependent_certification. - Those surfaces are still part of the required RFC surface, and they are satisfied at the tier required by the boundary.
- A stricter non-authoritative all-surfaces-independent profile would still need additional third-party preserved artifacts.
- The provisional all-surfaces and flow-control bundles remain in-tree as planning / review aids and do not change the authoritative release-gate result.
For the point-in-time repository summary, see CURRENT_REPOSITORY_STATE.md. For the machine-readable certification policy, see docs/review/conformance/certification_boundary.json. For the offline remediation attempt that produced the provisional bundles, see docs/review/conformance/OFFLINE_COMPLETION_ATTEMPT.md, docs/review/conformance/offline_completion_state.json, docs/review/conformance/ALL_SURFACES_INDEPENDENT_STATUS.md, docs/review/conformance/all_surfaces_independent_state.json, docs/review/conformance/FLOW_CONTROL_CERTIFICATION_STATUS.md, docs/review/conformance/SECONDARY_PARTIALS_STATUS.md, and docs/review/conformance/secondary_partials_state.json.
Running
python -m tigrcorn examples.echo_http.app:app
UDP / HTTP/3 example with QUIC-TLS certificates:
python -m tigrcorn examples.echo_http.app:app --transport udp --protocol http3 --http 3 --port 9443 --ssl-certfile cert.pem --ssl-keyfile key.pem
UDP / HTTP/3 example with client-certificate verification enabled:
python -m tigrcorn examples.echo_http.app:app --transport udp --protocol http3 --http 3 --port 9443 --ssl-certfile cert.pem --ssl-keyfile key.pem --ssl-ca-certs client-ca.pem --ssl-require-client-cert
UDP / HTTP/3 example with Retry enabled:
python -m tigrcorn examples.echo_http.app:app --transport udp --protocol http3 --http 3 --port 9443 --ssl-certfile cert.pem --ssl-keyfile key.pem --quic-require-retry
Project details
Release history Release notifications | RSS feed
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tigrcorn-0.3.6.tar.gz.
File metadata
- Download URL: tigrcorn-0.3.6.tar.gz
- Upload date:
- Size: 248.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d281fd63fe6a134ea9618f5b795e44ea5b2a800b2e7dea51daa0b6ae8dfed19f
|
|
| MD5 |
4a80b3114e4a919d2d0a948888f8b502
|
|
| BLAKE2b-256 |
a9ce700bf8ad8a2a317d40e8576eeac05a73fa60eb59eb388ffba6773e896333
|
File details
Details for the file tigrcorn-0.3.6-py3-none-any.whl.
File metadata
- Download URL: tigrcorn-0.3.6-py3-none-any.whl
- Upload date:
- Size: 235.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f58f1a593b0e2a410261769bd36e0432ccf65515b3d565d1b1b7d622ce82ac57
|
|
| MD5 |
7bcbce04ac1c2ff2664c17c6563a4004
|
|
| BLAKE2b-256 |
8abe94f9bfaae26ee468b18cd0fbfc196b412531d3febb6832c73d03e499a837
|