Bun (software)

Last updated
Bun
Original author(s) Jarred Sumner
Developer(s) Oven
Initial releaseSeptember 14, 2021;2 years ago (2021-09-14) [1]
Stable release
1.1.26 [2]   OOjs UI icon edit-ltr-progressive.svg / 24 August 2024;7 days ago (24 August 2024)
Repository github.com/oven-sh/bun
Written in Zig, C++, TypeScript, C, JavaScript
Operating system Linux, macOS, Windows
Type Runtime environment
License MIT license [3]
Website bun.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.

Contents

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]

Funding

On August 24, 2022, Oven, the company behind Bun, announced it had raised $7 million in funding. The round was led by Kleiner Perkins, with participation from Guillermo Rauch, Y Combinator, and others. [12]

Related Research Articles

<span class="mw-page-title-main">JavaScript</span> High-level programming language

JavaScript, often abbreviated as JS, is a programming language and core technology of the Web, alongside HTML and CSS. 99% of websites use JavaScript on the client side for webpage behavior.

ECMAScript is a standard for scripting languages, including JavaScript, JScript, and ActionScript. It is best known as a JavaScript standard intended to ensure the interoperability of web pages across different web browsers. It is standardized by Ecma International in the document ECMA-262.

In computing, a solution stack or software stack is a set of software subsystems or components needed to create a complete platform such that no additional software is needed to support applications. Applications are said to "run on" or "run on top of" the resulting platform.

A foreign function interface (FFI) is a mechanism by which a program written in one programming language can call routines or make use of services written or compiled in another one. An FFI is often used in contexts where calls are made into a binary dynamic-link library.

.properties is a file extension for files mainly used in Java-related technologies to store the configurable parameters of an application. They can also be used for storing strings for Internationalization and localization; these are known as Property Resource Bundles.

<span class="mw-page-title-main">Aptana</span> Text editor

Aptana, Inc. is a company that makes web application development tools for use with a variety of programming languages. Aptana's main products include Aptana Studio, Aptana Cloud and Aptana Jaxer.

Svelte is a free and open-source component-based front-end software framework, and language created by Rich Harris and maintained by the Svelte core team members.

V8 is a JavaScript and WebAssembly engine developed by Google for its Chrome browser. V8 is free and open-source software that is part of the Chromium project and also used separately in non-browser contexts, notably the Node.js runtime system.

<span class="mw-page-title-main">Node.js</span> JavaScript runtime environment

Node.js is a cross-platform, open-source JavaScript runtime environment that can run on Windows, Linux, Unix, macOS, and more. Node.js runs on the V8 JavaScript engine, and executes JavaScript code outside a web browser.

CommonJS is a project to standardize the module ecosystem for JavaScript outside of web browsers.

npm JavaScript package manager

npm is a package manager for the JavaScript programming language maintained by npm, Inc., a subsidiary of GitHub. npm is the default package manager for the JavaScript runtime environment Node.js and is included as a recommended feature in the Node.js installer.

<span class="mw-page-title-main">MEAN (solution stack)</span> JavaScript software stack

MEAN is a source-available JavaScript software stack for building dynamic web sites and web applications. A variation known as MERN replaces Angular with React.js front-end, and another named MEVN use Vue.js as front-end.

<span class="mw-page-title-main">OpenFL</span> Software framework for video games

OpenFL is a free and open-source software framework and platform for the creation of multi-platform applications and video games. OpenFL applications can be written in Haxe, JavaScript, or TypeScript, and may be published as standalone applications for several targets including iOS, Android, HTML5, Windows, macOS, Linux, WebAssembly, Flash, AIR, PlayStation 4, PlayStation 3, PlayStation Vita, Xbox One, Wii U, TiVo, Raspberry Pi, and Node.js.

<span class="mw-page-title-main">React (JavaScript library)</span> JavaScript library for building user interfaces

React is a free and open-source front-end JavaScript library for building user interfaces based on components by Facebook Inc. It is maintained by Meta and a community of individual developers and companies.

NativeScript provides platform APIs directly to the JavaScript runtime for a rich TypeScript development experience. As an open-source framework to develop apps for iOS, visionOS and Android platforms combining a best of all worlds approach marrying familiar Web approaches like CSS and view templating with common platform languages it delivers a liberating toolset for developers. It was originally conceived and developed by Bulgarian company Telerik, later acquired by Progress Software. At the end of 2019 responsibility for the NativeScript project was taken over by long-time Progress partner, nStudio. In December 2020, nStudio also oversaw the induction of NativeScript into OpenJS Foundation as an Incubating Project. NativeScript apps are built using JavaScript, or by using any programming language that transpiles to JavaScript, such as TypeScript. NativeScript supports the Angular and Vue JavaScript frameworks. Mobile applications built with NativeScript result in fully native apps, which use the same APIs as if they were developed in Xcode or Android Studio. Additionally, software developers can re-purpose third-party libraries from CocoaPods, Maven, and npm.js in their mobile applications without the need for wrappers.

Angular is a TypeScript-based free and open-source single-page web application framework. It is developed by Google and by a community of individuals and corporations. Angular is a complete rewrite from the same team that built AngularJS. The Angular ecosystem consists of a diverse group of over 1.7 million developers, library authors, and content creators. According to the Stack Overflow Developer Survey, Angular is one of the most commonly used web frameworks.

Next.js is an open-source web development framework created by the private company Vercel providing React-based web applications with server-side rendering and static website generation.

<span class="mw-page-title-main">Deno (software)</span> Secure JavaScript and TypeScript runtime

Deno is a runtime for JavaScript, TypeScript, and WebAssembly that is based on the V8 JavaScript engine and the Rust programming language. Deno was co-created by Ryan Dahl, who also created Node.js.

References

  1. "Releases, oven-sh/bun, Github". GitHub . Retrieved 14 September 2021.
  2. "Release 1.1.26". 24 August 2024. Retrieved 24 August 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. 1 2 "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. 1 2 "Bun 1.1". Bun. 2024-04-01. Archived from the original on 2024-06-07. Retrieved 2024-04-03.
  11. 1 2 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.
  12. https://x.com/bunjavascript/status/1562248114773565440