Skip to content

Latest commit

 

History

History
521 lines (404 loc) · 25 KB

File metadata and controls

521 lines (404 loc) · 25 KB
Логотип RPAForge

RPAForge

Open-Source RPA Studio — Визуальная автоматизация для разработчиков

CI PyPI version Python License codecov PRs Welcome

Скачать · Быстрый старт · Документация · Библиотеки · Дорожная карта · Участие в проекте

🇬🇧 English · 🇩🇪 Deutsch · 🇪🇸 Español


RPAForge — современная open-source студия роботизированной автоматизации процессов (RPA). Проектируйте сценарии автоматизации визуально, отлаживайте их пошагово и запускайте с производительным Python-движком — без привязки к вендору и лицензионных сборов.

from rpaforge import StudioEngine
from rpaforge_libraries.DesktopUI import DesktopUI

engine = StudioEngine()
engine.executor.register_library("DesktopUI", DesktopUI())

builder = engine.create_process("Notepad Automation")
builder.add_task("Open and Type", [
    ("DesktopUI.Open Application",  {"executable": "notepad.exe"}),
    ("DesktopUI.Wait For Window",   {"title": "Notepad", "timeout": "10s"}),
    ("DesktopUI.Input Text",        {"text": "Hello from RPAForge!"}),
    ("DesktopUI.Close Window",      {}),
])

result = engine.run(builder.build())
print(f"Status: {result.status}")

Скачать

Просто хотите пользоваться RPAForge? Скачайте свежий установщик для Windows со страницы релизов. Установщик содержит вшитый Python-движок, поэтому отдельная установка Python не нужна — установите, запустите и начинайте создавать автоматизации.

Если хотите собрать из исходников — см. Быстрый старт ниже.


Возможности

Визуальный дизайнер Конструктор процессов с drag-and-drop на базе React Flow — узлы, связи, подсхемы, масштабирование, мини-карта
Генерация диаграмм через ИИ Опишите процесс простым языком и получите черновик диаграммы — модели OpenAI-совместимые или Anthropic, с валидацией и предпросмотром «Применить/Отклонить» перед вставкой на канвас
Встроенный отладчик Точки останова, пошаговое выполнение (с обходом/входом/выходом), инспектор переменных, стек вызовов, условные остановки
14 RPA-библиотек 120+ готовых действий для Desktop, Web, Excel, DataFrames, базы данных, OCR, HTTP, учётных данных и многого другого
Python Bridge Asyncio JSON-RPC сервер — Electron взаимодействует с Python по IPC с полной типобезопасностью
Генерация кода Диаграмма → Python, с валидацией топологии перед каждым запуском
Безопасность Защита от SQL-инъекций, path traversal, небезопасного getattr и валидация IPC-пакетов (v0.3.1)
Постоянное хранилище Автосохранение процессов, переменных и истории выполнения в IndexedDB
Многоязычность Интерфейс и логирование библиотек на английском, русском, немецком, испанском и китайском — помогите перевести на новый язык
Кроссплатформенность Windows, macOS, Linux — единая кодовая база

Архитектура

┌──────────────────────────────────────────────────────────────────┐
  RPAForge Studio  (Electron 42 + React 19 + TailwindCSS 4)      
                                                                  
   Designer  Debugger  Console  Recorder                      
   React Flow · Monaco Editor · Zustand · Vite 8                 
└────────────────────────────┬─────────────────────────────────────┘
                               JSON-RPC over IPC / Stdio
┌────────────────────────────┴─────────────────────────────────────┐
  Python Bridge Server  (asyncio JSON-RPC)                        
                                                                  
   StudioEngine · ProcessRunner · Debugger · Recorder             
   CodeGenerator · Topology Validator                             
└────────────────────────────┬─────────────────────────────────────┘
                             
┌────────────────────────────┴─────────────────────────────────────┐
  RPA Libraries  (14 modules · 120+ activities)                    
                                                                  
  DesktopUI  WebUI   Excel    Database  OCR   Credentials         
  File       HTTP    DateTime String    Flow  Variables  Spy     
└──────────────────────────────────────────────────────────────────┘

Пакеты

