Add Rust bindings for the runtime and the SpiderMonkey engines #103
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.