# Install emscripten with Homebrew, chocolatey, apt, MacPorts, Nix, pacman, scoop

LLVM bytecode to JavaScript compiler. Version 6.0.2 via Homebrew; verified 2026-07-02.

## Install

```sh
sudo av install brew:emscripten
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install emscripten
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install emscripten
```

  Evidence: MacPorts ports tree: lang/emscripten/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- Debian apt (92%):

```sh
sudo apt install emscripten
```

  Evidence: Debian stable package indexes: emscripten from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- Nix (92%):

```sh
nix profile install nixpkgs#emscripten
```

  Evidence: nixpkgs package indexes: emscripten from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix

- pacman (92%):

```sh
sudo pacman -S emscripten
```

  Evidence: Arch Linux sync databases: emscripten from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

### Windows

- Chocolatey (92%):

```sh
choco install emscripten
```

  Evidence: Chocolatey community package catalog: emscripten from http://community.chocolatey.org/api/v2/Packages?$filter=IsLatestVersion&$select=Id&$top=1000&$skiptoken='11','electron'

- Scoop (92%):

```sh
scoop install main/emscripten
```

  Evidence: Scoop official bucket manifest trees: bucket/emscripten.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:emscripten
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/emscripten>
- **Version:** 6.0.2
- **Source summary:** LLVM bytecode to JavaScript compiler
- **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
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- bootstrap (cli)
- em++ (cli)
- em-config (cli)
- emar (cli)
- embuilder (cli)
- emcc (cli)
- emcmake (cli)
- emconfigure (cli)
- emdwp (cli)
- emmake (cli)
- emnm (cli)
- empath-split (cli)
- emprofile (cli)
- emranlib (cli)
- emrun (cli)
- emscan-deps (cli)
- emscons (cli)
- emsize (cli)
- emstrip (cli)
- emsymbolizer (cli)
- wasm32-clang (cli)
- wasm32-clang++ (cli)
- wasm32-wasi-clang (cli)
- wasm32-wasi-clang++ (cli)
- bootstrap (alias)
- em++ (alias)
- em-config (alias)
- emar (alias)
- embuilder (alias)
- emcc (alias)
- emcmake (alias)
- emconfigure (alias)
- emdwp (alias)
- emmake (alias)
- emnm (alias)
- empath-split (alias)
- emprofile (alias)
- emranlib (alias)
- emrun (alias)
- emscan-deps (alias)
- emscons (alias)
- emsize (alias)
- emstrip (alias)
- emsymbolizer (alias)
- wasm32-clang (alias)
- wasm32-clang++ (alias)
- wasm32-wasi-clang (alias)
- wasm32-wasi-clang++ (alias)

## Dependencies

- node
- openjdk
- python@3.14
- yuicompressor

## Build dependencies

- cmake

## Install behavior

- Post-install hook: 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: 6.0.2
- Package-manager updated: 2026-07-02
- Local data: ok
- Upstream repository: https://github.com/emscripten-core/emscripten
- Upstream latest detected: 6.0.2 (current)
## Project history and usage

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.

### Project history

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.

### Adoption history

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.

### How it is used

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.

### Why package nerds care

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

### Timeline

- 2011: Public GitHub repository created for Emscripten.
- 2010s: Emscripten became a common route for porting native C/C++ applications and libraries to the web.
- WebAssembly era: The documented default model centers on producing wasm modules with JavaScript loader code.
- 2026: The 6.x release series continued active development, including toolchain, browser-target, Node.js, and wasm feature changes.

### Related projects

- LLVM and Clang provide the compiler foundation used by Emscripten.
- Binaryen is part of the documented WebAssembly toolchain used by Emscripten.
- SDL2, OpenGL support, Unity WebGL, and Google Earth are cited by the project as examples or beneficiaries of the porting model.
- Rust can integrate with Emscripten through the `wasm32-unknown-emscripten` target.

### Sources

- <https://github.com/emscripten-core/emscripten>
- <https://raw.githubusercontent.com/emscripten-core/emscripten/main/README.md>
- <https://emscripten.org/docs/compiling/WebAssembly.html>
- <https://raw.githubusercontent.com/emscripten-core/emscripten/main/ChangeLog.md>
- <https://api.github.com/repos/emscripten-core/emscripten>


## Security Notes

narrow executable package without higher-risk signals.

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