rpaforge/
├── packages/
   ├── core/           # Python-движок — runner, debugger, bridge, codegen
   ├── libraries/      # Модули RPA-библиотек
   ├── studio/         # Десктопное приложение Electron + React
   └── orchestrator/   # Control Tower (планируется)
├── docs/               # Документация MKDocs
├── .github/            # CI/CD workflows (ci, release, codeql, docs)
└── tools/              # Скрипты релиза

Быстрый старт

Требования

Инструмент Версия
Python 3.10 – 3.13
Node.js 20+
pnpm 9+ (или npm 9+)
Git любая
VS Build Tools только Windows, для нативных модулей

Установка и запуск

# 1. Клонирование
git clone https://github.com/chelslava/rpaforge.git
cd rpaforge

# 2. Python-пакеты (режим разработки)
pip install -r requirements-dev.txt
pre-commit install
pip install -e packages/core
pip install -e packages/libraries

# 3. Studio UI
cd packages/studio
pnpm install          # или: npm ci --include=optional

# 4. Проверка
cd ../..
pytest packages/core/tests -v
cd packages/studio && pnpm test && cd ../..

Запуск студии

cd packages/studio
pnpm dev              # Vite dev server + Electron hot-reload

Настройка по платформам

🪟 Windows 11

Требования:

  • Python 3.10+ (скачать с python.org)
  • Node.js 20+ и pnpm (скачать с nodejs.org)
  • Visual Studio Build Tools (требуется для нативных модулей)
    # Скачать с: https://visualstudio.microsoft.com/visual-cpp-build-tools/

Установка:

# Клонирование и настройка
git clone https://github.com/chelslava/rpaforge.git
cd rpaforge

# Создание виртуального окружения
python -m venv .venv
.venv\Scripts\activate

# Установка зависимостей
pip install -r requirements-dev.txt
pre-commit install
pip install -e packages/core
pip install -e packages/libraries

# Установка Studio
cd packages/studio
pnpm install
pnpm dev

Запуск из PowerShell:

# Python-тесты
pytest packages/core/tests -v
pytest packages/libraries/tests -v

# Studio
cd packages/studio
pnpm dev
pnpm test
🍎 macOS (Intel & Apple Silicon)

Требования:

# Установка Xcode Command Line Tools
xcode-select --install

# Установка Homebrew (если не установлен)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Установка необходимых инструментов
brew install python@3.12 node pnpm

Установка:

# Клонирование и настройка
git clone https://github.com/chelslava/rpaforge.git
cd rpaforge

# Создание виртуального окружения
python3 -m venv .venv
source .venv/bin/activate

# Установка зависимостей
pip install -r requirements-dev.txt
pre-commit install
pip install -e packages/core
pip install -e packages/libraries

# Установка Studio
cd packages/studio
pnpm install
pnpm dev

Примечание для Apple Silicon (M1/M2/M3):

# Некоторые зависимости требуют нативной сборки, убедитесь что Xcode установлен полностью
xcode-select --install
# Если возникают проблемы, сбросьте путь Xcode
sudo xcode-select --reset
🐧 Linux (Ubuntu/Debian/Fedora)

Требования для Ubuntu/Debian:

# Обновление списка пакетов
sudo apt-get update

# Установка системных зависимостей
sudo apt-get install -y \
  python3.12 python3.12-venv python3.12-dev \
  nodejs npm \
  build-essential \
  git

# Установка pnpm
npm install -g pnpm

Требования для Fedora/RHEL:

# Установка системных зависимостей
sudo dnf install -y \
  python3.12 python3.12-devel \
  nodejs npm \
  gcc g++ make \
  git

# Установка pnpm
npm install -g pnpm

Требования для автоматизации рабочего стола (опционально):

# Ubuntu/Debian
sudo apt-get install -y libnss3 libnspr4 libatk-bridge2.0-0 libdrm2 libxkbcommon0 libgbm1

# Fedora/RHEL
sudo dnf install -y nss nspr atk libdrm libxkbcommon libgbm

Установка:

# Клонирование и настройка
git clone https://github.com/chelslava/rpaforge.git
cd rpaforge

