2个版本

0.2.1 2023年3月3日
0.2.0 2023年3月2日

#901编程语言

Apache-2.0

31KB
402

diatom编程语言

Unit Tests doc Crates.io license

dependency status issue pr coverage

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

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

特性

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

*:外部函数可能会触发panic
**: 结果来自我们的基准测试,可能因不同构建和测试代码而异。

快速入门

在线尝试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绑定

正在进行中。

功能展示

功能式标准库

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

依赖项

~12–24MB
~341K SLoC