RunMat
GitHub

Development Roadmap

This document serves as the evolving roadmap for RunMat to track the progress of the project towards the 1.0 release.

Vision

RunMat is a fast MATLAB-compatible runtime with an open-source core. Same syntax engineers have used for decades, with a modern stack underneath: Rust, a JIT compiler, and automatic GPU acceleration. RunMat runs as a CLI, in the browser via WebAssembly, and (soon) as a native desktop app. We're building the foundation first — a runtime engineers can adopt without workflow changes or procurement headaches — with richer tooling and assistance for math and physics work to follow.

Current Shape

  • CLI — Install and run runmat in the terminal; REPL, script execution, Jupyter kernel.
  • Browser — Live at runmat.com/sandbox; full IDE with code and notebook editors, GPU-accelerated plotting, variable inspector, and file management — all running locally in the browser via WebAssembly and WebGPU.
  • Desktop app — In development; will offer a native-style experience, local project management, and optional integrations.

Towards 1.0

The core language and runtime are complete. The major remaining items are:

  • The package manager needs to be implemented.
  • The JIT currently optimizes a subset of the language, with an interpreter fallback for operations that are currently not implemented in the JIT. Full JIT coverage will be implemented before the 1.0 release.
  • Continued expansion of built-in function coverage. RunMat ships 400+ built-in functions across arrays, linear algebra, FFT/signal processing, statistics, plotting, strings, and I/O. Additional functions continue to be added based on user needs.

The below tracks the progress of the project towards the 1.0 release to date.

Milestone P0 - Bootstrapping

  • Expand lexer to cover MATLAB operators, keywords and comments.
  • Introduce runmat-parser crate producing an AST.
  • Basic REPL that tokenizes input and prints tokens.
  • Set up CI with cargo fmt and cargo check.

Milestone P1 - Language Core

  • Complete parser with precedence rules and matrix syntax.
  • Extend parser to support control flow, function definitions and array indexing so that typical MATLAB files can be parsed without errors.
  • High-level IR (runmat-hir) with scope and type annotations.
  • Simple interpreter running on an unoptimised bytecode (runmat-vm).
  • Headless plotting backend emitting SVG/PNG.
  • Jupyter kernel communication skeleton.

Milestone P2 - Performance Features

  • Cranelift-based JIT (runmat-turbine).
  • BLAS/LAPACK bindings and array primitives (runmat-runtime).
  • Generational GC with optional pointer compression (runmat-gc).
  • Snapshot creator to preload the standard library (runmat-snapshot).
  • v0.1 release.

Milestone P3 - User Experience

  • Full language coverage (/docs/language-coverage).
  • v0.2 release.
  • Full standard library pass for canonical built-ins ((arrays, linalg, FFT/signal, stats, strings, I/O, ...).
  • Implement LSP server.
  • Implement VSCode / Cursor extension.
  • Complete Accelerate (GPU) support.
  • Finish plotting library integration.
  • Implement package manager.

Milestone P4 - Browser, App & Sandbox

  • Compile runtime to WebAssembly with WebGPU acceleration.
  • Deploy sandbox web app with full IDE experience.
  • Service worker plotting with GPU-accelerated rendering.
  • Cloud infrastructure (GCP, Terraform, Docker Compose).
  • Organizations, projects, and memberships.
  • Notebook editor with markdown and code cells.
  • RunMat Agent v1 — built-in agent with streaming and persisted/replayable sessions. Executes code in the runtime, inspects workspace variables and plot output, proposes reviewable diffs for script adaptation (unsupported builtins, command-form cleanup, compatibility-mode prep), and operates under policy-gated tool controls. Provider-agnostic model routing.
  • Desktop app with native experience and local project management.