@pulseengine/synth
v0.43.0
Published
synth — a WebAssembly-to-ARM/RISC-V/AArch64 compiler with mechanized correctness proofs. Produces bare-metal ELF binaries for embedded targets.
Maintainers
Readme
@pulseengine/synth
synth — a WebAssembly-to-native compiler with mechanized correctness proofs
in Rocq. It compiles WebAssembly to bare-metal ELF binaries for ARM Cortex-M
(Thumb-2), Cortex-R5 (A32), RISC-V (RV32IMAC), and host-native AArch64.
This npm package distributes the synth CLI binary so it can be installed and
invoked from any Node.js environment. It complements the crates.io
distribution (cargo install synth-cli).
Install
# One-shot (no install)
npx @pulseengine/synth --version
# Global install
npm install -g @pulseengine/synth
synth --versionHow it works
There are no third-party dependencies. On install, the postinstall hook:
- Detects your platform and architecture.
- Downloads the matching
synth-v<version>-<triple>.tar.gzfrom the GitHub Release whose tag equals this package's version. - Verifies the tarball's SHA-256 against the release's signed
SHA256SUMS.txtmanifest — a mismatch aborts the install. - Extracts the
synthbinary into the package'sbin/directory.
The package version tracks the synth release version, so
npm install @pulseengine/[email protected] fetches the v0.38.0 binaries.
Set SYNTH_NPM_SKIP_DOWNLOAD=1 to skip the download (e.g. air-gapped CI where
the binary is provided out of band).
Supported platforms
Mirrors the release build matrix (no Windows build):
darwin-arm64—aarch64-apple-darwindarwin-x64—x86_64-apple-darwinlinux-arm64—aarch64-unknown-linux-gnulinux-x64—x86_64-unknown-linux-gnu
Binaries are pre-built and published alongside each GitHub release at https://github.com/pulseengine/synth/releases. On an unsupported platform, install from source:
cargo install --git https://github.com/pulseengine/synth synth-cliLicense
Apache-2.0. See the repository for source, documentation, and issues.
