If you're building a backend with Bun in 2025 and you care about raw performance, you've probably looked at Hono and Elysia. They're fast. But there's a new framework sitting comfortably in the top three — and it was built by a 13-year-old from Nigeria.
That framework is PrinceJS.
This post breaks down the real benchmark numbers, what they mean for your application, and why PrinceJS might be the right choice even though it isn't the fastest framework in the list.
The Real Benchmark Numbers
All benchmarks were run with oha -c 100 -z 30s on Windows 10. Same machine, same conditions, no tricks.
| Framework | Req/s | Total Requests |
|---|---|---|
| Elysia | 25,312 | 759k |
| Hono | 22,124 | 664k |
| PrinceJS | 21,748 | 653k |
| Express | 9,325 | 280k |
PrinceJS hits 21,748 requests per second — third globally among Bun frameworks and 2.3x faster than Express.
Elysia leads the pack, Hono is second, and PrinceJS is right behind at third. The gap between Hono and PrinceJS is about 1.7%. The gap between PrinceJS and Express is enormous.
Why PrinceJS is Competitive Despite Being Third
Raw req/s isn't the only metric that matters. Here's the full picture:
| Framework | Req/s | Bundle Size |
|---|---|---|
| Elysia | 25,312 | ~22kb |
| Hono | 22,124 | ~14kb |
| PrinceJS | 21,748 | 4.8kb gzipped |
| Express | 9,325 | 200kb+ |
PrinceJS is the smallest Bun framework in this comparison at 4.8kb gzipped. That bundle size is why PrinceJS loads in 97 milliseconds on Slow 3G — a real-world metric that req/s benchmarks don't capture.
For developers building APIs that start up quickly, edge functions, or any backend where cold start time matters — the bundle size difference between PrinceJS and Elysia is meaningful.
What PrinceJS Actually Ships
Despite being 4.8kb gzipped, PrinceJS ships a remarkably complete feature set. This isn't a minimal micro-framework — it's a full-featured framework that's been engineered to stay small.
| Feature | Import |
|---|---|
| Routing | princejs |
| Middleware (CORS, Logger, Rate Limit, Auth, JWT) | princejs/middleware |
| Zod Validation | princejs/middleware |
| Cookies & IP Detection | princejs |
| File Uploads | princejs/helpers |
| WebSockets | princejs |
| Server-Sent Events | princejs/helpers |
| Sessions | princejs/middleware |
| Response Compression | princejs/middleware |
| In-memory Cache | princejs/helpers |
| Cron Scheduler | princejs/scheduler |
| OpenAPI + Scalar Docs | princejs |
| JSX / SSR | princejs/jsx |
| SQLite Database | princejs/db |
| Plugin System | princejs |
| End-to-End Type Safety | princejs/client |
| Deploy Adapters (Vercel, Cloudflare, Deno, Node) |
princejs/vercel etc. |
| Lifecycle Hooks | princejs |
This is the full feature list of a production-ready framework, shipping in 4.8kb gzipped.
Getting Started
bun add princejs
# or
npm install princejs
A complete server with middleware in under 10 lines:
import { prince } from "princejs";
import { cors, logger } from "princejs/middleware";
const app = prince();
app.use(cors());
app.use(logger());
app.get("/", () => ({ message: "Hello PrinceJS!" }));
app.get("/users/:id", (req) => ({ id: req.params.id }));
app.listen(3000);
PrinceJS vs Hono vs Elysia — Which Should You Use?
Use PrinceJS if:
- Bundle size and cold start time matter (edge functions, serverless, mobile backends)
- You want the most complete feature set in the smallest package
- You need deploy adapters for Vercel, Cloudflare Workers, Deno, or Node
- You want built-in OpenAPI docs, SQLite, WebSockets, and SSE without adding dependencies
Use Elysia if:
- You need the absolute maximum raw req/s
- You're heavily TypeScript-first and want Elysia's type system
Use Hono if:
- You need Hono's specific middleware ecosystem
- You're deploying to Cloudflare Workers natively
- You want the second-fastest option with a larger community
The One-Line Summary
PrinceJS is the third fastest Bun framework in the world, 2.3x faster than Express, ships in 4.8kb gzipped with a full production feature set, and was built in three days by a 13-year-old from Abuja, Nigeria.
bun add princejs
Website: princejs.vercel.app
npm: npmjs.com/package/princejs
GitHub: github.com/MatthewTheCoder1218/princejs
X: @Lil_Prince_1218
Top comments (0)