Как запустить код Wolfram без тяжелой математики и лицензий
Вы когда-нибудь пробовали установить Mathematica? Это огромный пакет, который весит гигабайты, требует лицензионный ключ и грузится вечность, если вам нужно просто посчитать сложный интеграл или проверить алгоритм на языке Wolfram Language. Для быстрой автоматизации или CLI-скриптов это всегда казалось избыточным.
Недавно наткнулся на проект Woxi. Это интерпретатор Wolfram Language, написанный на Rust. Идея простая: дать разработчикам легкий инструмент, который работает быстро, весит мало и не требует связи с серверами Wolfram для проверки лицензии при каждом запуске.

Что за зверь такой
Woxi (Wolfram Oxidized) — это попытка переписать движок Wolfram Language с нуля. Автор сосредоточился на том, чтобы сделать язык доступным для обычных задач: написания скриптов в терминале и работы в интерактивных блокнотах.
Проект пока не заменяет полноценную Mathematica во всех аспектах — символьные вычисления такого уровня сложности переписать в одиночку почти невозможно. Однако для базовой математики, манипуляций со списками и функционального программирования он уже пригоден.

Главные фишки и зачем это пробовать
Во-первых, это скорость запуска. Если вы вызываете wolframscript, системе нужно инициализировать ядро, проверить подписки и подтянуть кучу зависимостей. Woxi стартует мгновенно. Для коротких команд в CLI это критично.
Во-вторых, полноценная поддержка Jupyter Notebooks. Вы можете поставить ядро Woxi и работать с графиками и вычислениями в привычном интерфейсе без платных облачных сервисов.
Пример того, как выглядит типичный скрипт:
#!/usr/bin/env woxi
(* Выводим квадраты 5 случайных чисел от 1 до 9 *)
RandomInteger[{1, 9}, 5] // Map[#^2&] // Map[Print]
Если вы привыкли к синтаксису Wolfram с его цепочками функций через //, то здесь всё работает именно так, как ожидаешь.
Как это устроено внутри
Интерпретатор написан на Rust, что объясняет его легкость. Автор ведет детальный учет реализованных функций в файле functions.csv в корне репозитория. Если вам интересно, поддерживает ли проект конкретную функцию вроде Solve или Factor, можно заглянуть туда и увидеть статус реализации.
Интересно, что проект проходит тесты на идентичность вывода с оригинальным WolframScript. Это дает надежду на то, что код, написанный для Woxi, будет переносим.

Как начать пользоваться
Установка максимально простая, если у вас в системе есть Cargo:
cargo install woxi
После этого можно сразу проверять выражения в консоли:
woxi eval "1 + 2 * 3"
# 7
Или запустить REPL (интерактивный режим), просто введя woxi. Для тех, кто хочет попробовать без установки, у ребят есть JupyterLite инстанс, который работает прямо в браузере через WebAssembly. Все вычисления при этом происходят локально у вас, никакие данные в облако не улетают.
Кому это пригодится
Woxi вряд ли подойдет ученым, которым нужно считать квантовые поля или строить сложнейшие 3D-модели — для этого пока лучше использовать оригинал. Но проект идеален в следующих случаях:
- Вы хотите использовать Wolfram Language как язык для системных скриптов вместо Bash или Python.
- Вам нужен быстрый калькулятор в терминале, понимающий функциональный стиль.
- Вы учите язык Wolfram и не хотите возиться с тяжеловесным софтом.
- Вам нужно встроить поддержку этого языка в свое Rust-приложение.
Проект сейчас активно развивается, звезд на GitHub пока меньше пятисот, но кодовая база выглядит опрятно. Если вам не хватало легкого способа запускать .wls файлы, Woxi точно стоит того, чтобы потратить на него пять минут.
