HVRDHVRD
NodeJS

Bun, Creating a Node.js Project

Understanding Bun and Creating + Running a Node.js Project

What is Bun?

Bun is an all-in-one modern JavaScript runtime like Node.js or Deno, but with a strong focus on speed and performance.
It bundles a JavaScript/TypeScript runtime, package manager, and task runner into a single executable.

What Bun Tries to Achieve:

  • Drastically faster package installs compared to npm and Yarn.
  • Extremely fast runtime performance for executing JavaScript and TypeScript.
  • Built-in support for common tools (like bundling, transpiling, and running scripts).
  • Low startup time compared to Node.js.

Bun is powered by the JavaScriptCore (JSC) engine (used by Safari) and optimized for modern development workflows.


Why Bun Matters

Traditional Node.js development requires multiple tools:

  • Node.js runtime
  • npm or Yarn for package management
  • Babel or other transpilers
  • Webpack/Rollup for bundling

Bun simplifies this by combining most of these into a single tool that is faster and easier to use.


Creating a Node.js Project

Although Bun can manage projects itself, we'll focus on creating a typical Node.js project that works across runtimes.

Step 1: Initialize a Project

Create a new project directory and initialize it:

mkdir my-node-project
cd my-node-project
bun init

This creates a package.json file and configures the project.

If using Node.js without Bun:

mkdir my-node-project
cd my-node-project
npm init -y

Step 2: Create an Entry Point File

Create a file named index.js with a simple script:

// index.js
console.log('Hello from Node.js project');

Step 3: Install Dependencies (Optional)

For example, install express to create a web server:

bun add express

Or, using npm:

npm install express

Step 4: Add a Simple Express Server

Modify index.js to run a basic HTTP server:

// index.js
const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('Hello World from Express');
});

app.listen(3000, () => {
  console.log('Server is running on http://localhost:3000');
});

Running the Node.js Project

With Bun

Run the project directly using Bun:

bun run index.js

Bun runs the script using its high-performance runtime.

With Node.js

Run the project using Node.js:

node index.js

Visit http://localhost:3000 in your browser to see the message.


Why Use Bun?

  • Faster startup and script execution compared to Node.js.
  • Extremely fast dependency installation (bun install).
  • Built-in bundling and transpilation without extra configuration.
  • Simple all-in-one CLI tool.