https://github.com/runmat-org/runmat
The Fast, Free, Modern MATLAB / Octave code runtime. Run existing MATLAB/Octave code with full language grammar and core semantics. No license fees, no lock-in.
https://github.com/runmat-org/runmat
compiler jit-compiler jupyter linear-algebra mathematics matlab numerical-analysis octave plotting python r rust scientific-computing
Last synced: 3 months ago
JSON representation
The Fast, Free, Modern MATLAB / Octave code runtime. Run existing MATLAB/Octave code with full language grammar and core semantics. No license fees, no lock-in.
- Host: GitHub
- URL: https://github.com/runmat-org/runmat
- Owner: runmat-org
- License: other
- Created: 2025-07-28T01:44:13.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-08-27T02:00:52.000Z (3 months ago)
- Last Synced: 2025-08-27T10:47:37.785Z (3 months ago)
- Topics: compiler, jit-compiler, jupyter, linear-algebra, mathematics, matlab, numerical-analysis, octave, plotting, python, r, rust, scientific-computing
- Language: Rust
- Homepage: https://runmat.org
- Size: 1.82 MB
- Stars: 25
- Watchers: 2
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
- Roadmap: docs/ROADMAP.md
Awesome Lists containing this project
- awesome-datascience - RunMat - syntax runtime with automatic CPU/GPU execution and fused array kernels. | (The Data Science Toolbox / Miscellaneous Tools)
- awesome-high-performance-computing - RunMat - MATLAB-syntax runtime with automatic CPU/GPU execution and fused array math kernels. (Software / Trends)
README
# ๐ RunMat: Modern Free MATLAB Compatible Runtime
### A blazing-fast, open-source MATLAB/Octave runtime, by the creators of [Dystr](https://dystr.com)
[](https://github.com/runmat-org/runmat/actions)
[](LICENSE.md)
[](https://crates.io/crates/runmat)
[](https://crates.io/crates/runmat)
**[๐ Website](https://runmat.org) โข [๐ Documentation](https://runmat.org/docs)**
---
## What is RunMat?
RunMat is a **modern, high-performance runtime** for MATLABยฎ and GNU Octave code that eliminates license fees, vendor lock-in, and performance bottlenecks. Built from the ground up in Rust with a **V8-inspired architecture**, it delivers:
- ๐ **150-180x faster execution** than Octave through JIT compilation
- โก **Instant startup** (5ms vs 900ms+ in Octave) via advanced snapshotting
- ๐จ **GPU-accelerated plotting** that's beautiful and responsive
- ๐ **Native Jupyter support** with rich interactive widgets
- ๐ก๏ธ **Memory safety** and **zero crashes** guaranteed by Rust
- ๐ฐ **$0 licensing costs** - completely free and open source
## ๐ Performance Benchmarks
Benchmark
GNU Octave 9.4
RunMat (JIT)
Speedup
Startup time (cold)
915ms
5ms
183x faster
Matrix operations
822ms
5ms
164x faster
Mathematical functions
868ms
5ms
163x faster
Control flow (loops)
876ms
6ms
155x faster
*Benchmarks run on Apple M2 Max with BLAS/LAPACK optimization. See [benchmarks/](benchmarks/) for reproducible test scripts and detailed results.*
---
### Why Engineers and Scientists Love RunMat
**๐ฌ For Researchers & Academics**
- Run existing MATLAB scripts without expensive licenses
- Reproducible science with open-source tools
- Fast iteration cycles for algorithm development
- Publication-quality plots that render beautifully
**โ๏ธ For Engineers & Industry**
- Embed scientific computing in production systems
- No vendor lock-in or licensing audits
- Deploy to cloud/containers without restrictions
- Modern CI/CD integration out of the box
## ๐ฏ Quick Start
### Installation
```bash
# Quick install (Linux/macOS)
curl -fsSL https://runmat.org/install.sh | sh
# Quick install (Windows PowerShell)
iwr https://runmat.org/install.ps1 | iex
# Or install from crates.io
cargo install runmat --features gui
# Or build from source
git clone https://github.com/runmat-org/runmat.git
cd runmat && cargo build --release --features gui
```
#### Linux prerequisite
For BLAS/LAPACK acceleration on Linux, install the system OpenBLAS package before building:
```bash
sudo apt-get update && sudo apt-get install -y libopenblas-dev
```
### Run Your First Script
```bash
# Start the interactive REPL
runmat
# Or run an existing .m file
runmat script.m
# Or pipe a script into RunMat
echo "a = 10; b = 20; c = a + b" | runmat
```
### Jupyter Integration
```bash
# Register RunMat as a Jupyter kernel
runmat --install-kernel
# Launch JupyterLab with RunMat support
jupyter lab
```
## ๐ See It In Action
### MATLAB Compatibility
```matlab
% Your existing MATLAB code just works
A = [1 2 3; 4 5 6; 7 8 9];
B = A' * A;
eigenvals = eig(B);
plot(eigenvals);
```
### Performance That Scales
```matlab
% Matrix operations that fly - 150x+ faster than Octave
n = 1000;
A = randn(n, n);
B = randn(n, n);
tic; C = A * B; toc % Executes in ~5ms vs 800ms+ in Octave
```
### Beautiful, Interactive Plotting (experimental)
```matlab
% Create a stunning 3D surface plot
[X, Y] = meshgrid(-2:0.1:2, -2:0.1:2);
Z = X .* exp(-X.^2 - Y.^2);
surf(X, Y, Z);
```
## ๐๏ธ Architecture: V8-Inspired Performance
RunMat's **tiered execution engine** delivers both fast startup and blazing runtime performance.
### Key Components
| Component | Purpose | Technology |
|-----------|---------|------------|
| **๐ฏ runmat-ignition** | Baseline interpreter for instant startup | HIR-to-bytecode compiler + stack-based interpreter |
| **โก runmat-turbine** | Optimizing JIT compiler for hot code | Cranelift backend |
| **๐ง runmat-gc** | High-performance memory management | Generational GC with pointer compression |
| **๐จ runmat-plot** | Interactive plotting engine | GPU-accelerated via wgpu |
| **๐ฆ runmat-snapshot** | Fast startup system | Binary blob serialization |
| **๐ง runmat-runtime** | 50+ builtin functions | BLAS/LAPACK integration |
## ๐จ Modern Developer Experience
### Rich REPL with Intelligent Features
```bash
runmat> .info
๐ฆ RunMat v0.1.0 - High-Performance MATLAB Runtime
โก JIT: Cranelift (optimization: speed)
๐ง GC: Generational (heap: 45MB, collections: 12)
๐จ Plotting: GPU-accelerated (wgpu)
๐ Functions loaded: 52 builtins + 0 user-defined
```
### First-Class Jupyter Support
- Rich output formatting with LaTeX math rendering
- Interactive widgets for parameter exploration
- Seamless plotting integration
- Full debugging support with breakpoints
### Extensible Architecture
```rust
// Adding a new builtin function is trivial
#[runtime_builtin("myfunction")]
fn my_custom_function(x: f64, y: f64) -> f64 {
x.powf(y) + x.sin()
}
```
## ๐ Who Uses RunMat?
๐ Universities
Teaching numerical methods
without license fees
๐ฌ Research Labs
Reproducible science with
open-source tools
๐ญ Engineering Teams
Embedded scientific computing
in production systems
๐ Startups
Rapid prototyping without
expensive toolchain costs
## ๐ค Join the Revolution
RunMat is more than just softwareโit's a movement toward **open, fast, and accessible scientific computing**. We're building the future of numerical programming, and we need your help.
### ๐ ๏ธ How to Contribute
**๐ For Rust Developers**
- Implement new builtin functions
- Optimize the JIT compiler
- Enhance the garbage collector
- Build developer tooling
[**Contribute Code โ**](CONTRIBUTING.md)
**๐ฌ For Domain Experts**
- Add mathematical functions
- Improve MATLAB compatibility
- Write comprehensive tests
- Create benchmarks
[**Join Discussions โ**](https://github.com/runmat-org/runmat/discussions)
**๐ For Everyone Else**
- Report bugs and feature requests
- Improve documentation
- Create tutorials and examples
- Spread the word
[**Get Started โ**](https://github.com/runmat-org/runmat/issues/labels/good-first-issue)
### ๐ฌ Connect With Us
- **GitHub Discussions**: [Share ideas and get help](https://github.com/runmat-org/runmat/discussions)
- **Twitter**: [@dystr_ai](https://x.com/dystr_ai) for updates and announcements
- **Newsletter**: [Subscribe](https://runmat.org/newsletter) for monthly updates
## ๐ License
RunMat is licensed under the **MIT License with Attribution Requirements**. This means:
โ
**Free for everyone** - individuals, academics, most companies
โ
**Open source forever** - no vendor lock-in or license fees
โ
**Commercial use allowed** - embed in your products freely
โ ๏ธ **Attribution required** - credit "RunMat by Dystr" in public distributions
โ ๏ธ **Special provisions** - large scientific software companies must keep modifications open source
See [LICENSE.md](LICENSE.md) for complete terms or visit [runmat.org/license](https://runmat.org/license) for FAQs.
---
**Built with โค๏ธ by [Dystr Inc.](https://dystr.com) and the RunMat community**
โญ **Star us on GitHub** if RunMat helps your work!
[**๐ Get Started**](https://runmat.org/docs/getting-started) โข [**๐ฆ Follow @dystr**](https://x.com/dystr_ai)
---
*MATLABยฎ is a registered trademark of The MathWorks, Inc. RunMat is not affiliated with, endorsed by, or sponsored by The MathWorks, Inc.*