140k+ req/s
Built on Hono, one of the fastest web frameworks. Near-native performance on Bun, Node, and edge runtimes.
See benchmarks
Architecture that scales, performance that flies. Enterprise patterns, raw performance speed, DI Powered.
# Install dependencies
bun add hono @hono/zod-openapi @scalar/hono-api-reference @venizia/ignis
bun add -d typescript @types/bun
# Create src/index.ts with your first APIimport { BaseApplication, BaseController, controller, get, HTTP, jsonContent, SwaggerComponent } from '@venizia/ignis';
import { z } from '@hono/zod-openapi';
// 1. Define your controller
@controller({ path: '/hello' })
class HelloController extends BaseController {
constructor() {
super({ scope: 'HelloController', path: '/hello' });
}
override binding() {} // Required: register additional routes or dependencies here
@get({
configs: {
path: '/',
responses: {
[HTTP.ResultCodes.RS_2.Ok]: jsonContent({
schema: z.object({ message: z.string() }),
}),
},
},
})
sayHello(c) {
return c.json({ message: 'Hello from Ignis! 🔥' });
}
}
// 2. Create and configure your application
class App extends BaseApplication {
getAppInfo() {
return { name: 'my-app', version: '1.0.0', description: 'My Ignis App' };
}
staticConfigure() {}
preConfigure() {
this.component(SwaggerComponent); // API docs at /doc/explorer
this.controller(HelloController);
}
postConfigure() {}
setupMiddlewares() {}
}
// 3. Start the server
const app = new App({
scope: 'App',
config: { host: '0.0.0.0', port: 3000, path: { base: '/api' } },
});
app.start();# Run it
bun run src/index.ts
# Visit http://localhost:3000/api/hello
# API docs at http://localhost:3000/doc/explorerReady for a step-by-step guide? Follow the 5-minute quickstart →