"Because going faster shouldn’t mean writing more nonsense"
OxarionJs is a TypeScript-first backend framework built on Bun.
It keeps the flow direct, the API clean, and the abstractions where they actually help.
- Built on Bun for fast runtime and a tight development loop
- Type-safe route params
- Route groups and middleware chains
- Route injector for modular structure
- File-based dynamic routing
- Request and response helpers
- Native WebSocket route support
- Cached SSR templates and optional Ox dynamic HTML runtime
- Minimal flow without high-level clutter
bun add oxarionjsimport Oxarion, { Middleware } from "oxarionjs";
await Oxarion.start({
host: "127.0.0.1",
port: 3000,
httpHandler: (router) => {
router.addHandler("GET", "/", (_req, res) => {
res.json({ message: "Welcome to OxarionJs" });
});
},
safeMwRegister: (router) => {
router.multiMiddleware("/", [Middleware.cors(), Middleware.logger()], true);
},
});Run it with
bun run src/index.tsimport Oxarion from "oxarionjs";
await Oxarion.start({
dynamicRouting: {
dir: "dyn",
handlerFile: "api",
extensions: ["ts", "js"],
onConflict: "keepManual",
},
httpHandler: () => {},
});dyn/test/api.ts maps to /test.
Route modules can export HTTP method functions or a static class.
import type { OxarionRequest, OxarionResponse } from "oxarionjs";
export default class TestApi {
static async GET(req: OxarionRequest, res: OxarionResponse) {
return res.json({ path: req.url() });
}
}OxarionJs is built to stay lightweight on the hot path, and local benchmarking reflects that well.
Here is an example result from the Bun benchmark suite used during development:
| Framework | Average Req/Sec |
|---|---|
| Oxarion | 232632 |
| Previous baseline | 179348 |
That specific change represents roughly a 30% throughput improvement.
For a single endpoint sample from the local benchmark runner:
| Endpoint | Framework | Req/Sec | Avg Latency | P99 Latency |
|---|---|---|---|---|
| JSON Response | Oxarion | 255271 | 0.785 ms | 1.140 ms |
The full generated benchmark report is written to benchmarks/Results.md.
- Benchmarks are run locally on Bun using
oha - Measured runs use sustained timed execution rather than short burst tests
- Results are more useful for comparing framework overhead on identical handlers than for making universal performance claims
- Numbers may vary based on hardware, Bun version, OS scheduling, thermal state, and background apps
If you want to reproduce the same style of measurement, see:
Start here if you want the full guide.