Skip to main content

Choose your packages

Altstack packages are deliberately separable. Start with the boundary you own, then add an adapter or generator only when it solves a concrete integration problem.

Package map

FamilyPackageUse it for
Result@alt-stack/resulttagged success/failure values and composable error handling
Servers@alt-stack/server-coreframework-neutral routers, procedures, middleware, OpenAPI, and telemetry
Servers@alt-stack/server-honoa Hono application and Hono request context
Servers@alt-stack/server-expressan Express router and Express request/response context
Servers@alt-stack/server-buna Bun-native fetch server
Servers@alt-stack/server-nestjsNest module registration or middleware integration
Servers@alt-stack/server-tanstack-startTanStack Start request handlers
HTTP clients@alt-stack/http-client-coretransport-neutral typed client contracts and errors
HTTP clients@alt-stack/http-client-fetchbrowser, Node, Bun, or other standard Fetch runtimes
HTTP clients@alt-stack/http-client-kya Ky-backed TypeScript client
HTTP clientshttp-client-rust-tokiogenerated Rust SDK execution through Reqwest/Tokio
Kafka@alt-stack/kafka-coretyped topic procedures, consumers, producers, AsyncAPI, and middleware
Kafka clients@alt-stack/kafka-client-coretransport-neutral generated-topic client types
Kafka clients@alt-stack/kafka-client-kafkajsKafkaJS producer client
Kafka clients@alt-stack/kafka-client-warpstreamWarpStream-configured KafkaJS producer client
Workers@alt-stack/workers-coretyped job procedures, routers, middleware, AsyncAPI, and telemetry
Workers@alt-stack/workers-triggerrun worker procedures as Trigger.dev tasks
Workers@alt-stack/workers-warpstreamrun and enqueue worker procedures through WarpStream/Kafka
Worker clients@alt-stack/workers-client-coretransport-neutral generated-job client types
Worker clients@alt-stack/workers-client-triggerenqueue jobs with Trigger.dev
Worker clients@alt-stack/workers-client-warpstreamenqueue jobs through WarpStream/Kafka
OpenAPI generation@alt-stack/zod-openapigenerate TypeScript Zod schemas and request/response maps
OpenAPI generationpython-pydantic-openapigenerate Python Pydantic models
OpenAPI generationrust-openapigenerate Rust models and route modules
OpenAPI generationrust-openapi-crate-genscaffold a consumable Rust SDK crate
AsyncAPI generation@alt-stack/zod-asyncapigenerate TypeScript Zod schemas and topic maps
Utilities@alt-stack/zod-errorturn a Zod error into readable text or structured log data

The published @alt-stack/example-altstack-server-sdk and @alt-stack/example-kafka-producer-sdk packages are generated examples. Their identifiers demonstrate generator output; they are not framework-wide contracts. @alt-stack/openapi-test-spec and @alt-stack/typescript-config are private workspace fixtures, not packages for application installation.

Runtime and peer-dependency matrix

PackagesRequired peers or runtime
server-*, all worker runtimes, kafka-core, TypeScript HTTP clients, generated TypeScript SDKs, utilitiesZod 4 (worker adapters depend on workers-core, whose peer is Zod 4)
@alt-stack/resultno runtime dependency; Zod 4 is an optional peer in the package manifest
kafka-client-*, workers-client-*Zod 3.25 or Zod 4, as declared by the selected package
server-core, workers-coreoptional @opentelemetry/api 1.x peer when telemetry is enabled
Hono adapterHono 4.x
Express adapterExpress 4.x or 5.x
NestJS adapterNestJS common/core/platform-express 9–11 and Express 4–5
TanStack Start adapter@tanstack/react-router at the peer range in its manifest
Kafka core and KafkaJS/WarpStream adaptersKafkaJS 2.x and a reachable Kafka-compatible broker
Trigger adapters@trigger.dev/sdk 3.x and a Trigger.dev project
Python generatorPython 3.11+ and Pydantic 2.7+
Rust librariesRust 2021 toolchain; Tokio for async clients/CLIs

Package manifests are the authority for exact peer ranges. This table explains the boundaries; it is not a replacement for your package manager's peer-dependency output.

Common combinations

TypeScript HTTP service

Install one server adapter, Zod, and the adapter's framework peer. Add @alt-stack/zod-openapi only if you generate a client contract.

TypeScript frontend

Generate Request and Response maps with @alt-stack/zod-openapi, then use either @alt-stack/http-client-fetch or @alt-stack/http-client-ky.

Event-driven service

Use @alt-stack/kafka-core when topic handlers and producers are part of the service. Use a kafka-client-* package when another application only needs to send data against a generated topic map.

Background jobs

Define the job contract with @alt-stack/workers-core through either runtime adapter. Applications that only enqueue jobs use the matching workers-client-* package and generated job schemas.

Multi-language SDKs

Expose OpenAPI from any compatible server, then select the TypeScript/Zod, Python/Pydantic, or Rust generator. The server does not need to be implemented with Altstack for the generators to work.

Next step

Pick one family quickstart from the documentation home. After its local flow works, use Altstack Together to add contract generation and a second boundary.