@elaraai/east

中文文档
1.0.107发布于 2026/11/13AGPL-3.0-or-laterTypeScriptES Module构建来源已验证近 30 天下载 8581

East是Elara AI Pty Ltd使用的一种简单而快的语言.

中文使用文档
文档目录22 节
  1. 动机
  2. 特征
  3. 快速启动
  4. 安装
  5. 基本示例
  6. 类型系统
  7. 文档
  8. 关键概念
  9. 平台函数
  10. 流利的接口
  11. 序列化
  12. 实例
  13. 发展
  14. 大楼
  15. 测试
  16. 释放进程
  17. Claude 代码插件
  18. 许可证
  19. 捐款
  20. 生态系统
  21. 链接
  22. 关于埃拉拉

东

东 是一种静态地打入了TypeScript中嵌入的基于表达式的编程语言. 设计于 爱拉拉 , East 使您能够一次写出可移植逻辑,并在多个环境(JavaScript, Julia, Python等)中执行, 利用每种语言的本土性能特征和生态系统.

动机

提供完整的业务解决方案需要广泛的技术和活动:数据集成,数学优化,机器学习,模拟,用户界面,认证和授权,托管,管理数据一致性,审计等. 需要多个编程环境来解决任何给定的商业问题——例如,您可以使用JavaScript进行网络前端和python来培训和评价机器学习模型.

东方的设计是为了通过专注于一个简单而强大的结构类型系统, 使得所有锅炉和管道的工作都消失, 让你花更多的时间来解决现实世界的问题, 来方便地将不同的技术融合在一起. 东方是故意的简单语言,快速地学习,在新的运行时刻直接实施.

特征

  • 静态打字: 明确宣布速度和正确性的所有类型、函数和值
  • 结构打字: 有递归类型,一等功能和多形态变体的表达式类型系统
  • 便携式 IR: 编译到 JavaScript, Python 和 Julia
  • 控制边效果: 有跨语言平台定义效果的安全执行
  • LLM 友好游戏: 为AI所设计,有清晰,可堆肥而有花样的友好别名
  • 可序列:所有数据都可以被序列化;函数和关闭可以作为IR传输
  • 最小依赖性: 单一运行时间依赖(用于高效收集的种类树)
  • 订购共计:所有类型都有定义的比较,所有语文目标都是一致的

快速启动

安装

npm install @elaraai/east

基本示例

import { East, IntegerType, ArrayType, StructType, StringType, DictType, NullType } from "@elaraai/east";

// Platform function for logging
const log = East.platform("log", [StringType], NullType);

const platform = [
    log.implement(console.log),
];

// Define sale data type
const SaleType = StructType({
    product: StringType,
    quantity: IntegerType,
    price: IntegerType
});

// Calculate revenue per product from sales data
const calculateRevenue = East.function(
    [ArrayType(SaleType)],
    DictType(StringType, IntegerType),
    ($, sales) => {
        // Group sales by product and sum revenue (quantity × price)
        const revenueByProduct = sales.groupSum(
            // Group by product name
            ($, sale) => sale.product,
            // Sum quantity × price
            ($, sale) => sale.quantity.multiply(sale.price)
        );

        // Log revenue for each product
        $(log(East.str`Total Revenue: ${East.Integer.printCurrency(revenueByProduct.sum())}`));

        $.return(revenueByProduct);
    }
);

// Compile and execute
const compiled = East.compile(calculateRevenue, platform);

const sales = [
    { product: "Widget", quantity: 10n, price: 50n },
    { product: "Gadget", quantity: 5n, price: 100n },
    { product: "Widget", quantity: 3n, price: 50n }
];

compiled(sales);
// Total Revenue: $1,150

类型系统

东方支持为业务逻辑和数据处理优化的丰富类型系统:

类型值类型变异性说明
初级类型
NullTypenull不可改变单位类型(单值)
BooleanTypeboolean不可改变真伪
IntegerTypebigint不可改变64 位签名整数
FloatTypenumber不可改变IEEE 754 双精度
StringTypestring不可改变UTF-8 文本
DateTimeTypeDate不可改变UTC 时间戳( 毫秒)
BlobTypeUint8Array不可改变二进制数据
可变收藏
ArrayType<T>ValueTypeOf<T>[]可变有序收藏
SetType<K>Set<ValueTypeOf<K>>可变排序集
DictType<K, V>Map<ValueTypeOf<K>, ValueTypeOf<V>>可变排序词典
RefType<T>ref<ValueTypeOf<T>>可变可变箱
数字阵列
VectorType<FloatType>Float64Array可变强烈浮向量
VectorType<IntegerType>BigInt64Array可变强烈整数向量
VectorType<BooleanType>Uint8ClampedArray可变深布尔向量
MatrixType<T>matrix<TypedArray>可变Ense 2D 矩阵(主要)
化合物类型
StructType<Fields>{...}不可改变产品类型(记录)
VariantType<Cases>variant不可改变总和类型( 标记的结合)
RecursiveType<T>ValueTypeOf<T>不可改变树、 DAG 和圆形结构的递归引用
函数类型
FunctionType<I, O>函数不可改变一等职能/关闭
AsyncFunctionType<I, O>函数返回 Promise不可改变同步函数/关闭

