Frameworks
These ship as examples in the playground (project picker → Examples). Unless noted, they were checked in Chrome.
| Project | Status | Notes |
|---|---|---|
| Elysia 1.4 | ✅ Works | Every route returns the same status and body as real Bun. |
| Elysia 2 (rc) | ✅ Works | Same check as above. |
| Hono | ❔ Untested | Bun starter template, from GitHub. Listed as an example; no recorded check yet. |
| Lit SSR + Elysia | ✅ Works | Streams Lit SSR, hydrates, uses bun:sqlite and WebSockets. |
| Astro + Solid | 🟡 Partial | Astro 7 dev server, on-demand pages, a hydrated Solid island and an API route. HMR and the dev toolbar are off. |
| Vite | 🟡 Partial | Vite 8 dev server, started from a script with createServer(). HMR connects over the preview’s WebSocket; not yet tested end to end. |
| Node built-ins demo | ✅ Works | Output matches real Bun. |
bun.lock demo |
✅ Works | Nested installs from a lockfile. |
What usually blocks a framework
Section titled “What usually blocks a framework”- CLI scripts. Only
"script": "bun <file>"runs. Start the dev server from a file instead (for examplecreateServer()in Vite,dev()in Astro). - Native bindings without a wasm fallback.
- Child processes (
child_process,Bun.spawn) andzlib. - Install scripts, which never run.
Tried something? Tell us whether it worked.