Modern .NET Scripting & Expression Engine

Lightweight. Ultra-Fast.
Mathematical Scripting.

MAGES is a powerful expression parser, compiler, and interpreter for .NET applications. Native support for complex numbers, matrices, JSX syntax, and first-class functions with zero external runtime dependencies.

Quick Install (.NET CLI)
# Install MAGES library
$ dotnet add package Mages

# Install global CLI compiler & REPL
$ dotnet tool install --global Mages.Compiler

# Launch the interactive REPL
$ mages

Built for Modern .NET Applications

Designed from the ground up for maximum throughput, low memory footprint, and seamless .NET integration.

⚡

Ultra High Performance

Linear operation chain VM eliminates GC pressure. Compile expressions once and execute them with maximum throughput in your critical loops.

📐

Matrices & Complex Numbers

First-class mathematical primitives including multi-dimensional matrices, linear algebra solvers, complex numbers, and trigonometric functions.

⚛️

JSX Syntax & Objects

Write declarative tree structures directly in code using JSX syntax. Inspect object metadata dynamically using the built-in type and json operators.

🛠️

Global CLI Tool

The Mages.Compiler package brings a full-featured command-line interpreter, interactive REPL, and script runner to any modern terminal.

💻

VS Code LSP Extension

Language Server Protocol (LSP) extension with real-time diagnostics, syntax highlighting, IntelliSense completions, hover docs, and signature tooltips.

🔌

Extensible & Sandbox-Ready

Easily expose custom C# classes, methods, and delegates. Full control over accessible APIs and scopes for sandboxed user scripting.

Clean, Expressive Syntax

Look at how intuitive mathematical scripting feels in MAGES.

C# Host Integration

using Mages.Core;

var engine = new Engine();
// Expose variables & functions
engine.Scope["x"] = 4.0;
engine.SetFunction("sq", (double v) => v * v);

// Evaluate or compile
var result = engine.Interpret("sq(x) + sin(pi / 2)");
Console.WriteLine(result); // 17.0

MAGES Language Features

// Functions, pipes, and currying
var add = (a, b) => a + b;
var calc = 5 | add(10, _); // 15

// Matrix arithmetic & operations
var A = [1, 2; 3, 4];
var invA = inv(A);
var I = A * invA;

// JSX templating
var view = <div class="card"><h1>MAGES</h1></div> | html;

Ready to add scripting to your application?

Check out our step-by-step tutorial and API documentation.