bun-runtime

v2026.09.24

Bun JavaScript runtime, bundler, and package manager. Covers Bun.serve() HTTP server, Bun.file() I/O, SQLite, password hashing, Bun.build() bundler, bun:test runner, and package management. Use when building with Bun APIs, running scripts with Bun, bundling code, managing packages with bun install/add, or writing tests with bun:test.

GitHub
安装命令
npx skhub add oakoss/bun-runtime
Markdown
SKILL.md

Bun Runtime

Overview

Bun is an all-in-one JavaScript and TypeScript runtime that includes a fast package manager, bundler, test runner, and Node.js-compatible APIs. It natively executes TypeScript and JSX without a separate compilation step.

When to use: Fast server-side JavaScript, TypeScript-first projects, replacing Node.js for better startup performance, built-in SQLite, password hashing, file I/O, HTTP servers, bundling, and testing without external tooling.

When NOT to use: Projects requiring full Node.js ecosystem compatibility (some native modules unsupported), production environments needing battle-tested stability of Node.js, or browser-only code that does not need a runtime.

Quick Reference

PatternAPIKey Points
HTTP serverBun.serve({ routes, fetch })Route-based, static/dynamic routes, per-method handlers
File readBun.file(path)Lazy BunFile (Blob), .text(), .json(), .stream()
File writeBun.write(dest, data)Accepts string, Blob, Response, BunFile
SQLitenew Database(path) from bun:sqliteSynchronous queries, prepared statements, WAL mode
Password hashBun.password.hash(pw)Argon2id default, bcrypt option, async and sync variants
Password verifyBun.password.verify(pw, hash)Auto-detects algorithm from hash format
BundlerBun.build({ entrypoints, outdir })Tree-shaking, code splitting, plugins, multiple targets
Test runnerimport { test, expect } from "bun:test"Jest-compatible, mocking, snapshots, watch mode
Install packagesbun installFast lockfile resolution, npm-compatible
Add packagebun add <pkg>-d for dev, -g for global
Run scriptbun run <script>Runs package.json scripts or files directly
Execute binarybunx <pkg>Like npx, runs without installing
S3 clientnew S3Client(opts) / s3.file(key)Built-in S3-compatible storage client
HTML importsimport page from './index.html'Fullstack: import HTML as route handler

Common Mistakes

MistakeCorrect Pattern
Using fetch handler only without routesUse routes object for static/dynamic routing (Bun v1.2.3+), fetch as fallback
Forgetting await on Bun.write()Bun.write() is async, always await it
Using Bun.file(path).text() without await.text(), .json(), .arrayBuffer() all return Promises
Creating SQLite database without WAL modeEnable WAL for concurrent reads: db.exec("PRAGMA journal_mode = WAL")
Using bun install without --frozen-lockfile in CIUse bun install --frozen-lockfile for reproducible CI builds
Importing jest globals in Bun testsImport from bun:test, not @jest/globals or vitest
Using node_modules/.bin/ directlyUse bunx or bun run instead of referencing bin paths
Expecting Bun.build() to throw on failureCheck result.success boolean, errors are in result.logs
Using --target node when deploying to BunUse --target bun for Bun-specific optimizations and bytecode
Synchronous password hashing in request handlersUse await Bun.password.hash() async variant in servers

Delegation

  • Project scaffolding: Use Explore agent
  • Performance profiling: Use Task agent
  • Code review: Delegate to code-reviewer agent

If the typescript-patterns skill is available, delegate advanced TypeScript typing questions to it.

References

发现
标签

此技能尚未发布标签。

版本
最新版本元数据

版本

v2026.09.24

发布时间

2026年9月24日

分类

未分类

许可证

未指定

源路径

skills/bun-runtime

默认分支

main

最新提交

85e3a39

Tree SHA

a4c9e7b