Web meta-framework powered by Bun and Elysia with file-based routing, SSR/SSG/ISR modes, and full TypeScript type inference. No vite, one process, backend and frontend at the same place.
翻译准备中
正在加载完整 README。
查看完整 README ↗
bun create furin@latest my-app
cd my-app
bun install
bun run dev
Furin supports exactly Elysia 2.0.0-beta.32 while Elysia 2 is in beta; a weekly workflow tests upcoming elysia@next releases.
For the shadcn/ui starter:
bun create furin@latest my-app --template full
Full API reference, rendering modes, routing, and deployment guides at teyik0.github.io/furin.
| Workspace | Description |
|---|---|
packages/core | Core library — @teyik0/furin |
apps/docs | Documentation site |
examples/task-manager | Example: task manager app |
examples/weather | Example: weather app |
packages/electrobun | Optional Electrobun desktop integration — @teyik0/furin-electrobun |
examples/electrobun-todo | Example: Relay todo app with the same web and Electrobun UI |
bun run fix # lint & format
bun run test # run all tests
bun run tscheck # type-check
bun run build # build all packages
Each published workspace owns its version in package.json. Publishing a
GitHub Release selects one npm package through its tag:
| Release tag | Package | Version source |
|---|---|---|
v0.7.0-alpha.5 | @teyik0/furin | packages/core/package.json |
electrobun-v0.1.0 | @teyik0/furin-electrobun | packages/electrobun/package.json |
create-furin-v0.4.1 | create-furin | apps/scaffolder/package.json |
To release, update only the selected manifest and the Bun lockfile, commit the
change, wait for CI, then publish the matching GitHub Release. A draft release or
a tag push alone does not publish npm packages. The workflow rejects a tag whose
package name or version differs from the manifest. GitHub's prerelease checkbox
must match the version: prereleases use npm's next tag, stable versions use
latest.
Electrobun also verifies that npm already contains a core version satisfying its declared peer range. When new SDK functionality requires a newer core, publish that compatible core first, then Electrobun. Independent releases do not bypass dependency compatibility.
PR previews include all three packages; stable publishing still selects only
one. The scaffolder's --version reports its own version, not the core version
chosen for a generated application.