2个版本

0.6.1 2023年3月3日
0.6.0 2023年3月2日

#1064编程语言

27 每月下载量
3 个crate中(2 个直接) 使用

Apache-2.0

300KB
8K SLoC

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 绑定

进行中。

功能展示

功能式 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

依赖项

~4–13MB
~135K SLoC