macOS
brew install emscriptenlocal Homebrew formula metadata
sudo port install emscriptenMacPorts ports tree · lang/emscripten/Portfile · source: api.github.com
brew
LLVM bytecode to JavaScript compiler. Version 6.0.2 via Homebrew; verified 2026-07-02.
install
brew install emscriptenlocal Homebrew formula metadata
sudo port install emscriptenMacPorts ports tree · lang/emscripten/Portfile · source: api.github.com
sudo apt install emscriptenDebian stable package indexes · emscripten · source: deb.debian.org
nix profile install nixpkgs#emscriptennixpkgs package indexes · emscripten · source: raw.githubusercontent.com
sudo pacman -S emscriptenArch Linux sync databases · emscripten · source: geo.mirror.pkgbuild.com
choco install emscriptenChocolatey community package catalog · emscripten · source: community.chocolatey.org
scoop install main/emscriptenScoop official bucket manifest trees · bucket/emscripten.json · source: api.github.com
overview
LLVM bytecode to JavaScript compiler
history
Emscripten is the long-running LLVM-based toolchain that made C and C++ code practical to ship into JavaScript and then WebAssembly environments. Its README describes it as compiling C and C++ to WebAssembly using LLVM and Binaryen, with output that runs on the web, in Node.js, and in standalone wasm runtimes.
For package users, Emscripten is not just one compiler binary: it is a full porting toolchain with `emcc`, `em++`, build-system wrappers, archive tools, runtime helpers, ports, and a cache. Installing it from a package manager gives developers a local system toolchain, while the project itself still recommends the Emscripten SDK as the easiest way to get started.
The public GitHub repository dates to 2011, and the project grew around the idea that LLVM IR could be lowered into browser-executable output. As WebAssembly became the standard target, Emscripten's documented model shifted toward producing a wasm module plus JavaScript loader code, while still retaining browser, Node.js, and runtime integration layers.
The Emscripten README ties the project closely to LLVM, Binaryen, Clang, OpenGL, SDL2, and the broader portable-native-code ecosystem. Its license notes also reflect the project's LLVM relationship, including the later switch to the LLVM wasm backend.
Emscripten became important because it turned existing native codebases into web-deployable artifacts rather than forcing rewrites. The project documentation points to large graphical and application ports, including Unity WebGL and Google Earth, as examples of the kind of portable API support it targets.
Its command-line shape made it familiar to Unix package users: `emcc` is presented as something to run like `gcc` or `clang`, and companion tools such as `emcmake` and `emconfigure` let existing C/C++ build systems cross-compile with limited ceremony.
Typical use starts with compiling a C or C++ file through `emcc`, producing JavaScript plus a WebAssembly module, or generating an HTML harness for browser testing. Larger projects commonly enter through build wrappers such as `emcmake`, `emconfigure`, and `emmake`.
The toolchain matters beyond browsers because Emscripten documents output for Node.js, Deno, Bun, and wasm runtimes. That makes it a package-manager fixture for developers who need reproducible local builds of wasm artifacts from native code.
Emscripten is one of the canonical examples of a package that is both a compiler and a small ecosystem: it brings a sysroot, ports, compiler frontends, JS glue generation, cache behavior, and version-sensitive ABI expectations. Its changelog explicitly warns that ABI compatibility is not guaranteed across versions and that rebuilds may be needed after upgrades.
For maintainers, Emscripten is interesting because it sits at the crossing of LLVM release behavior, browser platform changes, WebAssembly proposals, and ordinary package-manager expectations. Keeping it packaged means tracking a fast-moving compiler stack while preserving the simple user promise of `emcc hello.c -o hello.js`.
security posture
narrow executable package without higher-risk signals.
green risk · low confidence · appliance
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
local files
These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.
Config paths the tool may read or write during local use.
.emscripten~/.emscripten$EM_CONFIGexecutables
| Command | Kind | Exposure | Note |
|---|---|---|---|
bootstrap | cli | global executable | |
em++ | cli | global executable | |
em-config | cli | global executable | |
emar | cli | global executable | |
embuilder | cli | global executable | |
emcc | cli | global executable | |
emcmake | cli | global executable | |
emconfigure | cli | global executable | |
emdwp | cli | global executable | |
emmake | cli | global executable | |
emnm | cli | global executable | |
empath-split | cli | global executable | |
emprofile | cli | global executable | |
emranlib | cli | global executable | |
emrun | cli | global executable | |
emscan-deps | cli | global executable | |
emscons | cli | global executable | |
emsize | cli | global executable | |
emstrip | cli | global executable | |
emsymbolizer | cli | global executable | |
wasm32-clang | cli | global executable | |
wasm32-clang++ | cli | global executable | |
wasm32-wasi-clang | cli | global executable | |
wasm32-wasi-clang++ | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
https://github.com/emscripten-core/emscripten
install metadata
| Package key | brew:emscripten |
|---|---|
| Version | 6.0.2 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/emscripten |
| Homepage | https://emscripten.org/ |
| Repository | https://github.com/emscripten-core/emscripten |
| Upstream docs | https://emscripten.org/docs |
| License | Apache-2.0 AND (Apache-2.0 WITH LLVM-exception) AND (MIT OR NCSA) |
| Source archive | https://github.com/emscripten-core/emscripten/archive/refs/tags/6.0.2.tar.gz |
| Last updated | 2026-07-02T02:30:46Z |
| Pulse | updated |
| Dependencies | node, openjdk, python@3.14, yuicompressor |
| Build dependencies | cmake |
| Bottle | available (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux) |
| Homebrew post-install | defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | emscripten |
| 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 |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
emscripten 3.1.69+dfsg-3
LLVM-to-JavaScript Compiler
sudo apt install emscriptenemscripten-doc 3.1.69+dfsg-3
LLVM-to-JavaScript Compiler (documentation)
sudo apt install emscripten-docemscripten
nix profile install nixpkgs#emscriptenemscripten 3.1.6~dfsg-7
LLVM-to-JavaScript Compiler
sudo apt install emscriptenemscripten-doc 3.1.6~dfsg-7
LLVM-to-JavaScript Compiler
sudo apt install emscripten-docemscripten 6.0.0-1
Compile C and C++ into highly-optimizable JavaScript for the web
sudo pacman -S emscriptenemscripten
sudo port install emscriptenemscripten
choco install emscriptenmain/emscripten
scoop install main/emscriptenem
sudo port install emem
nix profile install nixpkgs#emsource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.