# Создание виртуального окружения
python3.12 -m venv .venv
source .venv/bin/activate

# Установка зависимостей
pip install -r requirements-dev.txt
pre-commit install
pip install -e packages/core
pip install -e packages/libraries

# Установка Studio
cd packages/studio
pnpm install
pnpm dev

Системные зависимости

Поддержка OCR (все платформы)
pip install -e "packages/libraries[ocr]"

# Windows: https://github.com/UB-Mannheim/tesseract/wiki
# Linux:   sudo apt-get install tesseract-ocr
# macOS:   brew install tesseract
Веб-автоматизация (Playwright)
pip install -e "packages/libraries[web]"
playwright install    # Загружает бинарные файлы браузеров

RPA-библиотеки

Библиотека Действия Описание Доп. зависимости
DesktopUI 20+ Автоматизация Windows UI — Win32, WPF, Java pywinauto, pillow
WebUI 15+ Автоматизация браузеров (Chrome, Firefox, Safari) playwright
Excel 8+ Чтение/запись XLSX-таблиц openpyxl
DataFrames 28+ Операции с табличными данными — фильтр, сортировка, объединение, агрегация polars
Database 6+ SQL-запросы через SQLAlchemy ORM sqlalchemy
OCR 5+ Распознавание текста — Tesseract + EasyOCR pytesseract, easyocr
Credentials 4+ Зашифрованное хранилище учётных данных ОС cryptography, keyring
File 8+ Операции с файлами и папками
HTTP 5+ REST API запросы requests
DateTime 6+ Утилиты для работы с датой и временем
String 7+ Манипуляции со строками
Variables 4+ Управление переменными и областями видимости
Flow 4+ Управление потоком — if, while, for
Spy 3+ Инспектор UI-элементов в реальном времени uiautomation, pynput

Устанавливайте только необходимое:

pip install -e "packages/libraries[desktop]"    # DesktopUI
pip install -e "packages/libraries[web]"         # WebUI
pip install -e "packages/libraries[dataframes]"  # DataFrames (polars)
pip install -e "packages/libraries[all]"         # Всё

Разработка

Основные команды

make test         # Запуск всех Python-тестов
make lint         # ruff + mypy
make format       # ruff format
make docs         # Сборка MKDocs
make docs-serve   # Локальный сервер документации
make studio-dev   # Studio hot-reload

cd packages/studio
pnpm test         # Vitest
pnpm build        # Продакшен-сборка

Технологический стек

Backend (Python)

  • asyncio JSON-RPC мост
  • ruff для линтинга и форматирования
  • pytest + pytest-asyncio для тестирования
  • mypy для проверки типов

Frontend (TypeScript)

  • React 19 + Vite 8
  • React Flow 11 — визуальный редактор диаграмм
  • Zustand 5 — управление состоянием
  • Monaco Editor — встроенный редактор кода
  • TailwindCSS 4 — утилитарные стили
  • Electron 42 — упаковка в десктопное приложение

Статус проекта

Пакет Описание Версия Статус
rpaforge-core Движок, отладчик, JSON-RPC мост v0.3.5 ✅ Стабильный
rpaforge-libraries 14 RPA-библиотек v0.3.5 ✅ Стабильный
rpaforge-studio Electron + React десктопный UI v0.3.5 🔄 Альфа
rpaforge-orchestrator Центр управления 🔜 Планируется

Дорожная карта

v0.3.1 — Безопасность и стабильность (выпущена)

  • ✅ Защита от SQL-инъекций, path traversal, небезопасного getattr
  • ✅ Валидация IPC-пакетов со строгим соблюдением схемы
  • ✅ Инфраструктура IndexedDB — автосохранение, переменные, история
  • ✅ Встроенная Python-валидация на базе Ruff с подсветкой ошибок
  • ✅ Постоянное логирование с ротацией файлов
  • ✅ Режим заморозки для оверлея Spy

v0.3.2 — Надёжность (выпущена)

  • ✅ Сериализованная блокировка жизненного цикла для _handle_run_diagram — устранение состояний гонки при параллельном выполнении
  • ✅ Безопасное разрешение пути к ruff через shutil.which()
  • ✅ Аудит безопасности зависимостей — устранено 14 предупреждений Dependabot через npm overrides

