Original author(s) | Jarred Sumner |
---|---|
Developer(s) | Oven |
Initial release | September 14, 2021[1] |
Stable release | 1.1.36[2]
/ 19 November 2024 |
Repository | github |
Written in | Zig, C++, TypeScript, C, JavaScript |
Operating system | Linux, macOS, Windows |
Type | Runtime environment |
License | MIT license[3] |
Website | bun |
Bun is a JavaScript runtime, package manager, test runner and bundler built from scratch using the Zig programming language.[4][5] It was designed by Jarred Sumner as a drop-in replacement for Node.js. Bun uses WebKit's JavaScriptCore as the JavaScript engine,[6] unlike Node.js and Deno, which both use V8.
It supports bundling, minifying, server-side rendering (Svelte, Nuxt.js, Vite). Bundling refers to the process of combining multiple files and assets like JavaScript, CSS, and HTML into a single file, or a smaller number of files, to reduce the number of server requests and enhance performance.[7] Minifying is a technique of compressing these files by removing unnecessary characters (like whitespace, comments, etc.) without affecting their functionality, further optimizing website loading times. Bun provides an API to decide whether to preserve some readability by e.g. keeping whitespace.[7]
The runtime supports foreign function interface (FFI), SQLite3, TLS 1.3, and DNS resolution. It also comes bundled in with common tools like file editing, HTTP servers, Websocket, and hashing.[8]
The official Bun 1.0 was released on September 8, 2023.[9]
Since Bun 1.1 the runtime supports Windows 10 and later (along with Linux and MacOS).[10][11] It also introduced a cross-platform Bun Shell for running some Bash commands without extra dependencies.[10][11]