Bun v1.3 釋出了!支援 Redis, MySQL, SQLite,更好的 Node 相容性 →

Bun
Bun v1.3 釋出了!→

Bun 是一個 快速的 JavaScript
一體化工具包|

Bun 是一個快速、**可漸進式採用**的多合一 JavaScript、TypeScript 和 JSX 工具包。您可以在 Node.js 專案中使用 `bun test` 或 `bun install` 等獨立工具,或者採用完整的堆疊,包括一個快速的 JavaScript 執行時、打包器、 測試執行器 包管理器 內建。Bun 旨在實現 100% Node.js 相容性。

被以下公司使用

四個工具,一個工具包

作為一個一體化工具包一起使用,或者逐步採用。 bun test 在 Node.js 專案中也可以使用。 bun install 可以作為最快的 npm 客戶端使用。每個工具都是獨立的。

REPLACESNode.js
ReplacesNPM
ReplacesVitest
ReplacesVite

誰使用 Bun?

Claude Code 使用 Bun

Bun 的 單檔案可執行檔案 和快速啟動時間非常適合 CLI。

Railway Functions 由 Bun 提供支援

Bun 的一體化工具包使 Railway 的無伺服器函式快速且易於使用。

Midjourney 使用 Bun

Bun 內建的 WebSocket 伺服器 幫助 Midjourney 大規模釋出影像生成通知。

Bun 有何不同?

Bun 提供豐富的內建 API 和工具

內建 核心功能

Bun
Bun
Node
Node.js 相容性
Web 標準 API
原生外掛
TypeScript
JSX
模組載入器外掛

內建 API

Bun
Bun
Node
PostgreSQL、MySQL 和 SQLite 驅動程式
S3 雲端儲存驅動
Redis 客戶端
WebSocket 伺服器(包括髮布/訂閱)
HTTP 伺服器
HTTP 路由器
單檔案可執行檔案
YAML
Cookies API
加密金鑰儲存

內建 工具

Bun
Bun
Node
npm 包管理
打包器
跨平臺 $ shell API
Jest 相容測試執行器
熱過載(伺服器)
Monorepo 支援
前端開發伺服器
格式化器和程式碼檢查器

內建 實用程式

Bun
Bun
Node
密碼和雜湊 API
字串寬度 API
Glob API
Semver API
CSS 顏色轉換 API
CSRF API

構建和釋出所需的一切

生產就緒的 API 和工具,內置於 Bun

$ bun run

Bun 是一個 JavaScript 執行時。

Bun 是一個從零開始構建的新 JavaScript 執行時,旨在服務現代 JavaScript 生態系統。它有三個主要設計目標:

Bun 被設計為 Node.js 的直接替代品。它原生實現了數千個 Node.js 和 Web API,包括 fspathBuffer 等。

Bun 的目標是執行世界上大部分的伺服器端 JavaScript,並提供工具來提高效能、降低複雜性並倍增開發人員的生產力。

Bun 相容 Next.js

Lee Robinson

Cursor (Anysphere) 開發者體驗副總裁

app/blog/[slug]/page.tsx

import { s3, $, sql } from "bun";
 
export default async function BlogPage({ params }) {
  const [post] = await sql`
    SELECT title, image_key, content
    FROM posts
    WHERE slug = ${params.slug}
  `;
 
  const imgUrl = s3.file(post.image_key).presign({•••});
 
  const wordCount = await $`echo ${post.content} | wc -w`;
 
  return (
    <div>
      <h1>{post.title}</h1>
      <img src={imgUrl} />
      <p>字數{wordCount}</p>
    </div>
  );
}

全速全棧

Bun 內建的高效能開發伺服器和生產打包器,讓前端應用飛速執行。你從未見過如此快速的熱過載!見過如此快速的熱過載!

開發和釋出前端應用

Bun 內建的打包器和開發伺服器使前端開發快速而簡單。透過即時熱過載進行開發,然後釋出最佳化的生產構建——所有這些都無需配置。

$ bun init --react

啟動開發伺服器

執行 bun ./index.html 啟動開發伺服器。TypeScript、JSX、React 和 CSS 匯入開箱即用。

熱模組替換

內建 HMR 在開發過程中保留應用程式狀態。更改即時生效——無需手動重新整理。

用於生產環境的構建

使用以下命令構建最佳化的 bundle: bun build ./index.html --production。搖樹最佳化、壓縮和程式碼分割開箱即用。

$ bun install

Bun 是一個相容 npm 的包管理器。

Bun

pnpm

慢 17 倍

npm

慢 29 倍

Yarn

慢 33 倍

從快取安裝 Remix 應用程式的依賴項。
檢視基準測試

yarn 替換為 bun install,可將包安裝速度提高 30 倍。

$ bun test

Bun 是一個測試執行器,讓其他測試看起來像在步行。

Bun

Vitest

慢 5 倍

Jest+SWC

慢 8 倍

Jest+tsjest

慢 18 倍

Jest+Babel

慢 20 倍

jest 替換為 bun test,可將測試執行速度提高 10-30 倍。

您需要的 API。內建。

啟動 HTTP 伺服器

啟動 WebSocket 伺服器

讀寫檔案

雜湊密碼

前端開發伺服器

編寫測試

