Jyro Initial Release
Jyro is now available on NuGet and as a command-line tool. Jyro is a high performance, host-isolated, imperative, dynamically-typed scripting language designed for data transformation workflows in embedded scenarios.
Overview
Jyro scripts operate on a single mutable data context provided by the host application. The language uses JSON-compatible syntax enhanced with control flow statements, loops, and function calls. Scripts modify the provided data structure in place rather than creating new objects or managing return values.
The execution model constrains scripts to operate only on the provided data context without access to file systems, network resources, or system APIs. Host applications control available functionality through explicit function allowlisting.
Core Features
JSON-compatible object and array literals with procedural programming constructs
Control flow:
if-then-else,switch-case,while,foreachloopsProperty access via dot notation and bracket indexing
In-place data structure transformation
Host function integration with structured error handling
Four-stage compilation pipeline: lexing, parsing, validation, execution
Built-in Functions
Standard library includes type operations (TypeOf, Isnull), string manipulation (Substring, Replace, Split, Trim), array operations (Push, Pop, Contains), object manipulation (Haskey, RemoveKey, Keys), and conversion functions (ToString, ToNumber).
Security Model
Scripts execute in a controlled environment with no access to system resources, no object instantiation beyond data literals, and no dynamic code evaluation. This design enables safe execution of untrusted user-generated scripts in multi-tenant applications.
Packages
Three NuGet packages are available: Core (language definition), Runtime (execution engine), CodeAnalysis (statistics and metrics), and Interpreter (command-line utility). The implementation targets .NET Standard 8.0 with MIT licensing.
Technical documentation, examples, and source code are available at the project repository.