Start here
Installation
Install the 2.0 core, one Standard Schema validator, and only the transport or host packages your deployment needs.
Install @hulla/api with a Standard Schema-compatible validator. The examples use Zod, but the core package does not depend on or peer-depend on a validator.
bun add @hulla/api@2.0.0 zodnpm install @hulla/api@2.0.0 zodpnpm add @hulla/api@2.0.0 zodyarn add @hulla/api@2.0.0 zodUse Node.js 22 or newer for Node-hosted integrations. Some full-stack packages have stricter framework or runtime requirements; each integration guide lists its peer versions and host-specific setup.
Core entrypoints
These entrypoints ship in @hulla/api; they are not separate packages.
| Entrypoint | Use it for |
|---|---|
@hulla/api | Contracts, routes, request/response declarations, codecs, errors |
@hulla/api/client | Typed clients, middleware, transports, response results |
@hulla/api/server | Server definitions, handlers, middleware, context, composition |
@hulla/api/fetch | Fetch transport and Fetch-compatible server adapter |
@hulla/api/in-process | Zero-network calls through a completed implementation |
@hulla/api/stream | NDJSON, SSE JSON, and custom stream formats |
@hulla/api/errors | Operational error guards and protocol problem conversion |
@hulla/api/validation | Standard Schema execution and codec helpers |
@hulla/api/adapters | Advanced adapter-authoring boundary |
@hulla/api/compiler | Immutable compiled route manifest for tooling |
Optional packages
Install an adapter only in the application that mounts or consumes that boundary.
| Boundary | Packages |
|---|---|
| Node servers | @hulla/api-node, @hulla/api-express, @hulla/api-fastify, @hulla/api-koa, @hulla/api-nestjs |
| Web-native servers | @hulla/api-hono, @hulla/api-h3, @hulla/api-elysia |
| Full-stack frameworks | @hulla/api-next, @hulla/api-tanstack-start, @hulla/api-react-router, @hulla/api-solid-start, @hulla/api-sveltekit, @hulla/api-nuxt, @hulla/api-astro |
| Serverless hosts | @hulla/api-cloudflare, @hulla/api-aws-lambda, @hulla/api-azure-functions, @hulla/api-google-cloud-functions, @hulla/api-netlify-functions |
| Other transports | @hulla/api-message-port, @hulla/api-websocket |
| Client helpers | @hulla/api-tanstack-query, @hulla/api-swr |
| Contract tooling | @hulla/api-openapi |
The package files are ESM and side-effect free. Keep server-only implementation and adapter imports behind explicit server module boundaries so a browser bundle retains only the contract, client, and selected transport.
Continue with the quick start to exercise the full contract lifecycle in one process before choosing a deployment adapter.