StarlingMonkey icon indicating copy to clipboard operation
StarlingMonkey copied to clipboard

Add Rust bindings for the runtime and the SpiderMonkey engines

Open tschneidereit opened this issue 6 months ago • 1 comments

This PR introduces rust-bindgen generated bindings for the StarlingMonkey runtime itself, as well as generated bindings and higher-level abstractions building on those for the SpiderMonkey engine.

The latter are derived from the Servo project's mozjs crate and share much of the code. The build system is substantially overhauled though to enable direct use of the Bytecode Alliance's fork of the repository containing SpiderMonkey, instead of having to update tarball based source code drops.

To ensure compliance with mozjs's license and easy code movement between files, all Rust code in the core runtime is licensed under the MPL2 instead of the Bytecode Alliance's default Apache 2.0 with LLVM exceptions. At the board meeting on 2024-07-25, the BA's board approved a license exception to permit use of the MPL2 for part or all of the StarlingMonkey project, as required by our IP policy.

tschneidereit avatar Aug 01 '24 10:08 tschneidereit