Skip to content

Repository files navigation

AuroraScript Logo

简体中文 | English

AuroraScript

License Version Target

AuroraScript 是面向 .NET 宿主程序的轻量脚本引擎。它将脚本编译为 CIL 并交给 CLR/JIT 执行,适合嵌入规则、业务逻辑、配置化流程、热修复和小型表达式。

它借鉴 JavaScript 的表达式、对象、数组、闭包和模块写法,但不是 ECMAScript 实现,也不承诺兼容浏览器或 Node.js 语义。

特性

  • CIL/JIT 执行、模块化脚本和独立 ScriptDomain
  • DynamicOnlyRunPersistence 三种编译模式。
  • CLR 类型注册与受控互操作。
  • 内存、文件系统和组合脚本来源。
  • 热更新、CompileBlock、标准对象和语言工具支持。

安装

dotnet add package AuroraScript.JIT --version 4.0.0

包支持 net8.0net9.0net10.0DynamicOnlyRun 支持全部目标;Persistence 需要 net9.0 或更高版本。

快速开始

创建 scripts/main.as

@module(MAIN);

export func main(value) {
    return value + 22;
}

在宿主中编译并执行:

using AuroraScript;
using AuroraScript.Core;
using AuroraScript.Runtime;

var options = EngineOptions.Default.WithCompiler(compiler =>
{
    compiler.SourceResolver = ScriptSources.FileSystem("./scripts");
    compiler.Mode = CompilationMode.Dynamic;
});

var engine = new AuroraEngine(options);
await engine.BuildAsync("main.as");

using var domain = engine.CreateDomain();
var result = domain.Execute("MAIN", "main", ScriptDatum.FromNumber(20));
Console.WriteLine(result); // 42

文档

详细介绍、教程、逐对象 API Reference、性能基准、MCP、语言服务器和 Visual Studio 扩展已迁移到 Wiki:

Wiki 默认使用中文;每段英文翻译紧随中文正文并以引用块呈现。API 的 Parameters:Returns 和参数名保持英文,以方便复制和检索。

从源码构建

git clone https://github.com/l2060/AuroraScript.JIT.git
cd AuroraScript.JIT
dotnet build src/AuroraScript.csproj -c Release

许可

本项目基于 MIT License 发布。

About

lightweight weakly typed script compiler runtime

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages