ad-si/Woxi
GitHub: ad-si/Woxi
用 Rust 实现的开源 Wolfram Language 解释器,支持 CLI 脚本执行和 Jupyter Notebook。
Stars: 510 | Forks: 15
# Woxi
一个由 Rust 驱动的 Wolfram Language 解释器。

## 功能
最初的重点是实现 Wolfram Language 的一个子集,
以便它可以用于 CLI 脚本编写和笔记本。
例如:
```
#!/usr/bin/env woxi
(* Print the square of 5 random integers between 1 and 9 *)
RandomInteger[{1, 9}, 5] // Map[#^2&] // Map[Print]
```
它完全支持 Jupyter Notebooks,包括图形输出:

查看 [CLI 测试](./tests/cli) 目录,
以了解当前支持的所有命令及其预期输出。
所有测试必须在 Woxi 和 WolframScript 中通过。
也可以查看 [functions.csv](./functions.csv) 文件,
获取所有 Wolfram Language 函数及其实现状态的列表。
Woxi 的运行速度比 WolframScript 更快,因为没有启动内核
和验证许可证的开销。
## 安装
你可以使用 [Rust 的 cargo](https://doc.rust-lang.org/cargo/) 轻松安装:
```
cargo install woxi
```
### 从源码构建
如果你想从源码构建 Woxi,你需要安装 Rust。
你可以从 [rust-lang.org](https://www.rust-lang.org/tools/install) 获取它。
克隆仓库,构建项目,并安装它:
```
git clone https://github.com/ad-si/Woxi
cd Woxi
make install
```
## 用法
你可以直接从命令行使用解释器:
```
woxi eval "1 + 2"
# 3
```
```
woxi eval 'StringJoin["Hello", " ", "World!"]'
# Hello World!
```
或者你可以运行脚本:
```
woxi run tests/scripts/hello_world.wls
```
### Jupyter Notebook
你也可以在 Jupyter notebooks 中使用 Woxi。
使用以下命令安装内核:
```
woxi install-kernel
```
然后启动 Jupyter 服务器:
```
cd examples && jupyter lab
```
或者直接使用我们的
[JupyterLite 实例](https://woxi.ad-si.com/jupyterlite/lab/index.html?path=showcase.ipynb)。
它完全在浏览器中独立运行,不向云端发送任何数据。
## CLI 与 [WolframScript](标签:cargo, CLI 工具, Jupyter Kernel, JupyterLite, Mathematica, Rust, SOC Prime, Wolfram Language, WolframScript 替代, Woxi, 函数式编程, 可视化界面, 开发工具, 开源实现, 科学计算, 符号计算, 编程语言开发, 网络流量审计, 脚本语言, 解释器, 通知系统, 通知系统