An open API service indexing awesome lists of open source software.

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)

Awesome Lists containing this project

README

          

Wordmark of Woxi

# 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]]
```

![Screenshot of Jupyter Notebook](images/2025-05-18t1620_jupyter.png)

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
```