Skip to content

Comparisons

Tenchi is not a universal replacement for every Python web framework. It is a focused choice for typed JSON APIs whose contracts, clients, and application architecture need to remain aligned over time.

At a glance

FrameworkStrongest fitMain tradeoff
FastAPIFast adoption, broad ecosystem, interactive API developmentMore built-in API ergonomics; less prescribed application architecture; typed clients generated from OpenAPI
StarletteSmall ASGI toolkit and low-level controlDirect control over ASGI primitives without a shared contract, client, or application model
LitestarFeature-rich typed ASGI applicationsMore built-in capabilities and framework concepts
Django NinjaTyped APIs inside the Django ecosystemDeep Django integration and conventions rather than a framework-independent stack
TenchiLong-lived typed JSON APIs with explicit use cases and portsMore up-front structure; fewer built-in integrations and protocols

Choose Tenchi when

Choose another framework when

Tenchi and Starlette

Tenchi exposes Starlette where that is useful. create_app() returns a Starlette application, accepts Starlette middleware, and allows explicitly declared passthrough responses for streaming, files, and redirects. Tenchi adds contract ownership around those primitives rather than replacing the ASGI ecosystem.

Tenchi and FastAPI

Both frameworks use Python annotations and Pydantic at the boundary. FastAPI optimizes for concise route declaration and ecosystem reach. Tenchi separates the contract from the use case so the same application function is not owned by HTTP, and it includes a contract-driven runtime client and conservative OpenAPI compatibility analysis.

The tradeoff is visible: Tenchi asks you to name the layers. That is valuable when the API will grow, but unnecessary ceremony for some small services.