# Install boa with Homebrew, Nix

Embeddable and experimental Javascript engine written in Rust. Version 0.21.1 via Homebrew; verified 2026-06-22.

## Install

```sh
sudo av install brew:boa
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install boa
```

  Evidence: local Homebrew formula metadata

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#boa
```

  Evidence: nixpkgs package indexes: pkgs/by-name/bo/boa/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:boa
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/boa>
- **Version:** 0.21.1
- **Source summary:** Embeddable and experimental Javascript engine written in Rust
- **Homepage:** <https://github.com/boa-dev/boa>
- **Repository:** <https://github.com/boa-dev/boa>
- **Upstream docs:** <https://boajs.dev/docs/intro>
- **License:** MIT OR Unlicense
- **Source archive:** <https://github.com/boa-dev/boa/archive/refs/tags/v0.21.1.tar.gz>
- **Last updated:** 2026-06-22T14:02:54-07:00
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- boa (cli)
- boa (alias)

## Build dependencies

- pkgconf
- rust

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 0.21.1
- Package-manager updated: 2026-06-22
- Local data: ok
- Upstream repository: https://github.com/boa-dev/boa
- Upstream latest detected: v0.21.1 (current)
## Project history and usage

Boa is an embeddable experimental JavaScript engine written in Rust, with a CLI and Rust crates for parsing, interpreting, and embedding ECMAScript.

### Project history

Boa began as Jason Williams's Rust JavaScript-engine experiment. The Boa about page says it was introduced at JSConf EU 2019, and the JSConf EU talk page describes Williams building an engine from scratch in Rust during the previous year.

The project grew into the boa-dev organization and a set of crates centered on boa_engine. Its README describes an experimental lexer, parser, and interpreter that tracks the evolving ECMAScript specification.

### Adoption history

Boa's adoption is mostly developer and embedders' adoption rather than browser adoption. It is carried by Homebrew and Nix and published through Rust's crate ecosystem, where Rust programs can embed it directly.

The project's public releases and blog posts emphasize conformance progress, embeddability, WebAssembly use, and keeping pace with Test262 and ECMAScript changes.

### How it is used

Users can run the boa CLI for experiments, but the more important use case is embedding boa_engine in Rust applications that need JavaScript evaluation without linking to V8.

Boa is also useful for language-engine work: implementers can study parser, runtime, built-in-object, and conformance work in a Rust codebase that is smaller and more approachable than production browser engines.

### Why package nerds care

Boa matters to package nerds because JavaScript engines are usually huge C++ dependencies. A Rust-native, crate-published engine changes the packaging shape for applications that only need embeddable JS semantics.

Its significance is still experimental: package users should not read the Homebrew formula as a Node.js replacement. The interesting part is the long-term Rust ecosystem bet on standards-conforming embeddable scripting.

### Timeline

- 2018-2019: Jason Williams builds a JavaScript engine from scratch in Rust.
- 2019-06: Boa is introduced at JSConf EU 2019.
- 2021-06: Boa v0.12 is announced on the official blog.
- 2021-09: Boa v0.13 blog post highlights embedding in Rust projects and WebAssembly use.
- 2020s: boa-dev continues publishing boa_engine and tracking ECMAScript/Test262 conformance.

### Related projects

- V8, SpiderMonkey, and JavaScriptCore: production browser/server JavaScript engines Boa is often compared against but does not replace.
- QuickJS, MuJS, and Kiesel: smaller embeddable JavaScript engines in adjacent niches.
- Test262: the official ECMAScript conformance suite Boa uses as a progress target.
- Rust crates such as boa_engine and boa_parser: the packaged Rust components behind the CLI and embedding story.

### Sources

- <https://2019.jsconf.eu/jason-williams/lets-build-a-javascript-engine.html>
- <https://boajs.dev/about>
- <https://boajs.dev/blog>
- <https://boajs.dev/docs/intro>
- <https://docs.rs/boa_engine/latest>
- <https://github.com/boa-dev/boa>
- source_facts.package-manager


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** boa
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Nix - boa: normalized package name match | nixpkgs package indexes: pkgs/by-name/bo/boa/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Language runtime packages](https://www.automicvault.com/pkg/language-runtime-packages/) - Matched language runtime, compiler, or interpreter metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [pkgconf](https://www.automicvault.com/pkg/brew/pkgconf/) - Build dependency declared by Homebrew.
- [rust](https://www.automicvault.com/pkg/brew/rust/) - Build dependency declared by Homebrew.
- [jerryscript](https://www.automicvault.com/pkg/brew/jerryscript/) - Shares av.db curated category or tags: cli, ecmascript, engine, javascript, language-runtime.
- [duktape](https://www.automicvault.com/pkg/brew/duktape/) - Shares av.db curated category or tags: cli, ecmascript, javascript, language-runtime.
- [v8](https://www.automicvault.com/pkg/brew/v8/) - Shares av.db curated category or tags: cli, engine, javascript, language-runtime.
- [deno](https://www.automicvault.com/pkg/brew/deno/) - Shares av.db curated category or tags: cli, javascript, language-runtime.
- [fibjs](https://www.automicvault.com/pkg/brew/fibjs/) - Shares av.db curated category or tags: cli, javascript, language-runtime.
- [gjs](https://www.automicvault.com/pkg/brew/gjs/) - Shares av.db curated category or tags: cli, javascript, language-runtime.
- [mujs](https://www.automicvault.com/pkg/brew/mujs/) - Shares av.db curated category or tags: cli, javascript, language-runtime.
- [node](https://www.automicvault.com/pkg/brew/node/) - Shares av.db curated category or tags: cli, javascript, language-runtime.
- [three-body](https://www.automicvault.com/pkg/brew/three-body/) - Both packages touch the same language runtime or ecosystem. Shared terms: cli, language, language-runtime, runtime, rust.

## Combined YAML source

View the package source record on GitHub. [combined/boa.yml](https://github.com/automic-vault/db/blob/main/combined/boa.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
