2个版本

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

#459 in 编程语言

Apache-2.0

320KB
9K SLoC

硅藻编程语言

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索引的真正列表类型
  • 支持用于多返回值的元组
  • 支持字符串索引的表
  • 支持元表和面向对象风格的调用语法
  • 支持渐进式类型(计划中)
  • 支持宏系统(计划中)

*:外部函数可能仍然会触发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

语法高亮

参考 & 语法

参考书

硅藻参考(带示例)可在此处找到。

示例

有关标准库函数和内置类型和方法的检查,请参阅示例。这些示例由单元测试检查。

在应用程序中嵌入

在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
~132K SLoC