Wolfram Language / Mathematica reimplementation in Rust (Wolfram oxidized)
914
stars
8,577
commits
Rust
primary language
Sep 11, 2026
updated
An interpreter for the Wolfram Language powered by Rust.

You can find the official documentation at woxi.ad-si.com/docs.
The initial focus is to implement a subset of the Wolfram Language so that it can be used for CLI scripting and notebooks. For example:
#!/usr/bin/env woxi
(* Print the square of 5 random integers between 1 and 9 *)
RandomInteger[{1, 9}, 5] // Map[#^2&] // Map[Print]
It has full support for Jupyter Notebooks including graphical output:

[!TIP] Try it out yourself in our JupyterLite instance!
Check out the CLI tests directory to see all currently supported commands and their expected output. All tests must pass with Woxi and WolframScript.
Also check out the 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.
You can easily install it with Rust's cargo:
cargo install woxi
Every GitHub release ships archives
of the woxi CLI and the Woxi Studio notebook editor for
Linux, macOS, and Windows (x86-64 and arm64),
alongside a SHA256SUMS.txt to verify them against.
The macOS build of Woxi Studio comes as a Woxi Studio.app bundle.
It is not notarized, so macOS quarantines it after the download —
remove the flag once after unzipping:
xattr -dr com.apple.quarantine "Woxi Studio.app"
Woxi is also available on npm as woxi-wasm
as a WebAssembly build with JavaScript bindings (see npm/):
npm install woxi-wasm
import { evaluate } from "woxi-wasm"
evaluate("Plus[1, 2]") //=> "3"
Woxi is also available on PyPI as a Python package with pre-built wheels:
pip install woxi
import woxi
woxi.interpret("Plus[1, 2]") # => '3'
See woxi-py/readme.md for the full Python API.
If you want to build Woxi from source, you need to have Rust installed. You can get it from rust-lang.org.
Clone the repository, build the project, and install it:
git clone https://github.com/ad-si/Woxi
cd Woxi
make install
On macOS, make install additionally builds the Woxi Studio notebook editor
and installs it as a .app bundle at /Applications/Woxi Studio.app,
registered with Launch Services so that .nb, .wl, and .wls files appear
under Finder's "Open With…" menu.
You can use the interpreter directly from the command line:
woxi eval "1 + 2"
# 3
woxi eval 'StringJoin["Hello", " ", "World!"]'
# Hello World!
Or you can run a script:
woxi run tests/scripts/hello_world.wls
Or start an interactive REPL, where definitions and % / Out[] history
persist across inputs:
woxi repl
# In[1]:= x = 5
# Out[1]= 5
# In[2]:= x^2
# Out[2]= 25
You can also use Woxi in Jupyter notebooks. Install the kernel with:
woxi install-kernel
The kernelspec is embedded in the woxi binary,
so this works from any directory and with any installation method.
It is registered with jupyter kernelspec install when the jupyter command
is available, and written to Jupyter's kernels directory directly otherwise.
Use --system to install it for all users instead of only the current one.
Then start the Jupyter server:
cd examples && jupyter lab
Or simply use our JupyterLite instance. It runs fully self-contained in your browser and no data is send to the cloud.
| Woxi | WolframScript |
|---|---|
woxi eval "1 + 2" | wolframscript -code "1 + 2" |
woxi run script.wls | wolframscript script.wls |
woxi run notebook.nb | not supported (can't run .nb files directly) |
woxi repl | wolframscript (no arguments) |
Contributions are very welcome! Please feel free to submit a Pull Request.
To run the test suite:
make test
Rust
95.6%
Wolfram Language
2.9%
Wolfram Language / Mathematica reimplementation in Rust (Wolfram oxidized)
914
stars
8,577
commits
Rust
primary language
Sep 11, 2026
updated
An interpreter for the Wolfram Language powered by Rust.

You can find the official documentation at woxi.ad-si.com/docs.
The initial focus is to implement a subset of the Wolfram Language so that it can be used for CLI scripting and notebooks. For example:
#!/usr/bin/env woxi
(* Print the square of 5 random integers between 1 and 9 *)
RandomInteger[{1, 9}, 5] // Map[#^2&] // Map[Print]
It has full support for Jupyter Notebooks including graphical output:

[!TIP] Try it out yourself in our JupyterLite instance!
Check out the CLI tests directory to see all currently supported commands and their expected output. All tests must pass with Woxi and WolframScript.
Also check out the 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.
You can easily install it with Rust's cargo:
cargo install woxi
Every GitHub release ships archives
of the woxi CLI and the Woxi Studio notebook editor for
Linux, macOS, and Windows (x86-64 and arm64),
alongside a SHA256SUMS.txt to verify them against.
The macOS build of Woxi Studio comes as a Woxi Studio.app bundle.
It is not notarized, so macOS quarantines it after the download —
remove the flag once after unzipping:
xattr -dr com.apple.quarantine "Woxi Studio.app"
Woxi is also available on npm as woxi-wasm
as a WebAssembly build with JavaScript bindings (see npm/):
npm install woxi-wasm
import { evaluate } from "woxi-wasm"
evaluate("Plus[1, 2]") //=> "3"
Woxi is also available on PyPI as a Python package with pre-built wheels:
pip install woxi
import woxi
woxi.interpret("Plus[1, 2]") # => '3'
See woxi-py/readme.md for the full Python API.
If you want to build Woxi from source, you need to have Rust installed. You can get it from rust-lang.org.
Clone the repository, build the project, and install it:
git clone https://github.com/ad-si/Woxi
cd Woxi
make install
On macOS, make install additionally builds the Woxi Studio notebook editor
and installs it as a .app bundle at /Applications/Woxi Studio.app,
registered with Launch Services so that .nb, .wl, and .wls files appear
under Finder's "Open With…" menu.
You can use the interpreter directly from the command line:
woxi eval "1 + 2"
# 3
woxi eval 'StringJoin["Hello", " ", "World!"]'
# Hello World!
Or you can run a script:
woxi run tests/scripts/hello_world.wls
Or start an interactive REPL, where definitions and % / Out[] history
persist across inputs:
woxi repl
# In[1]:= x = 5
# Out[1]= 5
# In[2]:= x^2
# Out[2]= 25
You can also use Woxi in Jupyter notebooks. Install the kernel with:
woxi install-kernel
The kernelspec is embedded in the woxi binary,
so this works from any directory and with any installation method.
It is registered with jupyter kernelspec install when the jupyter command
is available, and written to Jupyter's kernels directory directly otherwise.
Use --system to install it for all users instead of only the current one.
Then start the Jupyter server:
cd examples && jupyter lab
Or simply use our JupyterLite instance. It runs fully self-contained in your browser and no data is send to the cloud.
| Woxi | WolframScript |
|---|---|
woxi eval "1 + 2" | wolframscript -code "1 + 2" |
woxi run script.wls | wolframscript script.wls |
woxi run notebook.nb | not supported (can't run .nb files directly) |
woxi repl | wolframscript (no arguments) |
Contributions are very welcome! Please feel free to submit a Pull Request.
To run the test suite:
make test
Rust
95.6%
Wolfram Language
2.9%