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, foreach loops

  • Property 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.

Previous
Previous

Jyro VS Code Extension