Customer experience
Go
Python
Java
| Axis | Supported |
|---|---|
| Runtime | CPython 3.10 through 3.14. The native release matrix exercises the 3.10 floor and current stable 3.14. |
| Free-threaded CPython | Not certified. Use a standard GIL build. |
| PyPy | Not certified. |
| HTTP | HTTP/2 over TLS with HTTP/1.1 fallback, or forced HTTP/1.1. Bounded connection pools are per origin. |
| Dependencies | repost-client depends only on h2~=4.2. OpenTelemetry stays in the separate repost-client-otel distribution. |
| Concurrency | Synchronous, thread-safe sends. Use one worker thread per concurrent blocking send. A native asyncio API is not included in 0.4. |
| Platform | Trusted 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.