Back to blog

Bun 1.3: The JavaScript Runtime Dominating the Market in 2025

Hello HaWkers, Bun 1.3 was released in October 2025 and the numbers are impressive. With 8x faster startup than Node.js and 70k+ stars on GitHub, the runtime is conquering the market.

Let's analyze the new features and understand if it's worth migrating.

What is Bun

More Than A Runtime

Bun is not just a JavaScript runtime. It's a complete toolkit that consolidates fragmented tools into a single solution.

What Bun includes:

  1. Runtime: Executes JavaScript/TypeScript
  2. Bundler: Packages code for production
  3. Test Runner: Integrated tests
  4. Package Manager: Alternative to npm/yarn
  5. Transpiler: Native TypeScript

Bun is an incredibly fast JavaScript runtime, bundler, test runner, and package manager - all in one.

Bun 1.3: The New Features

October 2025 Launch

Version highlights:

  • Massive performance improvements
  • 100x reduction in CPU idle
  • 40% reduction in memory idle
  • New compatibility features

Bun v1.3.2 (November 2025)

Latest fixes:

Feature Description
CompressionStream Native support
DecompressionStream Native support
.env control Control in standalone executables
bunfig.toml Configurable loading
bun:test retry and repeats
SQLite 3.51.0 Updated version
Zig 0.15.2 Toolchain upgrade
95 issues Fixed (348 upvotes)

Benchmarks: Bun vs Node.js vs Deno

Startup Time

Cold start comparison:

Runtime Time vs Bun
Bun 1.3 ~8ms Base
Deno 2.5 ~35ms 4x slower
Node.js 24 ~42ms 5x slower

In startup tests, Bun 1.3 shows ~8ms compared to Deno 2.5 with ~35ms and Node.js 24 with ~42ms, making it 5-8x faster for cold starts.

CPU and Memory Usage

v1.3 optimizations:

Metric Before After Reduction
CPU idle Base 100x lower 99%
Memory idle Base 40% lower 40%

Integrating JavaScript Core's garbage collector with Bun's event loop achieved a 100x reduction in CPU idle and 40% in memory idle.

HTTP Server Performance

Requests per second:

## Benchmark: Hello World HTTP Server

Bun:      145,000 req/s
Deno:      85,000 req/s
Node.js:   65,000 req/s

## With JSON serialization

Bun:      120,000 req/s
Deno:      70,000 req/s
Node.js:   52,000 req/s

Bun 1.3 Features

Super Fast Package Manager

Installation comparison:

# Installing dependencies for medium project (500 deps)

# npm
$ time npm install
real    45.2s

# yarn
$ time yarn install
real    32.1s

# pnpm
$ time pnpm install
real    18.4s

# bun
$ time bun install
real    4.2s  # 10x faster than npm!

Integrated Test Runner

bun:test features:

// test.ts - Bun native testing
import { expect, test, describe } from 'bun:test';

describe('Math operations', () => {
  test('addition', () => {
    expect(1 + 1).toBe(2);
  });

  // New in 1.3.2: retry
  test('flaky network call', { retry: 3 }, async () => {
    const response = await fetch('https://api.example.com/data');
    expect(response.ok).toBe(true);
  });

  // New in 1.3.2: repeats
  test('consistency check', { repeats: 10 }, () => {
    expect(Math.random()).toBeGreaterThan(0);
  });
});

Native TypeScript

No additional configuration:

// index.ts - runs directly
import { serve } from 'bun';

interface User {
  id: number;
  name: string;
}

const users: User[] = [
  { id: 1, name: 'Alice' },
  { id: 2, name: 'Bob' },
];

serve({
  port: 3000,
  fetch(request) {
    return Response.json(users);
  },
});

// Execute with: bun index.ts (no tsc!)

Integrated SQLite

Database Without Dependencies

Bun has SQLite built-in, no external packages needed.

import { Database } from 'bun:sqlite';

// Create in-memory or file database
const db = new Database(':memory:');
// or
const db = new Database('myapp.sqlite');

// Create table
db.run(`
  CREATE TABLE IF NOT EXISTS users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    email TEXT UNIQUE
  )
`);

// Insert with prepared statement
const insert = db.prepare(
  'INSERT INTO users (name, email) VALUES ($name, $email)'
);

