bun

Bun JavaScript/TypeScript runtime and all-in-one toolkit. Covers runtime, package manager, bundler, test runner, HTTP server, WebSockets, SQLite, S3, Redis, file I/O, shell scripting, FFI, Markdown parser. Use when running JS/TS with Bun, managing packages, bundling, testing, or using Bun-specific APIs. Keywords: bun, bunx, bun install, bun run, bun test, bun build, Bun.serve, Bun.file, bun:sqlite, Bun.markdown.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "bun" with this command: npx skills add itechmeat/llm-code/itechmeat-llm-code-bun

Bun

All-in-one JavaScript/TypeScript toolkit: runtime, package manager, test runner, bundler.

Quick Navigation

TopicReference
Package Managerreferences/package-manager.md
Project Setupreferences/project-scaffolding.md
Developmentreferences/development.md
Module Systemreferences/module-system.md
TypeScript & JSXreferences/typescript-jsx.md
Configurationreferences/bunfig.md
HTTP Serverreferences/http-server.md
WebSocketsreferences/websockets.md
File I/Oreferences/file-io.md
SQLitereferences/sqlite.md
S3 Storagereferences/s3.md
Redisreferences/redis.md
Low-Level Networkreferences/networking-low-level.md
Fetch APIreferences/fetch.md
Shell Scriptsreferences/shell.md
Spawn Processreferences/spawn.md
Workersreferences/workers.md
Native FFIreferences/native-interop.md
C/C++ Compilereferences/cc.md
Transpilerreferences/transpiler.md
Pluginsreferences/plugins.md
FS Routerreferences/file-system-router.md
Environment Varsreferences/env.md
Utilitiesreferences/utilities.md
Node.js Compatreferences/nodejs-compat.md

When to Use Bun

  • Running TypeScript/JSX without build step
  • Fast HTTP server with native routing
  • SQLite database (embedded, no deps)
  • WebSocket server/client
  • S3-compatible storage (AWS, R2, MinIO)
  • Redis caching/pub-sub
  • Cross-platform shell scripts
  • Markdown parsing (v1.3.8+)
  • Native library calls via FFI

Core Advantages

  • 4x faster startup than Node.js
  • Native TypeScript/JSX — no tsconfig needed
  • ESM + CommonJS — both work seamlessly
  • Web APIs built-in — fetch, WebSocket, etc.
  • 30x faster installs than npm

Quick Start

# Run TypeScript directly
bun run index.ts

# Install packages
bun install

# Run package.json script
bun run dev

# Execute package binary
bunx cowsay "Hello"

# Run tests
bun test

# Build for production
bun build ./index.ts --outdir ./dist

# Bundle analysis for LLMs (v1.3.8+)
bun build ./index.ts --metafile-md --outdir ./dist

Critical Rules

Don'tDo
http.createServer()Bun.serve()
fs.readFileSync()Bun.file().text()
better-sqlite3bun:sqlite
child_process.exec()Bun.$ or Bun.spawn()
dotenvBuilt-in .env support

Essential Recipes

HTTP Server

Bun.serve({
  port: 3000,
  fetch(req) {
    const url = new URL(req.url);
    if (url.pathname === "/api/data") {
      return Response.json({ ok: true });
    }
    return new Response("Not Found", { status: 404 });
  },
});

File Operations

// Read
const content = await Bun.file("data.txt").text();

// Write
await Bun.write("output.txt", "Hello World");

// JSON
const config = await Bun.file("config.json").json();

SQLite

import { Database } from "bun:sqlite";

const db = new Database("app.db");
db.run("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)");

const insert = db.prepare("INSERT INTO users (name) VALUES (?)");
insert.run("Alice");

const users = db.query("SELECT * FROM users").all();

WebSocket Server

Bun.serve({
  fetch(req, server) {
    if (server.upgrade(req)) return;
    return new Response("Upgrade failed", { status: 400 });
  },
  websocket: {
    message(ws, message) {
      ws.send(`Echo: ${message}`);
    },
  },
});

Shell Commands

import { $ } from "bun";

// Simple command
const files = await $`ls -la`.text();

// With variables (auto-escaped)
const name = "my file.txt";
await $`cat ${name}`;

// Piping
await $`cat data.csv | grep "pattern" | wc -l`;

S3 Storage

import { s3 } from "bun";

// Upload
await s3.file("uploads/doc.pdf").write(data);

// Download
const content = await s3.file("uploads/doc.pdf").text();

// Presigned URL
const url = s3.presign("uploads/doc.pdf", { expiresIn: 3600 });

Redis

import { redis } from "bun";

await redis.set("key", "value");
const value = await redis.get("key");
await redis.expire("key", 3600);

Testing

import { expect, test, describe } from "bun:test";

describe("math", () => {
  test("2 + 2 = 4", () => {
    expect(2 + 2).toBe(4);
  });
});

Configuration (bunfig.toml)

[run]
watch = true

[install]
registry = "https://registry.npmjs.org"

[test]
coverage = true

Environment Variables

# .env files loaded automatically
DATABASE_URL=postgres://localhost/mydb
// Access
Bun.env.DATABASE_URL;
process.env.DATABASE_URL;
import.meta.env.DATABASE_URL;

Links

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

react-testing-library

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

social-writer

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

commits

No summary provided by upstream source.

Repository SourceNeeds Review