Skip to content

CloudPSS/MiraScript

Repository files navigation

MiraScript Logo

MiraScript

npm @mirascript/mirascript PyPI mirascript Open VSX MiraScript License MIT

表达式优先、不可变数据为核心的现代脚本语言
简洁、安全、易于嵌入


MiraScript 是 CloudPSS 维护的表达式优先脚本语言项目。当前仓库包含语言核心、编译器绑定、命令行工具、编辑器集成、在线 Playground、文档站点与测试集。

目录结构

  • crates/:Rust 侧实现,包括编译器核心、常量、NAPI/WASM/Python 绑定等。
  • packages/:JavaScript/TypeScript 生态包,包括核心 API、CLI、编辑器集成与站点。
  • docs/:官方文档源文件。
  • examples/:可直接运行的示例脚本。
  • tests/:语言特性、逻辑与端到端测试数据。

crates 一览

Crate 名称 目录 说明
mira-core crates/core 语言核心实现,包含词法/语法/执行能力
mira-constants crates/constants Rust 侧常量导出,供上层包生成常量数据
mira-napi crates/napi Node.js 原生绑定(N-API)
mira-wasm crates/wasm WebAssembly 绑定
mira-python crates/python Python 绑定

packages 一览

包名 目录 说明
@mirascript/bindings packages/bindings 统一封装 Node 原生与 WebAssembly 编译器绑定
@mirascript/cli packages/cli 命令行工具,提供运行与格式化能力
@mirascript/constants packages/constants 编译器常量、关键字与诊断码导出
@mirascript/help packages/help 从文档生成关键字与运算符帮助数据
@mirascript/mirascript packages/mirascript 语言核心 TypeScript API
@mirascript/monaco packages/monaco Monaco Editor 集成
@mirascript/napi packages/napi Node.js 原生编译器包
@mirascript/playground packages/playground 在线 Playground 前端
@mirascript/typed packages/typed 类型定义解析与 JSON Schema 生成
@mirascript/vscode packages/vscode Visual Studio Code 扩展
@mirascript/wasm packages/wasm WebAssembly 编译器包
@mirascript/website packages/website Docusaurus 文档站点

开发环境

建议使用以下版本:

  • Node.js 20 及以上
  • pnpm 11
  • Rust stable toolchain
  • wasm-pack(构建 @mirascript/constants@mirascript/wasm 时需要)

安装依赖:

pnpm install

常用命令

在仓库根目录执行:

pnpm run lint
pnpm run format
cargo fmt --all

常见子包场景:

  • 构建 CLI:pnpm --filter @mirascript/cli build
  • 构建语言核心:pnpm --filter @mirascript/mirascript build
  • 启动 Playground:pnpm --filter @mirascript/playground start
  • 启动文档站点:pnpm --filter @mirascript/website start

文档与示例

  • 语言文档位于 docs/
  • 示例脚本位于 examples/
  • VS Code 扩展说明见 packages/vscode/README.md
  • Python 绑定说明见 crates/python/README.md

许可证

本项目使用 MIT 许可证,详见 LICENSE

About

Mono repo of MiraScript language

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors