← All projects
Embeddable JavaScript

JS++

An embeddable JavaScript engine and native library for hosts that need JavaScript execution without an external runtime process.

Visit JS++ ↗
What it is

JavaScript as an embeddable component, not only a standalone runtime.

JS++ is Gantry’s embeddable JavaScript runtime project. It is intended for native hosts that need to execute JavaScript inside another application through C/C++-friendly library interfaces rather than launching a separate runtime process.

Packaging is part of the product: CLI, static/shared library forms and public-header consumers are validated alongside the engine. An embeddable runtime that only works inside its own repository is not very useful to an actual host application.

Lifecycle hardening is equally important. Repeated VM creation, execution and teardown, heap behaviour, embedding-host tests and sanitizer evidence target the class of problems that appear only when an engine becomes a library inside somebody else’s process.

What you get

Useful capability without mandatory complexity.

The project stays focused on its own job; the surrounding Gantry tools remain optional.

Embeddable engine

Create a runtime from a native host and execute JavaScript without an external service.

C/C++ integration

Expose library packaging and public headers suitable for ordinary native consumers.

CLI + libraries

Keep a command-line surface for direct use while validating static/shared library deployment paths.

Lifecycle evidence

Test repeated create/run/destroy behaviour, heap ownership and host interaction rather than validating only one-shot scripts.

Typical workflow

Start with the shortest path.

Advanced deployment or integration features appear only when the workflow actually needs them.

  1. 01

    Use the CLI for direct engine experiments and regression cases.

  2. 02

    Use the library interface when JavaScript needs to live inside another native application.

  3. 03

    Run embedding/lifecycle tests as part of changes that touch VM, memory or host boundaries.

  4. 04

    Use external conformance evidence to decide which ECMAScript families deserve the next implementation work.

Inside Gantry

Connections that remove real hand-off friction.

Each product already owns one side of these workflows. The integration exists to remove duplicate navigation, setup or context.

Works with

TSCC

TSCC and JS++ can meet at the emitted-JavaScript boundary: one focuses on compiling TypeScript-oriented source, the other on executing JavaScript inside a native host. That makes cross-checking useful without collapsing the two into one repository.

Explore TSCC →
Works with

Cortex

Engine debugging and conformance classification create exactly the kind of repetitive investigation Cortex can accelerate while the actual runtime remains deterministic native code.

Explore Cortex →
Works with

Warden

Warden provides a remote environment for building the CLI/libraries and running long test or sanitizer workflows on a host machine.

Explore Warden →
Access

Local tool, no my.* indirection.

JS++ is primarily a CLI or embeddable native tool rather than a persistent web service. A my.* instance registry would add a choice where there is no running instance to choose.

It still belongs to Gantry Tools, appears in the project directory and can be exposed from a configurable my.gantry.cv launcher if somebody wants quick access to its website or documentation.

Why my.* is reserved for running applications →
Good fit

Where JS++ earns its place.

Native application scripting

Add JavaScript programmability to a C/C++ host.

Runtime experimentation

Develop and measure language/runtime behaviour through a standalone CLI.

Embedded automation

Run controlled JavaScript inside another Gantry or non-Gantry native tool when a scripting layer is useful.

Project website

Explore JS++.

Project-specific installation, commands and release details live on the project site.

Open JS++ ↗