Bun (software)

Bun
Original author(s)Jarred Sumner
Developer(s)Oven
Initial releaseSeptember 14, 2021; 3 years ago (2021-09-14)[1]
Stable release
1.1.36[2] Edit this on Wikidata / 19 November 2024; 8 days ago (19 November 2024)
Repositorygithub.com/oven-sh/bun
Written inZig, C++, TypeScript, C, JavaScript
Operating systemLinux, macOS, Windows
TypeRuntime environment
LicenseMIT license[3]
Websitebun.sh

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]

  1. ^ "Releases, oven-sh/bun, Github". GitHub. Retrieved 14 September 2021.
  2. ^ "Release 1.1.36". 19 November 2024. Retrieved 20 November 2024.
  3. ^ Sumner, Jarred (2023-07-02). "License". Bun Docs. Archived from the original on 2023-07-06. Retrieved 2023-07-07.
  4. ^ "What is Bun? | Bun Docs". Bun. Archived from the original on 2023-12-11. Retrieved 2024-04-01.
  5. ^ Tyson, Matthew (February 23, 2023). "Explore Bun.js: The all-in-one JavaScript runtime". InfoWorld. Archived from the original on October 4, 2023. Retrieved October 11, 2023.
  6. ^ Omolana, Timilehin (2022-08-02). "What Is Bun.js and Why Is the JavaScript Community Excited About It?". makeuseof.com. Archived from the original on 2023-05-30. Retrieved 2023-05-30.
  7. ^ a b "The Bun Bundler". Bun. 2023-05-16. Archived from the original on 2024-04-03. Retrieved 2024-04-03.
  8. ^ "Bun APIs". Bun Docs. Archived from the original on September 27, 2023. Retrieved September 11, 2023.
  9. ^ "Bun 1.0". bun.sh. Archived from the original on 2024-04-30. Retrieved 2024-04-30.
  10. ^ a b "Bun 1.1". Bun. 2024-04-01. Archived from the original on 2024-06-07. Retrieved 2024-04-03.
  11. ^ a b Anderson, Tim (2024-04-02). "Bun 1.1 released with Windows support, stable WebSocket client and more • DEVCLASS". DEVCLASS. Archived from the original on 2024-04-03. Retrieved 2024-04-03.