Skip to content

Commit

Permalink
add links to consuming projects in readme (#130)
Browse files Browse the repository at this point in the history
  • Loading branch information
guybedford authored Sep 27, 2024
1 parent 1a8077d commit afcb458
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 5 deletions.
9 changes: 9 additions & 0 deletions ADOPTERS.md
Original file line number Diff line number Diff line change
@@ -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). |
14 changes: 9 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,16 @@
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 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

### 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:

Expand Down Expand Up @@ -73,7 +77,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.

Expand All @@ -98,7 +102,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:

Expand All @@ -108,7 +112,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.

Expand Down

0 comments on commit afcb458

Please sign in to comment.