finds.dev← search

// the find

boa-dev/boa

★ 7,303 · Rust · MIT · updated Jun 2026

Boa is an embeddable Javascript engine written in Rust.

Boa is a JavaScript engine written in Rust, designed to be embedded in Rust applications. It passes over 90% of the ECMAScript test262 suite and ships as a set of composable crates (parser, AST, engine, GC) plus a WASM build. It's for Rust developers who need to run or sandbox JS without pulling in V8.

1. The crate decomposition is genuinely well-thought-out — you can take just `boa_parser` and `boa_ast` without dragging in the whole runtime, which is useful for tooling. 2. Test262 integration is first-class: there's a dedicated CI workflow and a public conformance dashboard, so you can see exactly what's broken rather than guessing. 3. `Intl` support is real — Collator, DateTimeFormat, NumberFormat, Segmenter — backed by ICU4X, not stubbed out. Most embeddable engines skip this entirely. 4. The custom GC (`boa_gc`) means they're not fighting with Rust's borrow checker via unsafe pointer soup; the tracing GC is a deliberate design choice that pays off in correctness.

1. Performance is the elephant in the room — their own benchmarks compare against V8, and the gap is not small. Fine for scripting config files or running small plugins; not fine for anything compute-heavy. 2. No event loop or async I/O in the engine itself — `boa_runtime` adds some WebAPI primitives but you're on your own wiring up a real async runtime. If your JS uses Promises heavily in an async context, expect to build plumbing. 3. Still 0.x versioning after years of development, which means the embedding API has broken and will break again — pinning a version and upgrading is real work. 4. No JIT. It's a bytecode interpreter, which is fine for the use cases it targets, but the README doesn't make this limitation obvious to someone expecting V8-like throughput.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →