Home > Engineering > Substrate > Bare Runtime > Platform Support

Bare Platform Support


Tier 1 — Prebuilds, CI-tested

Failures block CI. Prebuilt binaries provided via npm.

Platform Architectures Minimum Version
Linux arm64, x64 >= 5.15, glibc >= 2.35
Android arm, arm64, ia32, x64 >= 10
macOS arm64, x64 >= 12.0
iOS arm64, x64 (simulator) >= 14.0
Windows arm64, x64 >= 10

Tier 2 — Known to work, no CI

Regressions possible between releases.

Platform Architectures Minimum Version
Linux arm64, x64 >= 5.10, musl >= 1.2
Linux arm, ia32 >= 5.10, musl >= 1.2
Linux riscv64 >= 6.8, glibc >= 2.39
Linux riscv64 >= 6.6, musl >= 1.2
Linux mips, mipsel >= 5.10, musl >= 1.2

Building from Source

npm i -g bare-make
npm i
bare-make generate
bare-make build

Output:

  • build/bin/bare(.exe)
  • build/libbare.(a|lib)
  • build/(lib)bare.(dylib|dll|lib)

Compile options via --define:

  • BARE_ENGINE — JS engine (default: libjs/V8)
  • BARE_PREBUILDS — enable prebuilds (default: ON)
  • BARE_MEMORY_LIMIT — JS heap limit (default: 0, unlimited)

Embedding (C API)

Bare is designed for embedding. Clean C API via bare.h:

#include <bare.h>
#include <uv.h>

bare_t *bare;
bare_setup(loop, platform, &env, argc, argv,
           options, &bare);
bare_load(bare, filename, source, &module);
bare_run(bare, UV_RUN_DEFAULT);

int exit_code;
bare_teardown(bare, UV_RUN_DEFAULT, &exit_code);

Mobile embedding examples:

  • https://github.com/holepunchto/bare-android
  • https://github.com/holepunchto/bare-ios

Source: https://github.com/holepunchto/bare