Esbuild

Last updated
esbuild
Developer(s) Evan Wallace  OOjs UI icon edit-ltr-progressive.svg
Stable release
0.20.0 [1]   OOjs UI icon edit-ltr-progressive.svg / 27 January 2024;10 days ago (27 January 2024)
Repository
Written in Go   OOjs UI icon edit-ltr-progressive.svg
Operating system Cross-platform  OOjs UI icon edit-ltr-progressive.svg
Type JavaScript bundler
License MIT License   OOjs UI icon edit-ltr-progressive.svg
Website Official website OOjs UI icon edit-ltr-progressive.svg

esbuild is a free and open-source module bundler and minifier for JavaScript written by Evan Wallace. [2] [3] Written in Go instead of JavaScript, esbuild claims to be "10 to 100 times" faster than other bundlers by using parallelism and shared memory usage. [4] [5] [6] [7] It supports TypeScript, JSX, tree-shaking and is extensible through plugins.

Contents

Usage

esbuild is used in Vite, a front-end build-tool and development server, and the Phoenix Framework. It is included as a bundler for Angular since v17, [8] Ruby on Rails since v7, [9] and for Netlify Functions. [10]

See also

Related Research Articles

Server-side scripting is a technique used in web development which involves employing scripts on a web server which produces a response customized for each user's (client's) request to the website. Scripts can be written in any of a number of server-side scripting languages that are available. Server-side scripting is distinguished from client-side scripting where embedded scripts, such as JavaScript, are run client-side in a web browser, but both techniques are often used together. The alternative to either or both types of scripting is for the web server itself to deliver a static web page.

In software engineering, the terms frontend and backend refer to the separation of concerns between the presentation layer (frontend), and the data access layer (backend) of a piece of software, or the physical infrastructure or hardware. In the client–server model, the client is usually considered the frontend and the server is usually considered the backend, even when some presentation work is actually done on the server itself.

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 web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs. Web frameworks provide a standard way to build and deploy web applications on the World Wide Web. Web frameworks aim to automate the overhead associated with common activities performed in web development. For example, many web frameworks provide libraries for database access, templating frameworks, and session management, and they often promote code reuse. Although they often target development of dynamic web sites, they are also applicable to static websites.

TypeScript is a free and open-source high-level programming language developed by Microsoft that adds static typing with optional type annotations to JavaScript. It is designed for the development of large applications and transpiles to JavaScript. Because TypeScript is a superset of JavaScript, all JavaScript programs are syntactically valid TypeScript, but they can fail to type-check for safety reasons.

Svelte is a free and open-source front-end component framework and language created by Rich Harris and maintained by the Svelte core team members. Svelte is not a monolithic JavaScript library imported by applications: instead, Svelte compiles HTML templates to specialized code that manipulates the DOM directly, which may reduce the size of transferred files and give better client performance. Application code is also processed by the compiler, inserting calls to automatically recompute data and re-render UI elements when the data they depend on is modified. This also avoids the overhead associated with runtime intermediate representations, such as virtual DOM, unlike traditional frameworks which carry out the bulk of their work at runtime, i.e. in the browser.

Heroku is a cloud platform as a service (PaaS) supporting several programming languages. As one of the first cloud platforms, Heroku has been in development since June 2007, when it supported only the Ruby programming language, but now also supports Java, Node.js, Scala, Clojure, Python, PHP, and Go. For this reason, Heroku is said to be a polyglot platform as it has features for a developer to build, run and scale applications in a similar manner across most of these languages. Heroku was acquired by Salesforce in 2010 for $212 million.

<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.

CoffeeScript is a programming language that compiles to JavaScript. It adds syntactic sugar inspired by Ruby, Python, and Haskell in an effort to enhance JavaScript's brevity and readability. Specific additional features include list comprehension and destructuring assignment.

<span class="mw-page-title-main">Cloud9 IDE</span> Online integrated development environment

Cloud9 IDE is an Online IDE, published as open source from version 2.0, until version 3.0. It supports multiple programming languages, including C, C++, PHP, Ruby, Perl, Python, JavaScript with Node.js, and Go.

