From 991891e632ca665c8f82f1a126125fe03e54a024 Mon Sep 17 00:00:00 2001 From: Guy Bedford Date: Tue, 27 Aug 2024 14:17:45 -0700 Subject: [PATCH 1/2] add links to consuming projects in readme --- README.md | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index a6f509d..93e95ba 100644 --- a/README.md +++ b/README.md @@ -3,12 +3,20 @@ StarlingMonkey is a [SpiderMonkey](https://spidermonkey.dev/) based JS runtime optimized for use in [WebAssembly Components](https://component-model.bytecodealliance.org/). StarlingMonkey's core builtins target WASI 0.2.0 to support a Component Model based event loop and standards-compliant implementations of key web builtins, including the fetch API, WHATWG Streams, text encoding, and others. To support tailoring for specific use cases, it's designed to be highly modular, and can be readily extended with custom builtins and host APIs. -## Requirements +StarlingMonkey is used as the engine in the following projects: + +* Fastly's [JS Compute](https://github.com/fastly/js-compute-runtime) runtime. +* Fermyon's [Spin JS SDK](https://github.com/fermyon/spin-js-sdk). +* As the JS engine for [ComponentizeJS](https://github.com/bytecodealliance/ComponentizeJS) for creating custom JS Wasm components. + +## Building and Running + +### Requirements The runtime's build is managed by [cmake](https://cmake.org/), which also takes care of downloading the build dependencies. To properly manage the Rust toolchain, the build script expects [rustup](https://rustup.rs/) to be installed in the system. -## Building and Running +### Usage With sufficiently new versions of `cmake` and `rustup` installed, the build process is as follows: @@ -73,7 +81,7 @@ cd cmake-build-release ./componentize.sh ../tests/smoke.js ``` -## Web Platform Tests +### Web Platform Tests To run the [Web Platform Tests](https://web-platform-tests.org/) suite, the WPT runner requires `Node.js` to be installed, and during build configuration the option `ENABLE_WPT:BOOL=ON` must be set. @@ -98,7 +106,7 @@ Custom flags can also be passed to the test runner via `WPT_FLAGS="..."`, for ex WPT_FLAGS="--update-expectations" ctest -R wpt -v ``` -## Configuring available builtins +### Configuring available builtins StarlingMonkey supports enabling/disabling bundled builtins using CMake options. You can get a full list of bundled builtins by running the following shell command: @@ -108,7 +116,7 @@ cmake -P [PATH_TO_STARLING_MONKEY]/cmake/builtins.cmake Note that it's required to include builtins defining all exports defined by the used host API. Using the default WASI 0.2.0 host API, that means including the `fetch_event` builtin. -## Using StarlingMonkey as a CMake sub-project +### Using StarlingMonkey as a CMake sub-project StarlingMonkey can be used as a subproject in a larger CMake project. From 7b9c1fdbe51a2505502969208ecc183f8b3b3d9a Mon Sep 17 00:00:00 2001 From: Guy Bedford Date: Thu, 26 Sep 2024 10:55:09 -0700 Subject: [PATCH 2/2] add adopters --- ADOPTERS.md | 9 +++++++++ README.md | 6 +----- 2 files changed, 10 insertions(+), 5 deletions(-) create mode 100644 ADOPTERS.md diff --git a/ADOPTERS.md b/ADOPTERS.md new file mode 100644 index 0000000..44ef11e --- /dev/null +++ b/ADOPTERS.md @@ -0,0 +1,9 @@ +# StarlingMonkey Adopters + +_If you are using StarlingMonkey in production at your organization, please add your company name to this list. +The list is in alphabetical order._ + +| Organization | Contact | Status | Description of Use | +| - | - | - | - | +| [Fastly](https://www.fastly.com) | [@guybedford](https://github.com/guybedford) | ![production](https://img.shields.io/badge/-production-blue?style=flat) | Fastly's [JS SDK](https://github.com/fastly/js-compute-runtime) for Compute at edge is powered by StarlingMonkey. | +| [Fermyon](https://www.fermyon.com/) | [@tschneidereit](https://github.com/tschneidereit) | ![production](https://img.shields.io/badge/-production-blue?style=flat) | [Fermyon Spin](https://www.fermyon.com/spin) supports serverless Wasm apps, using StarlingMonkey for its [Spin JS SDK](https://github.com/fermyon/spin-js-sdk). | diff --git a/README.md b/README.md index 93e95ba..1bf5ea6 100644 --- a/README.md +++ b/README.md @@ -3,11 +3,7 @@ StarlingMonkey is a [SpiderMonkey](https://spidermonkey.dev/) based JS runtime optimized for use in [WebAssembly Components](https://component-model.bytecodealliance.org/). StarlingMonkey's core builtins target WASI 0.2.0 to support a Component Model based event loop and standards-compliant implementations of key web builtins, including the fetch API, WHATWG Streams, text encoding, and others. To support tailoring for specific use cases, it's designed to be highly modular, and can be readily extended with custom builtins and host APIs. -StarlingMonkey is used as the engine in the following projects: - -* Fastly's [JS Compute](https://github.com/fastly/js-compute-runtime) runtime. -* Fermyon's [Spin JS SDK](https://github.com/fermyon/spin-js-sdk). -* As the JS engine for [ComponentizeJS](https://github.com/bytecodealliance/ComponentizeJS) for creating custom JS Wasm components. +StarlingMonkey is used in production for Fastly's JS Compute platform, and Fermyon's Spin JS SDK. See the [ADOPTERS](ADOPTERS.md) file for more details. ## Building and Running