Skip to content

Latest commit

 

History

History
38 lines (33 loc) · 2.93 KB

File metadata and controls

38 lines (33 loc) · 2.93 KB

Sunday runtime parity

This matrix defines the first sunday-python beta boundary. “Generator” means the shared Sunday IR and generated Python surface, not every construct accepted by upstream OpenAPI or AsyncAPI specifications.

Capability Kotlin Swift TypeScript Python beta
Typed models, aliases, inheritance, unions, discriminators, constraints Yes Yes Yes In scope
Strict and raw-token-preserving enums Yes Yes Yes In scope
Generic transport-neutral clients, operations, and response metadata Yes Yes Yes In scope
Public transport/result/response workflow and client media defaults Yes Yes Yes In scope
Prepared native request and response exchange Yes Yes Yes In scope; exchange methods are async
Path, query, header, and cookie serialization Yes Yes Yes In scope
JSON, text, binary, form, CBOR, XML, and YAML extension codecs Yes Yes Yes In scope where represented by IR
JSON Merge Patch and JSON Patch Yes Yes Yes In scope
Multipart and reusable streaming request bodies Yes Yes Yes In scope
Typed problems and nullification Yes Yes Yes In scope
SSE parsing, capped backoff, jitter, server keepalive, cancellation, and response ownership Yes Yes Jitter follow-up In scope
Callback EventSource and typed EventStream generation Yes Yes Yes In scope
Installed-codec request and response negotiation Yes Yes Yes In scope
RFC 6570 expansion alongside OpenAPI path styles Yes Yes Yes In scope
Date, time, URI, base64 byte, binary, and set wire fidelity Yes Yes Yes In scope
Consumer request adapters Yes Yes Yes In scope as ordered async callables or adapter objects
Generated authentication, authorization, retries, rate limits, or circuit breakers No No No Excluded
Broker/message transports and bindings Kotlin only No No Excluded
Target-specific JAX-RS metadata Kotlin only No No Excluded

The Python generator skips broker-only operations by default and reports an unsupported-target diagnostic when broker generation is explicitly requested. Auth and policy IR metadata is intentionally not emitted; applications implement those concerns with request adapters or custom transports.

Generated Python clients import only the core sunday package. Applications select and construct an adapter such as HttpxTransport; generated constructors do not accept native HTTP clients directly. Python's BaseTransport keeps its prepare/send/decode phases protected while presenting the same transport request, transport response, decoded response, and result workflow as the established runtimes.

Python implements the intended shared SSE jitter policy used by Kotlin and Swift. TypeScript's current reconnect code omits jitter despite its alignment change; that sibling-runtime correction remains a separate follow-up.