https://github.com/ad-si/Woxi
Wolfram Language / Mathematica reimplementation in Rust (Wolfram oxidized)
https://github.com/ad-si/Woxi
cas math mathematica symbolic wolfram wolfram-alpha wolfram-language
Last synced: 7 days ago
JSON representation
Wolfram Language / Mathematica reimplementation in Rust (Wolfram oxidized)
- Host: GitHub
- URL: https://github.com/ad-si/Woxi
- Owner: ad-si
- Created: 2024-09-04T01:32:33.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-11-17T14:56:57.000Z (about 2 months ago)
- Last Synced: 2025-12-06T18:14:10.069Z (about 1 month ago)
- Topics: cas, math, mathematica, symbolic, wolfram, wolfram-alpha, wolfram-language
- Language: Rust
- Homepage: https://woxi.ad-si.com
- Size: 442 KB
- Stars: 41
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- Changelog: changelog.md
Awesome Lists containing this project
- awesome-wolfram-language - Woxi - Wolfram Language interpreter written in Rust. (Interpreters)
README

# Woxi
A Rust-based interpreter for a subset of the Wolfram Language.
## Features
The initial focus is to implement a subset of the Wolfram Language
so that it can be used for CLI scripting and Jupyter notebooks.
For example:
```wolfram
#!/usr/bin/env woxi
(* Print 5 random integers between 1 and 6 *)
Print[RandomInteger[{1, 6}, 5]]
```

Check out the [CLI tests](./tests/cli) directory
to see all currently supported commands and their expected output.
All tests must pass with Woxi and WolframScript.
Check out the [functions.csv](./functions.csv) file
for a list of all Wolfram Language functions and their implementation status.
Woxi runs faster than WolframScript as there is no overhead of starting a kernel
and verifying its license.
## Installation
To use Woxi, you need to have [Rust's cargo](https://doc.rust-lang.org/cargo/)
installed on your system.
```sh
cargo install woxi
```
### From Source
If you want to build Woxi from source, you need to have Rust installed.
You can get it from [rust-lang.org](https://www.rust-lang.org/tools/install).
Clone the repository, build the project, and install it:
```sh
git clone https://github.com/ad-si/Woxi
cd Woxi
make install
```
## Usage
You can use the interpreter directly from the command line:
```sh
woxi eval "1 + 2"
# 3
```
```sh
woxi eval 'StringJoin["Hello", " ", "World!"]'
# Hello World!
```
Or you can run a script:
```sh
woxi run tests/cli/hello_world.wls
```
### Jupyter Notebook
You can also use Woxi in Jupyter notebooks.
Install the kernel with:
```sh
woxi install-kernel
```
Then start the Jupyter server:
```sh
cd examples && jupyter lab
```
## CLI Comparison With [WolframScript]
[WolframScript]: https://www.wolfram.com/wolframscript/index.php.en
Woxi | WolframScript
--- | ---
`woxi eval "1 + 2"` | `wolframscript -code "1 + 2"`
`woxi run script.wls` | `wolframscript script.wls`
`woxi repl` | `wolframscript`
## Contributing
Contributions are very welcome!
Please feel free to submit a Pull Request.
### Testing
To run the test suite:
```sh
make test
```