查詢 PostgreSQL

使用 Redis

匯入 YAML

設定 cookies

執行 Shell 指令碼

呼叫 C 函式

index.tsx
import { sql, serve } from "bun";

const server = serve({
  port: 3000,
  routes: {
    "/": () => new Response("Welcome to Bun!"),
    "/api/users": async (req) => {
      const users = await sql`SELECT * FROM users LIMIT 10`;
      return Response.json({ users });
    },
  },
});

console.log(`Listening on localhost:${server.port}`);

瞭解更多

文件

開始使用 Bun 並瞭解其所有功能

API 參考

探索 Bun 執行時和工具包的完整 API 參考

開發者們都喜歡 Bun。

Sainder
1月17日
@Sainder_Pradipt
Bun
Lic
1月18日
@Lik228
bun
Martin Navrátil
1月17日
@martin_nav_
Bun....
SaltyAom
1月17日
@saltyAom
bun
reaxios
1月17日
@reaxios
bun install bun
kyge
1月17日
@0xkyge
bun
James Landrum
1月17日
@JamesRLandrum
Node
orlowdev
1月17日
@orlowdev
是的,Bun,但是我的程式碼沒有依賴項。
你好
1月17日
@jdggggyujhbc
bun
std::venom
1月17日
@std_venom
Bun
tiago
1月19日
@tiagorangel23
應該用 Bun 而不是 npm
Sainder
1月17日
@Sainder_Pradipt
Bun
Lic
1月18日
@Lik228
bun
Martin Navrátil
1月17日
@martin_nav_
Bun....
SaltyAom
1月17日
@saltyAom
bun
reaxios
1月17日
@reaxios
bun install bun
kyge
1月17日
@0xkyge
bun
James Landrum
1月17日
@JamesRLandrum
Node
orlowdev
1月17日
@orlowdev
是的,Bun,但是我的程式碼沒有依賴項。
你好
1月17日
@jdggggyujhbc
bun
std::venom
1月17日
@std_venom
Bun
tiago
1月19日
@tiagorangel23
應該用 Bun 而不是 npm
46officials
1月19日
@46officials
Bun
yuki
1月19日
@staticdots
Bun
Stefan
1月17日
@stefangarofalo
Bun
Samuel
1月17日
@samueldans0
永遠是 Bun
Divin Prince
1月17日
@divinprnc
是的,Bun
Gibson
1月16日
@GibsonSMurray
bun
Oggie Sutrisna
1月16日
@oggiesutrisna
bun
emanon
1月16日
@0x_emanon
✅ bun
yuki
1月16日
@staticdots
bun
SpiritBear
1月16日
@0xSpiritBear
bun
Ayu
1月12日
@Ayuu2809
Bun 真棒 🧅
46officials
1月19日
@46officials
Bun
yuki
1月19日
@staticdots
Bun
Stefan
1月17日
@stefangarofalo
Bun
Samuel
1月17日
@samueldans0
永遠是 Bun
Divin Prince
1月17日
@divinprnc
是的,Bun
Gibson
1月16日
@GibsonSMurray
bun
Oggie Sutrisna
1月16日
@oggiesutrisna
bun
emanon
1月16日
@0x_emanon
✅ bun
yuki
1月16日
@staticdots
bun
SpiritBear
1月16日
@0xSpiritBear
bun
Ayu
1月12日
@Ayuu2809
Bun 真棒 🧅
Hirbod
1月19日
@hirbod_dev
一切都用。是的。我甚至用 bunx expo run:ios 等。
Luis Paolini
1月18日
@DigitalLuiggi
就用 @bunjavascript
buraks
1月18日
@buraks____
我用 bun patch,我愛它!
fahadali
1月8日
@fahadali503
Bun
Aiden Bai
1月1日
@aidenybai
2025 將是 JS/TS 之年,@bunjavascript 是原因。
Catalin
1月1日
@catalinmpit
Bun 太棒了
MadMax
1月3日
@dr__madmax
@bunjavascript 還沒有得到它應得的足夠讚賞。
Baggi/e
1月3日
@ManiSohi
高效能的 TS/JS 後端需要更多的愛。Elysia 必勝
Michael Feldstein
12月18日
@msfeldstein
天哪,bun 是解決整天與 typescript/module/commonjs/import 這些破事糾纏,只為執行指令碼的終極方案
Hirbod
1月19日
@hirbod_dev
一切都用。是的。我甚至用 bunx expo run:ios 等。
Luis Paolini
1月18日
@DigitalLuiggi
就用 @bunjavascript
buraks
1月18日
@buraks____
我用 bun patch,我愛它!
fahadali
1月8日
@fahadali503
Bun
Aiden Bai
1月1日
@aidenybai
2025 將是 JS/TS 之年,@bunjavascript 是原因。
Catalin
1月1日
@catalinmpit
Bun 太棒了
MadMax
1月3日
@dr__madmax
@bunjavascript 還沒有得到它應得的足夠讚賞。
Baggi/e
1月3日
@ManiSohi
高效能的 TS/JS 後端需要更多的愛。Elysia 必勝
Michael Feldstein
12月18日
@msfeldstein
天哪,bun 是解決整天與 typescript/module/commonjs/import 這些破事糾纏,只為執行指令碼的終極方案