Ця сторінка ще не перекладена українською. Показано англійську версію. Переглянути англійською

Архітектура

RAPS побудований на мікроядерній архітектурі, натхненній принципами проєктування Unix, що забезпечує безпеку, тестованість та незалежний розвиток функціоналу.

Філософія проєктування

Мікроядерна архітектура розділяє RAPS на:

  1. Мінімальне ядро: Основна функціональність компактна, перевірена та надійна
  2. Передача повідомлень: Компоненти взаємодіють через чітко визначені інтерфейси
  3. Ізоляція: Збої у розширеннях не призводять до аварії ядра
  4. Розширюваність: Функції додаються через плагіни, а не модифікації ядра
  5. Безпека: Поверхня атаки мінімізована в довіреному ядрі

Рівні архітектури

User Interfaces
CLIclap
MCP Serverrmcp
GitHub Actionyaml
Dockercontainer
TUIratatui
RAPS Application
rapsMain Application
raps-kernelCore Kernel
Service Crates
raps-oss
raps-derivative
raps-dm
raps-da
raps-acc
raps-webhooks
raps-reality

Ядро (raps-kernel)

Ядро — це мінімальна довірена основа, на якій будується весь функціонал.

Вміст:

  • Автентифікація (OAuth2, SSA, управління токенами)
  • HTTP-клієнт (з логікою повторних спроб та middleware)
  • Управління конфігурацією
  • Безпечне зберігання облікових даних (системне сховище ключів)
  • Доменні типи (URN, BucketKey, ObjectKey)
  • Обробка помилок з кодами завершення
  • Логування з редагуванням секретів

Обмеження:

  • Розмір: Менше 3000 рядків коду (ціль: ~2000 LOC)
  • Безпека: #![deny(unsafe_code)], #![deny(clippy::unwrap_used)]
  • Покриття тестами: Понад 90% на критичних шляхах
  • Залежності: Мінімум зовнішніх залежностей

Продуктивність збірки:

  • Інкрементальна перевірка: менше 5 с
  • Повна збірка: менше 30 с

Сервісні крейти

Сервісні крейти забезпечують функціональність APS API:

  • raps-oss: Object Storage Service (бакети, об’єкти, завантаження, вивантаження)
  • raps-derivative: Model Derivative API (трансляції, маніфести, деривативи)
  • raps-dm: Data Management API (хаби, проєкти, папки, елементи, версії)
  • raps-da: Design Automation API (рушії, активності, робочі елементи)
  • raps-acc: ACC/BIM 360 (проблеми, RFI, активи, подання, чек-листи)
  • raps-webhooks: Webhooks API (підписки, події, верифікація)
  • raps-reality: Reality Capture API (фотосцени, обробка, результати)

Принципи сервісів:

  • Залежать лише від raps-kernel, а не один від одного
  • Незалежні домени відмов
  • Можуть тестуватися ізольовано
  • Можуть розвиватися незалежно

Можливості

RAPS забезпечує повне покриття API Autodesk Platform Services:

Основні сервіси

  • Автентифікація: 2-legged OAuth, 3-legged OAuth, Device Code Flow, SSA (Secure Service Accounts)
  • Object Storage (OSS): CRUD бакетів, CRUD об’єктів, паралельне завантаження, Signed URLs (S3)
  • Model Derivative: Завдання трансляції, статус та маніфест, завантаження деривативів
  • Data Management: Хаби та проєкти, папки та елементи, остання версія та деривативи

Розширені можливості

  • Account Admin API: Управління обліковими записами та адміністрування
  • Модулі ACC: Issues, RFI, Assets, Submittals, Checklists
  • Design Automation: Управління рушіями, активностями, робочими елементами
  • Reality Capture: Можливості фотограмметричної обробки
  • Webhooks: Підписки на події та автоматизація робочих процесів
  • Pipelines: Автоматизація робочих процесів через YAML/JSON
  • Plugins: Розширення функціоналу власними командами
  • MCP Server: Інтеграція з AI-асистентами через Model Context Protocol
  • TUI: Термінальний інтерфейс для інтерактивних операцій

Команди збірки

# Стандартна збірка (включає всі можливості)
cargo build

# Мінімальна збірка (лише ядро + основні сервіси)
cargo build --no-default-features --features core

Вивід версії

$ raps --version
raps 4.14.0

Цільові показники продуктивності

RAPS оптимізований для швидкого циклу зворотного зв’язку під час розробки:

МетрикаЦільВимірювання
Перевірка ядра (інкрементальна)Менше 5 сПісля зміни одного файлу
Перевірка workspace (інкрементальна)Менше 30 сПісля зміни одного файлу
Запуск CLI (--help)Менше 100 мсХолодний старт
Завантаження файлу (100 МБ, паралельно)Менше 30 сЗалежить від мережі (100 Мбіт/с)
Виклик MCP toolМенше 200 мсІнтеграція з AI-асистентом

Інструменти збірки:

  • Windows: лінкер lld-link (через LLVM)
  • Linux: лінкер mold (у CI)
  • Усі платформи: sccache для кешування компіляції, cargo-nextest для паралельних тестів

Дивіться Налаштування середовища розробки для локальної конфігурації.

Переваги

Безпека:

  • Мінімальна поверхня атаки в ядрі
  • Незалежний аудит безпеки сервісів
  • Чіткі межі безпеки

Тестованість:

  • Ядро може тестуватися ізольовано
  • Сервіси можуть бути замоковані для інтеграційних тестів
  • Досяжне високе покриття тестами

Підтримуваність:

  • Чіткий розподіл відповідальностей
  • Незалежний розвиток функціоналу
  • Простіший код-рев’ю

Продуктивність:

  • Швидкі інкрементальні збірки
  • Паралельне виконання тестів
  • Оптимізоване використання лінкера

Бізнес-модель:

  • Основний функціонал залишається відкритим
  • Корпоративні можливості забезпечують сталий розвиток
  • Чіткий шлях оновлення для користувачів