{"id":28954425,"url":"https://github.com/ad-si/woxi","last_synced_at":"2025-10-24T04:27:45.128Z","repository":{"id":292254055,"uuid":"851960895","full_name":"ad-si/Woxi","owner":"ad-si","description":"Wolfram Language / Mathematica reimplementation in Rust (Wolfram oxidized)","archived":false,"fork":false,"pushed_at":"2025-05-29T20:45:12.000Z","size":421,"stargazers_count":34,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-22T23:05:09.005Z","etag":null,"topics":["cas","math","mathematica","symbolic","wolfram","wolfram-alpha","wolfram-language"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/woxi","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ad-si.png","metadata":{"files":{"readme":"readme.md","changelog":"changelog.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-09-04T01:32:33.000Z","updated_at":"2025-06-02T13:41:47.000Z","dependencies_parsed_at":"2025-05-08T23:51:44.241Z","dependency_job_id":"f17a33f8-9433-4ede-bdd8-799e85b3bbf6","html_url":"https://github.com/ad-si/Woxi","commit_stats":null,"previous_names":["ad-si/woxi"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ad-si/Woxi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ad-si%2FWoxi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ad-si%2FWoxi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ad-si%2FWoxi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ad-si%2FWoxi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ad-si","download_url":"https://codeload.github.com/ad-si/Woxi/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ad-si%2FWoxi/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261539362,"owners_count":23174139,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cas","math","mathematica","symbolic","wolfram","wolfram-alpha","wolfram-language"],"created_at":"2025-06-23T19:10:29.204Z","updated_at":"2025-10-24T04:27:45.123Z","avatar_url":"https://github.com/ad-si.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"./images/logo.png\" alt=\"Wordmark of Woxi\"\u003e\n\n# Woxi\n\nA Rust-based interpreter for a subset of the Wolfram Language.\n\n\n## Features\n\nThe initial focus is to implement a subset of the Wolfram Language\nso that it can be used for CLI scripting and Jupyter notebooks.\nFor example:\n\n```wolfram\n#!/usr/bin/env woxi\n\n(* Print 5 random integers between 1 and 6 *)\nPrint[RandomInteger[{1, 6}, 5]]\n```\n\n![Screenshot of Jupyter Notebook](images/2025-05-18t1620_jupyter.png)\n\nCheck out the [CLI tests](./tests/cli) directory\nto see all currently supported commands and their expected output.\nAll tests must pass with Woxi and WolframScript.\n\nCheck out the [functions.csv](./functions.csv) file\nfor a list of all Wolfram Language functions and their implementation status.\n\nWoxi runs faster than WolframScript as there is no overhead of starting a kernel\nand verifying its license.\n\n\n## Installation\n\nTo use Woxi, you need to have [Rust's cargo](https://doc.rust-lang.org/cargo/)\ninstalled on your system.\n\n```sh\ncargo install woxi\n```\n\n### From Source\n\nIf you want to build Woxi from source, you need to have Rust installed.\nYou can get it from [rust-lang.org](https://www.rust-lang.org/tools/install).\n\nClone the repository, build the project, and install it:\n\n```sh\ngit clone https://github.com/ad-si/Woxi\ncd Woxi\nmake install\n```\n\n\n## Usage\n\nYou can use the interpreter directly from the command line:\n\n```sh\nwoxi eval \"1 + 2\"\n# 3\n```\n\n```sh\nwoxi eval 'StringJoin[\"Hello\", \" \", \"World!\"]'\n# Hello World!\n```\n\nOr you can run a script:\n\n```sh\nwoxi run tests/cli/hello_world.wls\n```\n\n\n### Jupyter Notebook\n\nYou can also use Woxi in Jupyter notebooks.\nInstall the kernel with:\n\n```sh\nwoxi install-kernel\n```\n\nThen start the Jupyter server:\n\n```sh\ncd examples \u0026\u0026 jupyter lab\n```\n\n\n## CLI Comparison With [WolframScript]\n\n[WolframScript]: https://www.wolfram.com/wolframscript/index.php.en\n\nWoxi | WolframScript\n--- | ---\n`woxi eval \"1 + 2\"` | `wolframscript -code \"1 + 2\"`\n`woxi run script.wls` | `wolframscript script.wls`\n`woxi repl` | `wolframscript`\n\n\n## Contributing\n\nContributions are very welcome!\nPlease feel free to submit a Pull Request.\n\n\n### Testing\n\nTo run the test suite:\n\n```sh\nmake test\n```\n\n\n## Related\n\n- [CodeParser] - Parse Wolfram Language as AST or CST.\n- [Mastika] - Rust-based implementation of Wolfram Mathematica.\n- [MMA Clone] - Simple Wolfram Language clone in Haskell.\n- [TS Wolfram] - Toy Wolfram Language interpreter in TypeScript.\n- [Wolfram JS Frontend] - Open-source notebook interface for Wolfram Language.\n- [Wolfram Parser] - Wolfram Language parser in Rust.\n- [wolfram-ast] - A Wolfram Language parser written in pure Rust.\n- [wolfram-exchange] - Wolfram exchange format with Rust.\n- [wolfram-expr] - Representing Wolfram Language expressions in Rust.\n- [Wolfram-Language-Parser] - Wolfram Language parser in Java.\n\n[CodeParser]: https://github.com/WolframResearch/codeparser\n[Mastika]: https://crates.io/crates/mastika\n[MMA Clone]: https://github.com/mrtwistor/mmaclone\n[TS Wolfram]: https://github.com/coffeemug/ts-wolfram\n[Wolfram JS Frontend]: https://github.com/JerryI/wolfram-js-frontend\n[Wolfram Parser]: https://github.com/oovm/wolfram-parser\n[wolfram-ast]: https://crates.io/crates/wolfram-ast\n[wolfram-exchange]: https://github.com/oovm/wolfram-exchange\n[wolfram-expr]: https://github.com/WolframResearch/wolfram-expr-rs\n[Wolfram-Language-Parser]: https://github.com/halirutan/Wolfram-Language-Parser\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fad-si%2Fwoxi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fad-si%2Fwoxi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fad-si%2Fwoxi/lists"}