insert.run({
  $name: 'Alice',
  $email: 'alice@example.com',
});

// Typed query
interface UserRow {
  id: number;
  name: string;
  email: string;
}

const users = db.query<UserRow, []>('SELECT * FROM users').all();
console.log(users);

SQLite 3.51.0

New included version:

  • Performance improvements
  • New SQL features
  • Bug fixes
  • Better compatibility

Market Adoption

2025 Numbers

Adoption statistics:

Metric Value
GitHub Stars 70k+
New projects considering 32%
Surpassed Deno Yes
Companies using Shopify, Vercel

Platform Support

Deploy options:

  • Vercel: Official Bun Runtime support
  • Railway: Native deploy
  • Fly.io: Containers with Bun
  • AWS Lambda: Via container
  • Cloudflare Workers: Partial

Vercel now supports Bun Runtime, allowing developers to deploy and run applications with Bun on Vercel Functions.

2025-2026 Roadmap

What's Coming

Announced plans:

  1. Native Windows: Native performance on Windows
  2. 99% NPM compatibility: Almost all packages
  3. Professional debug tools: Advanced debugging
  4. Bun Cloud: Vercel/Deno Deploy competitor
  5. Monorepos: Improved support

Bun Cloud

New deployment platform:

  • Direct deploy of Bun projects
  • Vercel competitor
  • Optimized for Bun runtime
  • Competitive pricing expected

Migrating From Node.js To Bun

Compatibility

What works:

## Supported

- Express.js
- Fastify
- Hono
- Most npm packages
- TypeScript (native)
- JSX/TSX
- ES Modules
- CommonJS

## Partially supported

- Node.js native addons (some)
- Streams API (improving)
- Worker threads (limited)

## Not supported

- Some packages with native code
- Deprecated Node.js APIs

Step by Step

Gradual migration:

# 1. Install Bun
curl -fsSL https://bun.sh/install | bash

# 2. Convert package-lock.json
bun install  # Creates bun.lockb

# 3. Test your app
bun run dev

# 4. Update scripts in package.json
{
  "scripts": {
    "dev": "bun --watch src/index.ts",
    "start": "bun src/index.ts",
    "test": "bun test"
  }
}

# 5. Check compatibility
bun pm trust  # If needed for native modules

When to Use Bun

Ideal Use Cases

Bun shines in:

  1. Fast APIs: Maximum performance
  2. Serverless: Minimal cold start
  3. CLI tools: Instant startup
  4. Scripts: TypeScript without build
  5. Monorepos: Fast package manager

When to Avoid

Still prefer Node.js:

  1. Complex native addons: Limited compatibility
  2. Enterprise legacy: Existing integration
  3. Specific ecosystem: Untested packages
  4. Critical production: Node.js more mature

Final Comparison

Bun vs Deno vs Node.js

2025 summary:

Aspect Bun Deno Node.js
Startup ★★★★★ ★★★☆☆ ★★☆☆☆
Compatibility ★★★★☆ ★★★☆☆ ★★★★★
TypeScript Native Native Via tsc
Security Basic Advanced Basic
Ecosystem Growing Medium Massive
Enterprise Emerging Medium Dominant

Conclusion

Bun 1.3 represents a milestone in JavaScript runtime evolution. The performance is impressive, the all-in-one toolkit solves fragmentation, and adoption is accelerating.

For new projects, especially APIs and serverless, Bun is a solid choice. For existing projects, migration is possible but requires careful compatibility testing.

The future of JavaScript runtime is getting interesting. With Bun, Deno, and Node.js competing, developers are the biggest beneficiaries.

If you want to understand more about the JavaScript ecosystem in 2025, I recommend checking out the article about TypeScript Surpasses Python where we analyze the most used languages on GitHub.

Let's go! 🦅

🚀 Master JavaScript Regardless of Runtime

Bun, Node, or Deno - JavaScript is the foundation. Mastering the fundamentals is what matters.

Complete Material

I've prepared a guide from basics to advanced:

Investment:

  • 1x of $4.90 on card
  • or $4.90 at sight

⚡ Access JavaScript Guide

Comments (0)

This article has no comments yet 😢. Be the first! 🚀🦅

Add comments