Closed PreviewCompiler source opens July 1, 2026. Playground and binary available today.Join Discord →
MetaScript
SYSTEMS PROGRAMMING LANGUAGE

In TypeScript syntax

MetaScript is a systems programming language, designed as TypeScript superset — meaning all TypeScript you already write, now doing system-grade work. Fast backends, serverless with millisecond cold starts, CLI tools that ship as single binaries.

Reusing what's mature

MetaScript translates your TypeScript to existing backends — C, JavaScript, WebAssembly. Those backends have decades of work behind them, so MetaScript builds on top instead of replacing them. You write what you already know — the toolchains do the rest.

Syntax developers already know

Same TypeScript surface — tutorials, examples, patterns transfer as-is. Every LLM that speaks TypeScript already speaks MetaScript.

type User = { id: string; name: string };
Learn more

Multiple backends

Same code compiles to C (native), JavaScript, or WebAssembly. Choose per use case.

msc build --target=c
Learn more

Familiar TypeScript in; native binaries, JavaScript, or WebAssembly out.

Your TypeScriptcompiles to C
generic.ms
function max<T>(a: T, b: T): T {
  return a > b ? a : b;
}

console.log(max(3, 7));
console.log(max("abc", "xyz"));
output.c
// Monomorphized: one specialized fn per T
int32_t max__int32(int32_t a, int32_t b) {
  return a > b ? a : b;
}

msString max__string(msString a, msString b) {
  return a > b ? a : b;
}

// No vtable, no boxing — direct calls
msPrintln(msNumberToString(max__int32(3, 7)));
msPrintln(max__string(MS_STR("abc"), MS_STR("xyz")));

Extend either way

Where frontend and systems developers meet — two worlds sharing one language, innovating from both sides.

For TypeScript developers

Keep writing TypeScript — and power up into systems programming through it. Native binaries, metaprogramming, fault-tolerant concurrency. New depth to explore, same syntax you already speak.

For systems developers

Take systems engineering into Browser, WASM, and edge — places C or Rust felt too heavy. Your depth, wrapped in TypeScript syntax the frontend already speaks.

Native-tier performance

Same TypeScript source, native output. MetaScript lands in the native tier — alongside C and Rust — not the runtime tier with Node or Bun.

HTTP Server Throughputrequests/sec (higher is better)
C
(epoll)210K
NATIVE
MetaScript
205K
NATIVE
Rust
(hyper/tokio)171K
NATIVE
Bun
35K
RUNTIME
Node.js
17K
RUNTIME

* Synthetic benchmark on ARM Neoverse-N1 (4-core, 16GB) • MetaScript compiles to native C

AWS Lambda cold start + invocationlower is better
Cold initWarm p50Memory
MetaScript
6.5 ms
1.3 ms
14 MB
Rust
10–30 ms
1–3 ms
10–20 MB
Go
20–100 ms
1–3 ms
10–30 MB
Node.js 20
150–250 ms
1–5 ms
50–80 MB
Python 3.12
150–300 ms
1–10 ms
50–80 MB
Java 21
500–2000 ms
1–5 ms
100–150 MB

* MetaScript measured 2026-04-21 on 128 MB arm64 Graviton (us-east-1, n=59, 4 cold starts) • others from AWS blog posts + canonical sources • reproduce it yourself

Why MetaScript?

Ship native binaries without leaving your TypeScript mental model

Few kilobytes binary size, near raw C performance

Cut cold starts and memory usage without rewriting everything

Deploy to Lambda, CLI, browsers, or distributed, same codebase

Use C, npm, and BEAM ecosystems from one language and package manager