v0.3.3 — DataFrames и улучшение отладки (выпущена)

  • Библиотека DataFrames — 28 действий для табличных данных на базе Polars (загрузка, фильтрация, сортировка, объединение, агрегация и другое)
  • Тип переменной DataFrame — первоклассный тип dataframe в визуальном дизайнере
  • Визуальный просмотр таблиц в отладчике — просмотр содержимого DataFrame в точке останова
  • ✅ Исправления i18n — все строки UI переведены на английский и русский

v0.3.4 — Онбординг и i18n (выпущена)

  • Тур онбординга — приветственный тур с экраном загрузки и индикатором прогресса
  • Иконка приложения и заставка — полированный процесс запуска с инициализацией
  • Error boundary — улучшенная обработка ошибок компонентов
  • ✅ i18n: тур онбординга полностью переведён на все поддерживаемые языки (en, ru, de, es, zh)
  • Китайский язык (zh) — добавлен полный перевод интерфейса
  • ✅ Локали встроены в приложение для работы офлайн и по протоколу file://

v0.3.5 — Установщик со вшитым движком (текущая)

  • Самодостаточный установщик для Windows — Python-движок заморожен через PyInstaller и встроен, отдельная установка Python пользователю не нужна
  • Вшитые Playwright Chromium и Tesseract OCR — веб-автоматизация и OCR работают из коробки
  • ✅ Исправлено «Не удалось загрузить активности» в установленных сборках — мост запускает вшитый движок с увеличенным окном холодного старта

v0.4.0 — Расширенные сценарии

  • ✅ Умный рекордер действий — запись и воспроизведение действий пользователя (UI реализован)
  • ✅ Извлечение селекторов и самовосстанавливающиеся локаторы (панель SelectorBuilder реализована)
  • ✅ Улучшения панели «Обозреватель переменных» (группировка по области видимости и метки типов реализованы)
  • ✅ Браузер истории выполнения (панель и Zustand-хранилище реализованы)
  • ✅ UI для маппинга параметров подсхем (ParameterMappingDialog реализован)
  • ✅ Система плагинов и SDK для разработки библиотек (discovery через entry points, decorator API, пример-пакет + гайд реализованы; CLI-скаффолд и маркетплейс — ещё в планах)
  • ✅ Интеграция с системой контроля версий (git-aware projects) (панель Source Control — статус/staging/commit/push/pull/diff/история, настройка remote URL — реализовано)

v0.5.0 — Маркетплейс шаблонов проектов

  • Маркетплейс шаблонов проектов

v1.0.0 — Готовность к продакшену (Q1 2027)

  • Оркестратор — Control Tower для выполнения на нескольких машинах
  • Планировщик и движок триггеров
  • Расширенный мониторинг и оповещения
  • Корпоративная аутентификация (LDAP/SSO)

Документация

Ресурс Описание
Начало работы Установка и настройка системы
Быстрый старт Создайте свою первую автоматизацию
Руководство разработчика Архитектура, паттерны, соглашения по коду
Участие в проекте Как вносить вклад в код или документацию
Руководство переводчика Добавьте переводы на новые языки
Журнал изменений Примечания к выпускам
Дорожная карта Детальная дорожная карта функций

Участие в проекте

Приветствуются любые вклады — сообщения об ошибках, запросы новых функций, документация и код.

# Fork → clone → branch
git checkout -b feat/my-feature

# Внесите изменения, затем
make test && make lint

# Коммит (Conventional Commits)
git commit -m "feat(libraries): add PDF extraction keyword"

# Откройте PR в main

Смотрите CONTRIBUTING.md для ознакомления с полным процессом, стандартами кодирования и чек-листом PR.


Благодарности

  • Визуальный дизайнер на базе React Flow и Electron
  • Автоматизация рабочего стола через pywinauto
  • Веб-автоматизация через Playwright
  • Вдохновение от UiPath, Blue Prism и Automation Anywhere

GitHub Discussions · Трекер задач

Apache License 2.0 — Создано с заботой сообществом RPAForge