JavaScript & TypeScript runtime

Secure by default.Every core, measured.

A JavaScript & TypeScript runtime written in Rust. Web standards first, Node compatibility optional.

Build from source
cargo build --release -p velyr-cli

Produces the velyr binary in target/release. Prebuilt binaries are on GitHub Releases; there is no install script yet.

Illustration: a token drops into the Velyr gate and is stopped with VELYR_PERMISSION_DENIED. After the grant --allow-read=./data, the token passes through the slot.

Default deny

Nothing is reachable until you say so.

A script starts with no filesystem, network, environment or process access. Each grant is a flag scoped to paths, hosts or names, and a denial names the kind of access, never the value that was asked for.

Read about permissions
Terminal

Terminal session:

  1. Command: cat main.js
  2. Output: try {
  3. Output: console.log(await Velyr.readTextFile("./data/hello.txt"));
  4. Output: } catch (error) {
  5. Output: console.log(`${error.code}: ${error.message}`);
  6. Output: }
  7. Command: velyr run main.js
  8. Output: VELYR_PERMISSION_DENIED: fs-read access denied
  9. Command: velyr run --allow-read=./data main.js
  10. Output: hello from ./data

Principles

Five rules that do not move.

  1. Secure by default

    No filesystem, network, environment, process or FFI access without authority you grant.

  2. Web standards first

    Portable server APIs come before runtime-specific extensions.

  3. Node compatibility is optional

    Node compatibility is a product layer you add, not a property of the kernel.

  4. Everything measurable

    Performance, conformance, compatibility and security regressions have explicit gates.

  5. Everything modular

    Nothing is linked into a minimal build unless its profile or dependency graph needs it.

Status

What exists today, and what does not yet.

Measured, not claimed

Numbers when there are numbers.

Velyr is built to schedule isolates across every core of one machine. Benchmarks will be published with the harness, the hardware and the raw results, so anyone can rerun them. Until then, this page shows none.

How performance is measured
Illustration — no benchmark numbers yet

Start with nothing granted.