Skip to content

Lugas

Explicit HTTP. Honest types.
Terminal window
bun add lugas

A small, Bun-native TypeScript framework for building fast, wire-honest APIs with zero production dependencies. Routes stay ordinary HTTP — native Request, explicit statuses, real fetch underneath — while routes, validation, guards, responses, and the client stay aligned through one application type.

Bun-native

Built directly on Bun’s native router and Bun.serve. No middleware layers pretending HTTP is something else.

End-to-end typed

Server and client stay aligned: route parameters, validation outputs, guard enrichment, and wire-honest response types — no code generation, no runtime Proxy.

Zero runtime deps

Nothing to audit, nothing to break underneath you. The package ships source .ts, a typed client, and test helpers.

app.ts
import { defineApp, json, route } from "lugas";
const app = defineApp({
routes: {
"/hello": {
GET: route({
handler: () => json(200, { message: "Hello from Lugas" }),
}),
},
},
});
export default app;

That is the whole server. Run it with bun run server.ts, call it with any HTTP client — or with Lugas’ typed client, which knows /hello returns { message: string }.

Read the Getting Started guide →

Apache-2.0 license · npm · Roadmap · GitHub