# ๐ 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
<table>
<tr>
<th>Benchmark</th>
<th>GNU Octave 9.4</th>
<th>RunMat (JIT)</th>
<th>Speedup</th>
</tr>
<tr>
<td>Startup time (cold)</td>
<td>915ms</td>
<td>5ms</td>
<td><strong>183x faster</strong></td>
</tr>
<tr>
<td>Matrix operations</td>
<td>822ms</td>
<td>5ms</td>
<td><strong>164x faster</strong></td>
</tr>
<tr>
<td>Mathematical functions</td>
<td>868ms</td>
<td>5ms</td>
<td><strong>163x faster</strong></td>
</tr>
<tr>
<td>Control flow (loops)</td>
<td>876ms</td>
<td>6ms</td>
<td><strong>155x faster</strong></td>
</tr>
</table>
*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
<table>
<tr>
<td width="50%">
**๐ฌ 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
</td>
<td width="50%">
**โ๏ธ 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
</td>
</tr>
</table>
## ๐ฏ Quick Start
### Installation
```bash
# Quick install (Linux/macOS)
# Quick install (Windows PowerShell)
# 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
### 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
| **๐ฏ 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?
<div align="center">
<table>
<tr>
<td align="center" width="25%">
<strong>๐ Universities</strong><br/>
Teaching numerical methods<br/>without license fees
</td>
<td align="center" width="25%">
<strong>๐ฌ Research Labs</strong><br/>
Reproducible science with<br/>open-source tools
</td>
<td align="center" width="25%">
<strong>๐ญ Engineering Teams</strong><br/>
Embedded scientific computing<br/>in production systems
</td>
<td align="center" width="25%">
<strong>๐ Startups</strong><br/>
Rapid prototyping without<br/>expensive toolchain costs
</td>
</tr>
</table>
</div>
## ๐ค 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
<table>
<tr>
<td width="33%">
**๐ For Rust Developers**
- Implement new builtin functions
- Optimize the JIT compiler
- Enhance the garbage collector
- Build developer tooling
[**Contribute Code โ**](CONTRIBUTING.md)
</td>
<td width="33%">
**๐ฌ For Domain Experts**
- Add mathematical functions
- Improve MATLAB compatibility
- Write comprehensive tests
- Create benchmarks
[**Join Discussions โ**](https://github.com/runmat-org/runmat/discussions)
</td>
<td width="33%">
**๐ 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)
</td>
</tr>
</table>
### ๐ฌ 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.*