Что такое Rach и почему это важно
Rach — это компактный скриптовый язык, разработанный для упрощения автоматизации рутинных задач. В отличие от тяжелых фреймворков, Rach компилируется в единственный статически связанный бинарный файл на Rust, не требуя установки среды выполнения (runtime). Единственные внешние зависимости — это curl, tar и unzip, необходимые для автоматической установки веб-драйверов.
Ключевая особенность проекта — ориентация на естественный язык. Команды пишутся словами, а не символами, что снижает порог входа для новичков, но сохраняет мощь для сложных сценариев.
Ключевые возможности и метрики
Язык поддерживает кроссплатформенную работу (Linux, macOS, Windows) и архитектуру x86_64/aarch64. Установка занимает одну строку в терминале, а скрипты выполняются мгновенно благодаря нативной компиляции.
| Функция | Реализация в Rach | Пример синтаксиса |
|---|---|---|
| Работа с файлами | Чтение, запись, удаление, проверка существования | create_file("/tmp/x", "hi") |
| Системные команды | Выполнение shell-команд с перехватом вывода | run_command("ls -la") |
| Установка пакетов | Автоопределение менеджера (brew, apt, winget) | install_package("htop") |
| Браузерная автоматизация | W3C WebDriver (Chrome, Firefox, Edge, Safari) | open in browser("url") |
| Генерация кода | DSL для bash и других языков | bash = generate ... |
Браузерная автоматизация через W3C WebDriver
Rach выделяется среди простых скриптовых языков полноценной поддержкой браузеров. Интерпретатор автоматически управляет драйверами:
- Если драйвер (
chromedriver,geckodriver) уже есть в PATH, он используется. - Если нет — драйвер скачивается в кэш (
~/.cache/rach/drivers/) автоматически. - Поддерживаются все основные действия: навигация, скроллинг, нажатие клавиш, скриншоты.
Это позволяет создавать тестовые сценарии или парсеры без подключения тяжелых библиотек вроде Selenium WebDriver в виде отдельного сервиса.
Синтаксис и структура
Скрипты Rach могут быть «голыми» (последовательность команд) или «обернутыми» (с явным объявлением main и функций). Язык поддерживает:
- Переменные:
set x = 5или простоx = 5. - Условия: Проверка ОС (
if linux,if not windows). Полноценные логические условия пока не поддерживаются. - Циклы: Итерация по спискам, диапазонам чисел и строкам (сплит по запятой).
- Модули:
import system,import webслужат скорее для документирования намерений, так как стандартная библиотека встроена в бинарник.
Установка и запуск
Для установки не требуется компилятор Rust. Достаточно выполнить одну команду:
curl -fsSL https://raw.githubusercontent.com/sirmir25/Rach/main/installers/install.sh | bash
После установки скрипт запускается командой rach script.rach. Проект распространяется под свободной лицензией, исходный код доступен на GitHub.
Источник: Github ↗
