Benzene (TypeScript)

Benzene is a hexagonal framework for services running in serverless environments, containers, or on physical servers. It supports multiple cloud providers and provides a unified programming model for message-based architectures. This is the TypeScript port of Benzene — you write a message handler once and host it unchanged on Express, AWS Lambda, or Azure Functions.

Documentation in progress. This is the growing TypeScript documentation set, ported from the .NET docs. The guides below are complete; more (the service mesh, schema/spec generation, and the rest of the cookbook collection) are still being ported. For the complete API surface today, see the repository README, and for runnable projects covering every transport, the examples/ folder.

Main Themes

About the port

Benzene TypeScript mirrors the .NET library's structure, names, and file layout as closely as the language allows; ported tests come from the C# suite. Where the two necessarily differ — free functions instead of extension methods, Promise instead of Task, decorators instead of attributes, Zod/Joi/Yup instead of FluentValidation/DataAnnotations — the reasons are recorded in the README's Porting conventions. Every doc here uses the real, current TypeScript API; when in doubt, the src/ in the repository is the source of truth.