Compatibility

Supported Python runtimes, dependencies, concurrency, transport capabilities, native verification, and security posture.

AxisSupported
RuntimeCPython 3.10 through 3.14. The native release matrix exercises the 3.10 floor and current stable 3.14.
Free-threaded CPythonNot certified. Use a standard GIL build.
PyPyNot certified.
HTTPHTTP/2 over TLS with HTTP/1.1 fallback, or forced HTTP/1.1. Bounded connection pools are per origin.
Dependenciesrepost-client depends only on h2~=4.2. OpenTelemetry stays in the separate repost-client-otel distribution.
ConcurrencySynchronous, thread-safe sends. Use one worker thread per concurrent blocking send. A native asyncio API is not included in 0.4.
PlatformTrusted server-side Python only. Desktop, mobile, browser, and other untrusted clients are unsupported because the SDK carries a publish credential.

The Python SDK is verified by native pytest tests. The suite exercises generated imports and typing, the public generated client, real runtime behavior, default HTTP/1.1 and HTTP/2 transports, proxy and TLS paths, cancellation, resource bounds, deterministic testing helpers, and response parsing. Shared JSON files provide scenario input only; Python tests select cases and make every assertion.

Security posture

  • Transport security. TLS verification is always enabled. The built-in transport supports custom certificate authorities, TLS 1.2 and 1.3 bounds, cipher allowlists, encrypted client keys, mutual TLS, explicit CONNECT proxies, and proxy credential providers.
  • Network policy. Redirects are disabled. Ambient proxy environment variables are ignored; configure a proxy explicitly. Plain HTTP is limited to loopback hosts.
  • Resource limits. Request and response bodies, response headers, decompression ratio, retained bytes, in-flight operations, connection counts, and connection lifetimes are bounded.
  • Redaction. Configuration representations, diagnostics, observer events, telemetry, fixed error messages, and scripted request recordings contain no credentials or payload values. The SDK does not remove personal data from an event; the payload you pass is intentionally sent to Repost.
  • DNS callbacks. Built-in socket I/O observes cancellation and deadlines. A user-supplied synchronous DNS resolver must return promptly because CPython cannot forcibly interrupt a callback that blocks forever.
  • FIPS. This release is not FIPS-certified. It uses the Python runtime's OpenSSL and standard cryptographic facilities.

Continue