2个版本

0.1.1 2023年3月3日
0.1.0 2023年3月2日

#754 in 编程语言

Apache-2.0

310KB
8K SLoC

Diatom编程语言

Unit Tests doc Crates.io license

dependency status issue pr coverage

一种用于嵌入式应用的动态类型脚本语言。该项目是成为“更好”的lua的又一次尝试。

警告:项目仍处于实验阶段,API被认为是不稳定的。

特性

  • 不会崩溃*
  • 高性能:运行速度最多比lua 5.4快2倍,比python 3.10快6倍
  • 支持跟踪jit(计划中)
  • rustc风格有助于的 错误信息
  • 无全局变量
  • nil/None
  • 有真正的整数类型
  • 0索引的真正 列表 类型
  • 支持 元组 用于多返回值
  • 支持字符串索引
  • 支持 元表OOP风格的方法调用语法
  • 支持渐进式类型(计划中)
  • 支持宏系统(计划中)

*:外部函数仍可能触发崩溃
**: 结果来自我们的基准测试,不同构建和测试代码之间可能会有所不同。

快速入门

在线尝试Diatom

您可以在 在线沙盒 中尝试diatom。

使用cargo安装

请确保您已安装 Rust和Cargo

cargo install diatom-cli
diatom-cli --help # show help for diatom CLI
diatom-cli # Enter diatom REPL console

从源代码构建

运行以下脚本

git clone https://github.com/diatom-lang/diatom.git
cd diatom
cargo run --release # Run interactive console

语法高亮

参考 & 语法

参考书

Diatom参考(带示例)可在 此处 获取。

示例

对于标准库函数和内置类型和方法检查,请查看 示例。这些示例由单元测试检查。

在应用程序中嵌入

在Rust应用程序中嵌入

Diatom可在 crates.io 上找到,其中包含详细的示例。

要使用最新构建,请将此仓库添加到您的 Cargo.toml。最新构建文档可在 此处 获取。

使用C绑定

进行中。

特性展示

函数式风格std库

Screenshot 2023-02-19 at 10 23 38 PM

漂亮的错误报告和回溯

Screenshot 2023-02-19 at 10 00 53 PM

基于表达式的语法

Screenshot 2023-02-19 at 10 25 16 PM

交互式REPL控制台,带有语法高亮

Screenshot 2023-02-19 at 10 26 39 PM

依赖项

~5-14MB
~150K SLoC