文档

关键概念

平台函数

东码运行在被控制的环境中. 您定义 平台功能 您的东方代码可以调用 :

// Define platform functions
const log = East.platform("log", [StringType], NullType);
const readFile = East.platform("readFile", [StringType], StringType);

// Provide implementations
const platform = [
    log.implement((msg: string) => console.log(msg)),
    readFile.implement((path: string) => fs.readFileSync(path, 'utf-8')),
];

// Compile with platform
const compiled = East.compile(myFunction, platform);

东方也支持 asyncPlatform 函数(可能由 AsyncFunctionType ,插入 await 视需要自动. 在上述情况中, readFile 可以使用 fs.promises.readFile 利用货币.

流利的接口

使用可链路方法构建表达式 :

const myFunction = East.function([IntegerType], IntegerType, ($, x) => {
    // Arithmetic
    const result = $.const(x.add(10n).multiply(2n));

    // Collections
    const arr = $.const([1n, 2n, 3n]);
    const doubled = $.const(arr.map(($, x, i) => x.multiply(2n)));
    const sum = $.const(doubled.sum());

    // Closures can capture variables from the enclosing scope
    const addResult = $.const(East.function([IntegerType], IntegerType, ($, y) => {
        $.return(y.add(result));
    }));

    $.return(addResult(sum));
});

// Compile and execute
const compiled = East.compile(myFunction, []);
compiled(5n);
// 42n — result = (5+10)*2 = 30, sum of [2,4,6] = 12, addResult(12) = 12+30 = 42

序列化

所有东方数据都可以以下列任何一种格式写出并读取:

  • 东方文本格式(为东方类型系统设计的类似JSON格式)
  • 二进制 East 格式,称为 “ beast (compact,自描述,流出)
  • JSON(每个东方类型都有犬科编码)

注意可变异名 实值 通过序列化/去序化加以保存.

函数和关闭定义可以在Beast2 二进制格式中被序列化为IR并跨环境传输,以编译并运行到另一边:

import { East, IntegerType, Expr, encodeBeast2For, decodeBeast2For } from "@elaraai/east";

const myFunction = East.function([IntegerType], IntegerType, ($, x) => {
    $.return(x.add(1n));
});

// the type of the function (IntegerType -> IntegerType)
const funcType = Expr.type(myFunction);

// Compile the function (this attaches the IR)
const compiled = East.compile(myFunction, []);

// Serialize the compiled function to Beast2 (binary format)
const encode = encodeBeast2For(funcType);
const bytes = encode(compiled);

// Deserialize and recompile
const decode = decodeBeast2For(funcType);
const restored = decode(bytes);

restored(41n); // 42n

实例

见 SKILLL.MD (英语) 为了更多.

发展

大楼

npm run build       # Compile TypeScript to JavaScript
npm run test        # Run test suite (requires build first)
npm run lint        # Check code quality with ESLint
npm run example     # Run the basic example

测试

东部有一个综合测试套房,包括:

  • 系统操作类型
  • 序列化格式( BEAST v1/v2, JSON, East 文本格式)
  • 收款和职能运作
  • 处理错误和边缘大小写

值得注意的是,这些测试是在东方进行的,可以方便地验证新运行时间的正确性(有效发挥合规套件的作用).

释放进程

@elaraai/east 与所有其他出版物一起出版 @elaraai/* npm 包在一个单一统一版本下的东-工作空间单列波. 释放是手动通过 NPM Publish GitHub 动作工作流程在 repo 根(.github/workflows/npm-publish.yml) (中文(简体) ). 没有每个包装的释放命令——见根 读取 详细情况.

Claude 代码插件

东方生态系统也运载a 克劳德代码 插件 — East 语言技能, 实例搜索, 以及 East 代码的先发制人诊断 elaraai 市场:

# Inside Claude Code
/plugin marketplace add elaraai/east-workspace
/plugin install east@elaraai
# From a terminal
claude plugin marketplace add elaraai/east-workspace
claude plugin install east@elaraai

许可证

这个项目有双重许可证:

见 利比里亚 详细情况.

捐款

我们欢迎捐款! 请看 捐款额 详细情况.

说明贡献者必须签署我们 洛杉矶 在接受拉动请求之前 这使我们能够提供商业许可证,同时保持项目的开放源码.

生态系统

  • 东: statical地打出,以表达为主的语言有可序列的IR. 运行跨 TypeScript, Python, C 等运行时间的可移植逻辑.

    • @elaraai/东边: 有类型系统、表达式和参考JS编译器的核心语言SDK
  • 东节点: Node.js 平台用于I/O,数据库和系统操作的功能.

  • 东 C: C11本土运行时间用于执行东IR. 通过npm(发射器+每个平面的可选依赖)进行分配,并在每个GitHub放出上作为tarball.

    • @elaraai/东-克-克利: npm 发射器 – 安装匹配的本地二进制作为可选依赖
    • east-c: Core 运行时间 – 类型系统,IR 解释器,内置,序列化(Beast2, JSON, CSV, East text)
    • east-c-std: 控制台、 文件系统、 获取、 加密、 时间、 路径、 随机
    • east-c-cli: 用于在本地运行 East IR 程序的 CLI
  • 东 Py: Python 运行时间,标准平台,I/O,以及数据科学平台功能. 发布至PyPI.

    • 东平: Core Python 运行时间——类型系统,IR编译器,212+内建,Cython加速热路
    • 东平-上: 控制台、 文件系统、 获取、 加密、 时间、 路径、 随机
    • 东比欧: SQLite, PostgreSQL, MySQL, MongoDB, Redis, S3, FTP, SFTP, XLSX, XML, 压缩
    • 东-平-克利: 用于在 Python 运行 East IR 程序的 CLI
    • 东平数据科学 (平价)+ @elaraai/东平数据科学 (npm):优化(MADS, Optuna, ALNS, GoogleOR),ML(XGBoost, LightGBM, NGBoost, PyTorch, Lightning, GP), 贝叶斯推论(PyMC),可解释性(SHAP),相通性预测(MAPIE)
  • 东方大学:已打入UI组件定义和React渲染器,外加VS代码预览.

  • e3——东行发动机: 大规模运行东方管线的持久执行引擎。 类似Git的内容可处理存储,自动记忆,反应数据流,实时监测.

关于埃拉拉

东方由 Elara AI Pty有限公司一个由AI驱动的平台 创造经济数字双胞胎 企业优化业绩。 Elara将业务目标、决定和数据结合起来,以帮助各组织在业务、采购、销售和客户参与以及项目和投资规划方面作出由数据驱动的决定。 东能给以埃拉拉解决方案的计算层,使得复杂的商业逻辑和数据能够以简单,类型安全和可移植的语言来表达.


开发者 Elara AI Pty有限公司。 。 。 .


开发者 Elara AI Pty有限公司

版本与发布记录

@elaraai/east 共发布 150 个版本,首次发布于 2025/12/01;过去 12 个月发布了 150 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.0.107latest2026/11/13今天
1.0.1062026/11/094 天前
1.0.1052026/11/085 天前
1.0.1042026/11/067 天前
1.0.1032026/11/049 天前
1.0.1022026/11/0310 天前

其他发布通道:beta → 0.0.1-beta.43。

关于 @elaraai/east 的常见问题

@elaraai/east 是什么?

East是Elara AI Pty Ltd使用的一种简单而快的语言.

如何安装 @elaraai/east?

在项目目录运行 npm install @elaraai/east,或使用 pnpm add / yarn add / bun add。

@elaraai/east 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@elaraai/east 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@elaraai/east 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@elaraai/east 可以商用吗?

@elaraai/east 使用 AGPL-3.0-or-later 许可。最严格的 Copyleft:除分发外,通过网络向用户提供基于它的服务也需要开源对应源码。闭源 SaaS 使用前务必评估。以上为概括,不构成法律意见,请以许可原文为准。

@elaraai/east 的下载量有多少?

根据 npm 官方下载统计,@elaraai/east 在 2026/10/13 – 2026/11/11 这 30 天内被下载 8,581 次,日均约 286 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@elaraai/east 还在维护吗?

最新版本 1.0.107 发布于 2026/11/13(今天);至今共发布 150 个版本,其中过去 12 个月发布了 150 个;首次发布于 2025/12/01。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。