Архітектура
RAPS🌼RAPSRust CLI for Autodesk Platform Services.View in glossary побудований на мікроядерній архітектурі, натхненній принципами проєктування Unix, що забезпечує безпеку, тестованість та незалежний розвиток функціоналу.
Філософія проєктування
Мікроядерна архітектура розділяє RAPS на:
- Мінімальне ядро: Основна функціональність компактна, перевірена та надійна
- Передача повідомлень: Компоненти взаємодіють через чітко визначені інтерфейси
- Ізоляція: Збої у розширеннях не призводять до аварії ядра
- Розширюваність: Функції додаються через плагіни, а не модифікації ядра
- Безпека: Поверхня атаки мінімізована в довіреному ядрі
Рівні архітектури
raps-ossraps-derivativeraps-dmraps-daraps-accraps-webhooksraps-realityЯдро (raps-kernel)
Ядро — це мінімальна довірена основа, на якій будується весь функціонал.
Вміст:
- Автентифікація (OAuth2, SSA, управління токенами)
- HTTP🔗HTTPProtocol for web communication.View in glossary-клієнт (з логікою повторних спроб та middleware)
- Управління конфігурацією
- Безпечне зберігання облікових даних (системне сховище ключів)
- Доменні типи (URN🔗URNUnique identifier for objects in APS.View in glossary, BucketKey, ObjectKey)
- Обробка помилок з кодами завершення
- Логування з редагуванням секретів
Обмеження:
- Розмір: Менше 3000 рядків коду (ціль: ~2000 LOC)
- Безпека:
#![deny(unsafe_code)],#![deny(clippy::unwrap_used)] - Покриття тестами: Понад 90% на критичних шляхах
- Залежності: Мінімум зовнішніх залежностей
Продуктивність збірки:
- Інкрементальна перевірка: менше 5 с
- Повна збірка: менше 30 с
Сервісні крейти
Сервісні крейти забезпечують функціональність APS☁️APSAutodesk Platform Services - cloud APIs for CAD/BIM automation.View in glossary API🔌APIInterface for software components to communicate.View in glossary:
raps-oss: Object Storage Service📦OSSAPS cloud storage for files and models.View in glossary (бакети, об’єкти, завантаження, вивантаження)raps-derivative: Model Derivative API🔄Model DerivativeAPS service for translating and extracting CAD data.View in glossary (трансляції, маніфести, деривативи)raps-dm: Data Management API📂Data ManagementAPS service for accessing files in ACC, BIM 360, and Fusion.View in glossary (хаби, проєкти, папки, елементи, версії)raps-da: Design Automation API🤖Design AutomationRun Autodesk desktop apps in the cloud.View in glossary (рушії, активності, робочі елементи)raps-acc: ACC🏗️ACCAutodesk's construction management platform.View in glossary/BIM 360🔵BIM 360Legacy Autodesk construction platform (predecessor to ACC).View in glossary (проблеми, RFI, активи, подання, чек-листи)raps-webhooks: Webhooks🪝WebhooksEvent notifications sent to your application.View in glossary API (підписки, події, верифікація)raps-reality: Reality Capture API (фотосцени, обробка, результати)
Принципи сервісів:
- Залежать лише від
raps-kernel, а не один від одного - Незалежні домени відмов
- Можуть тестуватися ізольовано
- Можуть розвиватися незалежно
Можливості
RAPS забезпечує повне покриття API Autodesk Platform Services:
Основні сервіси
- Автентифікація: 2-legged OAuth🤖2-legged authServer-to-server authentication without user context.View in glossary, 3-legged OAuth👤3-legged authUser-authorized authentication with browser login.View in glossary, Device Code Flow, SSA (Secure Service Accounts)
- Object Storage (OSS): CRUD бакетів, CRUD об’єктів, паралельне завантаження, Signed URLs (S3)
- Model Derivative📤DerivativeAny output generated from model translation.View in glossary: Завдання трансляції, статус та маніфест, завантаження деривативів
- Data Management: Хаби та проєкти, папки та елементи, остання версія та деривативи
Розширені можливості
- Account Admin API: Управління обліковими записами та адміністрування
- Модулі ACC: Issues, RFI, Assets, Submittals, Checklists
- Design Automation🤖AutomationReplacing manual processes with software.View in glossary: Управління рушіями, активностями, робочими елементами
- Reality Capture: Можливості фотограмметричної обробки
- Webhooks: Підписки на події та автоматизація робочих процесів
- Pipelines: Автоматизація робочих процесів через YAML/JSON📋JSONStandard data interchange format.View in glossary
- 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🔁CI/CDAutomated build, test, and deployment pipelines.View in glossary) - Усі платформи:
sccacheдля кешування компіляції,cargo-nextestдля паралельних тестів
Дивіться Налаштування середовища розробки для локальної конфігурації.
Переваги
Безпека:
- Мінімальна поверхня атаки в ядрі
- Незалежний аудит безпеки сервісів
- Чіткі межі безпеки
Тестованість:
- Ядро може тестуватися ізольовано
- Сервіси можуть бути замоковані для інтеграційних тестів
- Досяжне високе покриття тестами
Підтримуваність:
- Чіткий розподіл відповідальностей
- Незалежний розвиток функціоналу
- Простіший код-рев’ю
Продуктивність:
- Швидкі інкрементальні збірки
- Паралельне виконання тестів
- Оптимізоване використання лінкера
Бізнес-модель:
- Основний функціонал залишається відкритим
- Корпоративні можливості забезпечують сталий розвиток
- Чіткий шлях оновлення для користувачів