Yeoman is an open source client-side scaffolding tool for web applications. Yeoman runs as a command-line interface written for Node.js and combines several functions into one place, such as generating a starter template, managing dependencies, running unit tests, providing a local development server, and optimizing production code for deployment.

<span class="mw-page-title-main">Ember.js</span>

Ember.js is an open-source JavaScript web framework that utilizes a component-service pattern. It is designed with the aim of allowing developers to create scalable single-page web applications by incorporating common idioms, best practices, and patterns from other single-page-app ecosystem patterns into the framework.

<span class="mw-page-title-main">GraalVM</span> Virtual machine software

GraalVM is a Java Development Kit (JDK) written in Java. The open-source distribution of GraalVM is based on OpenJDK, and the enterprise distribution is based on Oracle JDK. As well as just-in-time (JIT) compilation, GraalVM can compile a Java application ahead of time. This allows for faster initialization, greater runtime performance, and decreased resource consumption, but the resulting executable can only run on the platform it was compiled for. It provides additional programming languages and execution modes. The first production-ready release, GraalVM 19.0, was distributed in May 2019. The most recent release is GraalVM for JDK 21, made available in September 2023.

<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">JHipster</span> Web application generator

JHipster is a free and open-source application generator used to quickly develop modern web applications and Microservices using Angular or React and the Spring Framework.

<span class="mw-page-title-main">Sails.js</span> Open-source web framework built on Node.js

Sails.js is a model–view–controller (MVC) web application framework developed atop the Node.js environment, released as free and open-source software under the MIT License. It is designed to make it easy to build custom, enterprise-grade Node.js web applications and APIs. Emulating the MVC architecture of other frameworks, like Ruby on Rails, it offers similar pattern and familiarity, reducing the cognitive burden when switching between other frameworks/languages.

<span class="mw-page-title-main">Netlify</span> American cloud computing company

Netlify is a remote-first cloud computing company that offers a development platform that includes build, deploy, and serverless backend services for web applications and dynamic websites. The platform is built on open web standards, making it possible to integrate build tools, web frameworks, APIs, and various web technologies into a unified developer workflow.

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.

Bun is a JavaScript runtime, package manager, test runner bundler built from scratch using the Zig programming language. It was designed by Jarred Sumner as a drop-in replacement for Node.js. Bun uses JavaScriptCore as the JavaScript engine, unlike Node.js and Deno, which both use V8.

References

  1. "Release v0.20.0".
  2. Couriol, Bruno. "Esbuild JavaScript Bundler Claims 10-100x Faster Bundling Time". InfoQ. Retrieved 10 November 2023.
  3. Rappl, Florian (30 November 2022). Modern Frontend Development with Node.js: A compendium for modern JavaScript web development within the Node.js ecosystem. Packt Publishing Ltd. p. 95. ISBN   978-1-80461-738-0 . Retrieved 10 November 2023. esbuild is quite a new tool that focuses on performance. The key to esbuild's enhanced performance is that it was written from the ground up in the Go...
  4. Tyson, Matthew (26 May 2021). "7 tools transforming JavaScript development". InfoWorld.
  5. Beswick, James (13 July 2022). "Optimizing Node.js dependencies in AWS Lambda | AWS Compute Blog". aws.amazon.com.
  6. 范文杰 (25 June 2021). "Why is esbuild so fast". SegmentFault.
  7. Minnick, Chris (5 April 2023). JavaScript All-in-One For Dummies. John Wiley & Sons. p. 515. ISBN   978-1-119-90685-8. because it's faster (as a result of being written in the Go language).
  8. "Getting started with the Angular CLI's new build system". angular.io.
  9. Krill, Paul (22 September 2021). "Ruby on Rails 7 pousse le no-node pour le bundling JavaScript - Le Monde Informatique". Le Monde informatique (in French). Retrieved 10 November 2023.
  10. Bouças, Eduardo. "Modern, faster Netlify Functions: New bundler and JavaScript features". Netlify.