Something went wrong. Try again.
fork of Kludex/zapi, ported to zig 0.17
Something went wrong. Try again.
icon: lucide/map #
Roadmap #
zapi is useful today for small APIs and framework design experiments, but it is still experimental.
Implemented #
- Starlette-style route objects, routers, and mixed runtime route lists with
Router.initandincludeRoutes. - Built-in and app-level custom path convertors.
- Typed request validation for common inputs.
- Lenient browser-compatible incoming cookie parsing, with Starlette-derived edge-case coverage.
- OpenAPI 3.1, Swagger UI, and ReDoc generated out of the box.
- Runtime
CONNECTroutes, omitted from OpenAPI because the specification has noconnectpath-item operation. - Mounted applications and host routing, including
Route.mountandRoute.hostregistration specs in mixed route lists. - Static files.
- Template rendering helpers and template responses.
- Buffered server-sent event response helpers.
- Middleware helpers.
- Background task accumulators, lifespan hooks, exception handlers, and status handlers.
- Buffered request body streaming with
Request.streamand adapter-backed incremental body streaming withRequest.streamReader. - Transport-level streaming responses with
StreamingResponsethrough the std.http adapter. - WebSocket routes through the std.http adapter.
- In-process testing with response URL tracking, redirect target helpers, redirect history, method-level redirect controls, typed JSON parsing, typed query/form/JSON request helpers, scripted WebSocket exchanges with text, binary, and JSON message helpers, domain/path-scoped cookies, and server-exception controls.
- A
std.http.Server.Requestadapter with buffered and opt-in streaming bodies. - A structured
std.Ioserver with bounded connections, request scopes, deadlines, counters, and graceful shutdown.
Not Yet #
- TLS and HTTP/2 transport adapters.
- A complete Starlette compatibility test port.
These are the main remaining high-level gaps before the framework can claim broader Starlette-style compatibility.