Skip to main content

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, and br when 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_certs and ssl_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 tls scope 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:

  1. Local conformancedocs/review/conformance/corpus.json
  2. Same-stack replaydocs/review/conformance/external_matrix.same_stack_replay.json
  3. Independent certificationdocs/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 aioquic HTTP/3 request/response, mTLS, Retry, resumption, 0-RTT, migration, and GOAWAY / QPACK scenarios
  • third-party aioquic RFC 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_conformance rather than independent_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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tigrcorn-0.3.6.tar.gz (248.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tigrcorn-0.3.6-py3-none-any.whl (235.1 kB view details)

Uploaded Python 3

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

Hashes for tigrcorn-0.3.6.tar.gz
Algorithm Hash digest
SHA256 d281fd63fe6a134ea9618f5b795e44ea5b2a800b2e7dea51daa0b6ae8dfed19f
MD5 4a80b3114e4a919d2d0a948888f8b502
BLAKE2b-256 a9ce700bf8ad8a2a317d40e8576eeac05a73fa60eb59eb388ffba6773e896333

See more details on using hashes here.

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

Hashes for tigrcorn-0.3.6-py3-none-any.whl
Algorithm Hash digest
SHA256 f58f1a593b0e2a410261769bd36e0432ccf65515b3d565d1b1b7d622ce82ac57
MD5 7bcbce04ac1c2ff2664c17c6563a4004
BLAKE2b-256 8abe94f9bfaae26ee468b18cd0fbfc196b412531d3febb6832c73d03e499a837

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page