# Install lunarml with Homebrew, Nix

Standard ML compiler that produces Lua/JavaScript. Version 0.3.0 via Homebrew; verified 2026-06-22.

## Install

```sh
sudo av install brew:lunarml
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install lunarml
```

  Evidence: local Homebrew formula metadata

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#lunarml
```

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

## Package facts

- **Package key:** brew:lunarml
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/lunarml>
- **Version:** 0.3.0
- **Source summary:** Standard ML compiler that produces Lua/JavaScript
- **Homepage:** <https://github.com/minoki/LunarML>
- **Repository:** <https://github.com/minoki/LunarML>
- **Upstream docs:** <https://github.com/minoki/LunarML#readme>
- **License:** MIT
- **Source archive:** <https://github.com/minoki/LunarML/archive/refs/tags/v0.3.0.tar.gz>
- **Last updated:** 2026-06-22T14:05:14-07:00
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- lunarml (cli)
- lunarml (alias)

## Dependencies

- gmp

## Build dependencies

- mlton

## 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.3.0
- Package-manager updated: 2026-06-22
- Local data: ok
- Upstream repository: https://github.com/minoki/LunarML
- Upstream latest detected: v0.3.0 (current)
## Project history and usage

LunarML is a Standard ML compiler whose distinguishing package-manager pitch is that it emits Lua and JavaScript rather than native code. Its upstream README describes it as a compiler for the full SML '97 language with signatures, functors, a subset of the Basis Library, an ML Basis system for multi-file projects, and targets for Lua, LuaJIT, Node.js, and web JavaScript.

### Project history

The public GitHub repository was created in 2018 under ARATA Mizuki's minoki account. The project has since developed as a niche cross-runtime Standard ML implementation: the documentation is maintained as Sphinx/Read the Docs material, and the README documents prebuilt binaries, Docker usage, and source builds via MLton.

By the v0.3.0 release line, LunarML packaged the compiler as native binaries as well as precompiled Lua and Node.js scripts. The README warns that script-compiled LunarML is slower than the native binary, which reflects the project's practical packaging concern: making the compiler runnable in several host environments while preserving a serious-use native path.

### Adoption history

LunarML remains a specialist language-tooling package rather than a mass-market runtime. The supplied package metadata lists Homebrew and Nix packages, and the GitHub repository metadata shows a modest but visible audience for an SML-to-Lua/JavaScript compiler.

Its adoption story is strongest among language implementers and users who want Standard ML code to run in ecosystems where Lua or JavaScript is the deployment substrate.

### How it is used

The core command is `lunarml compile [options] input.(sml|mlb)`. Users choose targets such as Lua 5.3+, LuaJIT, Node.js ES modules, or web JavaScript, and can produce executable-style programs or modules.

The README also documents `check`, `help`, and `version` subcommands, Docker invocation, `make install`, and build/test targets for Lua, LuaJIT, and Node.js back ends.

### Why package nerds care

LunarML is interesting to package nerds because it packages a traditionally academic language in a portable, script-friendly way. A Homebrew or Nix install can turn SML source into Lua or JavaScript output without requiring users to assemble a full bespoke compiler toolchain.

The package also shows the tension common in language packages: convenient precompiled scripts exist for reach, while the upstream docs still steer serious users toward the native compiler.

### Timeline

- 2018: GitHub repository created for minoki/LunarML.
- 2024: Read the Docs documentation copyright year indicates maintained public documentation.
- 2025: v0.3.0 release published with documented prebuilt binary workflows.

### Related projects

- MLton is documented as the build-time Standard ML compiler needed to build LunarML.
- Lua, LuaJIT, Node.js, and web JavaScript are documented output targets.
- The ML Basis system is documented as LunarML's multi-file project mechanism.

### Sources

- <https://api.github.com/repos/minoki/LunarML>
- <https://api.github.com/repos/minoki/LunarML/releases/latest>
- <https://github.com/minoki/LunarML#readme>
- <https://lunarml.readthedocs.io/en/latest/>
- 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:** lunarml
- **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 - lunarml: normalized package name match | nixpkgs package indexes: pkgs/by-name/lu/lunarml/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.
- [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.
- [mlton](https://www.automicvault.com/pkg/brew/mlton/) - 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.
- [emscripten](https://www.automicvault.com/pkg/brew/emscripten/) - Shares av.db curated category or tags: cli, compiler, developer-tools, javascript.
- [swc](https://www.automicvault.com/pkg/brew/swc/) - Shares av.db curated category or tags: cli, compiler, developer-tools, javascript.
- [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.
- [roblox-ts](https://www.automicvault.com/pkg/brew/roblox-ts/) - Shares av.db curated category or tags: cli, compiler, developer-tools.
- [sdcc](https://www.automicvault.com/pkg/brew/sdcc/) - Shares av.db curated category or tags: cli, compiler, developer-tools.
- [shc](https://www.automicvault.com/pkg/brew/shc/) - Shares av.db curated category or tags: cli, compiler, developer-tools.
- [smlfmt](https://www.automicvault.com/pkg/brew/smlfmt/) - Local package facts share a topical domain. Shared terms: cli, developer, developer-tools, gmp, ml.
- [smlpkg](https://www.automicvault.com/pkg/brew/smlpkg/) - Local package facts share a topical domain. Shared terms: cli, developer, developer-tools, gmp, ml.

## Combined YAML source

View the package source record on GitHub. [combined/lunarml.yml](https://github.com/automic-vault/db/blob/main/combined/lunarml.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
