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-unknowncompatibility;- 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.