Bun is a modern JavaScript runtime designed to simplify and accelerate the development of JavaScript and TypeScript applications. Unlike traditional runtimes, Bun combines multiple tools into a single, cohesive package, including a bundler, test runner, and a Node.js – compatible package manager.
Key Features of Bun:
- High Performance: Bun is built with speed in mind. By extending JavaScriptCore – the engine that powers Safari, which ensures fast startup times and efficient execution of your applications.
- Comprehensive Toolkit: With Bun, you get an all-in-one solution that includes a bundler for packaging your code, a test runner for ensuring code reliability, and a package manager compatible with Node.js, streamlining your development workflow.
- Node.js Compatibility: Bun aims to be a drop-in replacement for Node.js, implementing Node’s module resolution algorithm and supporting built-in modules like fs and path.
-
First-Class TypeScript and JSX Support: Bun allows you to execute
.ts
and.tsx
files directly, respecting yourtsconfig.json
settings. It also transpiles JSX syntax to JavaScript internally, with React as the default but supporting custom JSX transforms.
Installing Bun on Linux
The unzip package is required to install Bun, so use your distribution’s package manager to install it as shown.
sudo apt install unzip [On <strong>Debian, Ubuntu and Mint</strong>] sudo dnf install unzip [On <strong>RHEL/CentOS/Fedora</strong> and <strong>Rocky/AlmaLinux</strong>] sudo emerge -a sys-apps/unzip [On <strong>Gentoo Linux</strong>] sudo apk add unzip [On <strong>Alpine Linux</strong>] sudo pacman -S unzip [On <strong>Arch Linux</strong>] sudo zypper install unzip [On <strong>OpenSUSE</strong>] sudo pkg install unzip [On FreeBSD]
Next, use the curl command to download and execute Bun’s installation script, which will download the Bun binary and place it in your system’s PATH, making the bun command available globally.
curl -fsSL https://bun.sh/install | bash
Getting Started with Bun in Linux
After installing Bun, you can quickly set up a new project directory and start building applications.
mkdir my-bun-app cd my-bun-app
Next, initialize the project with Bun, which will prompt you with several questions to set up your project. You can press enter to accept the default answers. Bun will generate essential files like package.json
, index.ts
, .gitignore
, and tsconfig.json
.
bun init
Create an HTTP Server
Open the index.ts
file and add the following code to create a simple HTTP server:
const server = Bun.serve({ port: 3000, fetch(request) { return new Response("Welcome to Bun!"); }, }); console.log(`Listening on http://localhost:${server.port}`);
Now run the server with:
bun run index.ts
You should see the message Listening on http://localhost:3000
.
Open your browser and navigate to http://localhost:3000
to view the response from your server.
Managing Packages with Bun
To add a new package to your project, use the following command, which will install the specified package and update your package.json
accordingly. Bun manages dependencies in the node_modules
directory, similar to other package managers, ensuring compatibility with existing Node.js
projects.
bun add figlet
Update index.ts
to use figlet in the fetch handler.
import figlet from "figlet"; const server = Bun.serve({ port: 3000, fetch(request) { const message = figlet.textSync("Welcome to Bun!", { horizontalLayout: "default", verticalLayout: "default", }); return new Response(message, { headers: { "Content-Type": "text/plain" }, }); }, }); console.log(`Listening on http://localhost:${server.port}`);
Restart the server and refresh the page to see a new ASCII art banner.
If you need to remove Bun from your system, use the following command.
rm -rf ~/.bun
Conclusion
Bun is a powerful and efficient JavaScript runtime that simplifies the development process by integrating multiple tools into a single platform.
Its high performance, Node.js compatibility, and first-class support for TypeScript and JSX make it an ideal choice for developers looking for a modern, streamlined development experience.
The above is the detailed content of Bun: The Fastest All-in-One JavaScript Runtime for Linux. For more information, please follow other related articles on the PHP Chinese website!

Linuxoffersmoregranularcontroloverloggingandauditing,whileWindowsprovidesamorecentralizedsystem.1)Linuxusestoolslikesyslog,rsyslog,andjournaldforcustomizablelogging.2)WindowsusestheEventViewerforcentralizedlogmanagement.3)Linuxisidealforenvironmentsn

Artificial Intelligence (AI) is a term that’s been buzzing around for a while now, from self-driving cars to voice assistants like Siri and Alexa, AI is becoming a part of our everyday lives. But what exactly is AI, and why should Linux users care ab


For someone new to Linux, using it can still feel challenging, even with user-friendly distributions like Ubuntu and Mint. While these distributions simplify many tasks, some manual configuration is often required, but fully harnessing the power of L

In the previous article, we introduced the basics of AI and how it fits into the world of Linux. Now, it’s time to dive deeper and set up your Linux system to start building your first AI model. Whether you’re a complete beginner or have some exper

If you’re looking to manage your server with ease, Kloxo is a great option, as it is free and open-source web hosting control panel that allows you to manage your server and websites with a simple, user-friendly interface. In this guide, we’ll walk

If you’ve ever found yourself in a situation where you’re trying to move a bunch of files and folders, only to be stumped by spaces in the folder names, you’re not alone. Spaces in filenames or folder names can quickly become a frustrat


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

WebStorm Mac version
Useful JavaScript development tools

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

SublimeText3 English version
Recommended: Win version, supports code prompts!

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.
