[READ-ONLY] Mirror of https://github.com/crutchcorn/binarrow. An experimental browser runtime for AArch64 Linux ELF executables
binarrow docs licensing.md
3.5 kB · 40 lines
Markdown
at main

Licensing #

The project source is available under MIT OR Apache-2.0. This is an engineering inventory, not legal advice.

Dependency admission #

Before adopting a foundational emulator, decoder, ABI source, runtime, or toolchain component, record:

  • exact version or Git revision;
  • declared and detected licenses;
  • required notices and source-offer obligations;
  • whether code is linked, modified, copied, or used only as a behavioral reference;
  • transitive dependencies and native-only assumptions;
  • wasm32-unknown-unknown compatibility;
  • maintenance ownership if a fork is required.

cargo deny check enforces the current Rust allowlist and rejects unknown registries and Git sources. The pinned Icicle repository is the sole explicit Git-source exception. Its selected leaf manifests omit the workspace license field, so deny.toml clarifies MIT OR Apache-2.0 against checksums of the repository's two license files. CI also audits production web dependencies at high severity or above.

Current third-party code #

Component Purpose License Source form
wasm-encoder Generate the browser Memory64 fixture Apache-2.0 WITH LLVM-exception Rust dependency
wasmparser Validate generated WebAssembly in tests Apache-2.0 WITH LLVM-exception Rust dev dependency
object Parse ELF format, architecture, and image-kind metadata MIT OR Apache-2.0 Rust dependency with only elf, read_core, and std features
libfuzzer-sys Exercise the ELF byte parser with generated inputs (MIT OR Apache-2.0) AND NCSA Isolated fuzz-workspace dependency with its own policy file
wasm-feature-detect Canonical browser feature probes Apache-2.0 JavaScript dependency
wasm-bindgen and wasm-bindgen-cli-support Rust browser ABI and reproducible JavaScript/TypeScript glue generation MIT OR Apache-2.0 Rust runtime and repository-local build-tool dependencies
Vite, TypeScript, Playwright Build, type-check, and test the probe MIT / Apache-2.0 Development dependencies
unicode-ident Unicode identifier tables used by the wasm-bindgen macro toolchain (MIT OR Apache-2.0) AND Unicode-3.0 Transitive Rust dependency
foldhash Hashing used transitively by wasmparser/walrus in the binding generator Zlib Transitive Rust build-tool dependency
Icicle pcode, sleigh-runtime, and sleigh-compile Production AArch64 decode/lift input behind project-owned state and operations MIT OR Apache-2.0 Pinned Git dependencies; no copied Rust source
Other selected Icicle components Native CPU/interpreter feasibility and future semantic reference MIT OR Apache-2.0 Pinned isolated experiment; not in the production graph
Ghidra AArch64 language data Production AArch64 decode and semantics specification Apache-2.0 Pinned vendored source closure with retained LICENSE, NOTICE, certification manifest, and provenance README

Refresh this table whenever production or foundational dependencies change. Toolchain and guest-runtime distribution manifests will be tracked separately once binary assets are introduced.

Architecture references #

Implementations may use public Arm and Linux specifications as behavioral sources. Do not copy specification prose, diagrams, pseudocode, or GPL implementation code into the permissive project core. ADR-0001 must include the full Icicle license and transitive-dependency review before any adoption decision.