oven-sh/bun
By the numbers
Quick statistics about the Bun repository as of e257f2d8 on main.
Repo size
| Metric | Value |
|---|---|
| Total commits | 15,190 |
| Unique commit authors | 906 |
| First commit | 2021-04-17 ("woot") |
| Latest tag | bun-v1.3.13 |
| Default branch | main |
Activity
| Window | Commits |
|---|---|
| Last 90 days | ~700 |
| Last 365 days | ~2,400 |
%%{init: {'theme':'default'}}%%
graph LR
subgraph "Recent contributors (last 90 days)"
A[robobun: 317 - automated PR-merge bot]
B[Jarred Sumner: 149]
C[Dylan Conway: 128]
D[SUZUKI Sosuke: 32]
E[Alistair Smith: 24]
F[Ciro Spaciari: 19]
endThe robobun account is a merge / changelog bot, so its commit count reflects automation rather than human review traffic.
Language breakdown
Approximate counts of src/** files by extension:
| Language | Files | Notes |
|---|---|---|
| TypeScript (.ts, .tsx) | ~2,575 | Built-in modules (src/js/), codegen, packages. |
| JavaScript (.js) | ~3,963 | Bundled/generated artifacts and a few hand-written builtins. |
| Zig (.zig) | ~1,220 | Core runtime. |
| C / C++ headers (.h) | ~776 | JSC bindings + C interop. |
| C++ (.cpp) | ~570 | JSC bindings. |
| Rust (.rs) | ~11 | A small handful of helpers. |
Notable file sizes (Zig)
| File | Bytes | Subsystem |
|---|---|---|
src/js_printer.zig |
~260 KB | JS printer |
src/css/css_parser.zig |
~298 KB | CSS parser |
src/cli/test_command.zig |
~211 KB | Test runner CLI |
src/resolver/resolver.zig |
~206 KB | Module resolver |
src/cli/install_command.zig |
~184 KB | Package manager CLI |
src/bun.js/api/server.zig |
~170 KB | HTTP server |
src/sys.zig |
~165 KB | Cross-platform syscalls |
src/transpiler.zig |
~72 KB | Runtime transpiler |
src/Watcher.zig |
~27 KB | File watcher |
src/crash_handler.zig |
~96 KB | Crash handler |
Vendored dependencies
| Library | Purpose |
|---|---|
| WebKit / JavaScriptCore | The JS engine. |
| BoringSSL | TLS, crypto, hashing. |
| mimalloc | Allocator. |
| zlib-ng / libdeflate / brotli / zstd | Compression. |
| c-ares | Async DNS. |
| libuv | Windows event loop. |
| picohttpparser | HTTP/1 parsing. |
| ls-hpack / ls-qpack / lsquic | HTTP/2 + HTTP/3. |
| lol-html | HTML rewriter. |
| libarchive | Tar / zip. |
| Highway | Portable SIMD. |
| Tracy | Optional profiler. |
| nodejs (headers) | N-API + V8 ABI compat. |
| TinyCC (oven-sh fork) | FFI JIT. |
| Zig | Compiler / stdlib. |
Releases
| Tag | Date | Note |
|---|---|---|
| bun-v0.0.0-10 (first tagged build) | 2021 | "Bun" name was already chosen. |
| bun-v0.1.0 | 2022-07-05 | First minor. |
| bun-v0.5.0 | 2023-01-18 | |
| bun-v1.0.0 | 2023-09-07 | "Stable" announcement. |
| bun-v1.1.0 | 2024-04-01 | Major Windows support, bake. |
| bun-v1.2.0 | 2025-01-21 | New text-based lockfile (bun.lock). |
| bun-v1.3.0 | 2025-10-10 | Latest minor (1.3.x ongoing). |
| bun-v1.3.13 | most recent | Patch release. |
Hot subsystems by recent edit volume
The most-modified directories in the last 90 days (rough count from git log):
src/install/— package manager work.src/bake/— dev server / SSR.src/bun.js/api/— runtime APIs.src/bun.js/webcore/— Web APIs (fetch, streams).src/sql/— Postgres + MySQL improvements.
Use git log --since="90 days ago" --name-only -- <dir> | wc -l to recompute.
Test suite
| Area | Approx files |
|---|---|
test/js/bun/ |
hundreds |
test/js/node/ |
hundreds (Node compat is a major axis) |
test/js/web/ |
dozens |
test/cli/ |
dozens |
test/bundler/ |
dozens (each test bundles a fixture) |
test/regression/issue/ |
one file per regression |
test/integration/ |
dozens (real workflows) |
The whole suite takes the better part of an hour on CI; locally, run only what's relevant. See Testing.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.