## Configuration and credential file locations

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.


## Configuration files

- Unix: .emscripten, ~/.emscripten, $EM_CONFIG
## Source Database Details

- **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:** head, stable

## Other Package-Manager Records

- Debian apt - emscripten - 3.1.69+dfsg-3: normalized package name match | Debian stable package indexes: emscripten from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | LLVM-to-JavaScript Compiler | http://emscripten.org/
- Debian apt - emscripten-doc - 3.1.69+dfsg-3: normalized package name match | Debian stable package indexes: emscripten-doc from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | LLVM-to-JavaScript Compiler (documentation) | http://emscripten.org/
- Nix - emscripten: normalized package name match | nixpkgs package indexes: emscripten from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix
- Ubuntu apt - emscripten - 3.1.6~dfsg-7: normalized package name match | Ubuntu 24.04 LTS package indexes: emscripten from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | LLVM-to-JavaScript Compiler | http://emscripten.org/
- Ubuntu apt - emscripten-doc - 3.1.6~dfsg-7: normalized package name match | Ubuntu 24.04 LTS package indexes: emscripten-doc from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | LLVM-to-JavaScript Compiler | http://emscripten.org/
- pacman - emscripten - 6.0.0-1: normalized package name match | Arch Linux sync databases: emscripten from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Compile C and C++ into highly-optimizable JavaScript for the web | https://emscripten.org
- MacPorts - emscripten: normalized package name match | MacPorts ports tree: lang/emscripten/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- Chocolatey - emscripten: normalized package name match | Chocolatey community package catalog: emscripten from http://community.chocolatey.org/api/v2/Packages?$filter=IsLatestVersion&$select=Id&$top=1000&$skiptoken='11','electron'
- Scoop - main/emscripten: normalized package name match | Scoop official bucket manifest trees: bucket/emscripten.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1
- MacPorts - em: installed executable or alias match | MacPorts ports tree: editors/em/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- Nix - em: installed executable or alias match | nixpkgs package indexes: pkgs/by-name/em/em/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1


## Related links

- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [Language runtime packages](https://www.automicvault.com/pkg/language-runtime-packages/) - Matched language runtime, compiler, or interpreter metadata.
- [node](https://www.automicvault.com/pkg/brew/node/) - Runtime dependency declared by Homebrew.
- [openjdk](https://www.automicvault.com/pkg/brew/openjdk/) - Runtime dependency declared by Homebrew.
- [python@3.14](https://www.automicvault.com/pkg/brew/python-3-14/) - Runtime dependency declared by Homebrew.
- [yuicompressor](https://www.automicvault.com/pkg/brew/yuicompressor/) - Runtime dependency declared by Homebrew.
- [cmake](https://www.automicvault.com/pkg/brew/cmake/) - Build dependency declared by Homebrew.
- [closure-compiler](https://www.automicvault.com/pkg/brew/closure-compiler/) - Shares av.db curated category or tags: cli, compiler, developer-tools, javascript.
- [lunarml](https://www.automicvault.com/pkg/brew/lunarml/) - Shares av.db curated category or tags: cli, compiler, developer-tools, javascript.
- [sdcc](https://www.automicvault.com/pkg/brew/sdcc/) - Shares av.db curated category or tags: c, cli, compiler, developer-tools.
- [swc](https://www.automicvault.com/pkg/brew/swc/) - Shares av.db curated category or tags: cli, compiler, developer-tools, javascript.
- [aarch64-elf-gcc](https://www.automicvault.com/pkg/brew/aarch64-elf-gcc/) - Shares av.db curated category or tags: c, c-plus-plus, cli, compiler, developer-tools.
- [bsc](https://www.automicvault.com/pkg/brew/bsc/) - Shares av.db curated category or tags: cli, compiler, developer-tools.
- [cc65](https://www.automicvault.com/pkg/brew/cc65/) - Shares av.db curated category or tags: cli, compiler, developer-tools.
- [distcc](https://www.automicvault.com/pkg/brew/distcc/) - Shares av.db curated category or tags: c, c-plus-plus, cli, compiler, developer-tools.
- [gdbgui](https://www.automicvault.com/pkg/brew/gdbgui/) - Both packages touch the same language runtime or ecosystem. Shared terms: c, c-plus-plus, cli, developer, developer-tools.

## Combined YAML source

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


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated configuration and credential file locations
- 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
