Architecture
RAPS🌼RAPSRust CLI for Autodesk Platform Services.View in glossary follows a microkernel architecture inspired by Unix OS design principles, enabling security, testability, and independent feature evolution.
Design Philosophy
The microkernel architecture separates RAPS into:
- Minimal Kernel: Core functionality is small, audited, and battle-tested
- Message Passing: Components communicate through well-defined interfaces
- Isolation: Failures in extensions don’t crash the kernel
- Extensibility: Features added via plugins, not kernel modifications
- Security: Attack surface minimized in the trusted kernel
Architecture Layers
raps-ossraps-derivativeraps-dmraps-daraps-accraps-webhooksraps-realityKernel (raps-kernel)
The kernel is the minimal trusted foundation that all features build upon.
Contents:
- Authentication (OAuth2, SSA, token🎟️TokenCredential for API authentication.View in glossary management)
- HTTP🔗HTTPProtocol for web communication.View in glossary client (with retry logic and middleware)
- Configuration⚙️ConfigurationSettings controlling application behavior.View in glossary management
- Secure credential storage (OS keyring🔑KeychainSecure OS storage for credentials.View in glossary)
- Domain types (URN🔗URNUnique identifier for objects in APS.View in glossary, BucketKey, ObjectKey)
- Error handling with exit codes
- Logging with secret🔒SecretEncrypted sensitive configuration value.View in glossary redaction
Constraints:
- Size: Less than 3000 lines of code (target: ~2000 LOC)
- Safety:
#![deny(unsafe_code)],#![deny(clippy::unwrap_used)] - Test Coverage: Greater than 90% on critical paths
- Dependencies: Minimal external dependencies
Build Performance:
- Incremental check: Less than 5s
- Full build: Less than 30s
Service Crates
Service crates provide APS☁️APSAutodesk Platform Services - cloud APIs for CAD/BIM automation.View in glossary API🔌APIInterface for software components to communicate.View in glossary functionality:
raps-oss: Object Storage Service📦OSSAPS cloud storage for files and models.View in glossary (buckets, objects, uploads, downloads)raps-derivative: Model Derivative API🔄Model DerivativeAPS service for translating and extracting CAD data.View in glossary (translations, manifests, derivatives)raps-dm: Data Management API📂Data ManagementAPS service for accessing files in ACC, BIM 360, and Fusion.View in glossary (hubs, projects, folders, items, versions)raps-da: Design Automation API🤖Design AutomationRun Autodesk desktop apps in the cloud.View in glossary (engines, activities, work items)raps-acc: ACC🏗️ACCAutodesk's construction management platform.View in glossary/BIM 360🔵BIM 360Legacy Autodesk construction platform (predecessor to ACC).View in glossary (issues, RFIs, assets, submittals, checklists)raps-webhooks: Webhooks🪝WebhooksEvent notifications sent to your application.View in glossary API (subscriptions, events, verification)raps-reality: Reality Capture API (photoscenes, processing, results)
Service Principles:
- Depend only on
raps-kernel, not on each other - Independent failure domains
- Can be tested in isolation
- Can evolve independently
Features
RAPS provides comprehensive coverage of Autodesk Platform Services APIs:
Core Services
- Authentication: 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): Bucket🪣BucketContainer for storing objects in OSS.View in glossary CRUD, Object CRUD, Parallel Uploads, Signed URLs (S3)
- Model Derivative📤DerivativeAny output generated from model translation.View in glossary: Translation⚙️Translation JobBackground process converting CAD files to viewable formats.View in glossary Jobs, Status & Manifest📋ManifestMetadata about a translated model and its derivatives.View in glossary, Derivative Download
- Data Management: Hubs & Projects, Folders & Items, Tip Version & Derivatives
Extended Features
- Account Admin API: Account management and administration
- ACC Modules: Issues, RFIs, Assets, Submittals, Checklists
- Design Automation🤖AutomationReplacing manual processes with software.View in glossary: Engines, Activities, Work Items management
- Reality Capture: Photogrammetry processing capabilities
- Webhooks: Event subscriptions and workflow📈WorkflowAutomated process triggered by events.View in glossary automation
- Pipelines: YAML/JSON📋JSONStandard data interchange format.View in glossary workflow automation
- Plugins: Extend functionality with custom commands
- MCP Server: AI assistant integration via Model Context Protocol
- TUI: Terminal🖥️TerminalApplication for running command-line programs.View in glossary user interface for interactive operations
Build Commands
# Standard build (includes all features)
cargo build
# Minimal build (kernel + core services only)
cargo build --no-default-features --features core
Version Output
$ raps --version
raps 3.9.0
Performance Targets
RAPS is optimized for fast development feedback loops:
| Metric | Target | Measurement |
|---|---|---|
| Kernel check (incremental) | Less than 5s | After single file change |
| Workspace check (incremental) | Less than 30s | After single file change |
CLI startup (--help) | Less than 100ms | Cold start |
| File upload (100MB, parallel) | Less than 30s | Network dependent (100Mbps) |
| MCP tool call | Less than 200ms | AI assistant integration |
Build Tooling:
- Windows:
lld-linklinker (via LLVM) - Linux:
moldlinker (in CI🔁CI/CDAutomated build, test, and deployment pipelines.View in glossary) - All platforms:
sccachefor compilation caching,cargo-nextestfor parallel tests
See Development Setup for local configuration.
Benefits
Security:
- Minimal attack surface in kernel
- Independent security auditing of services
- Clear security boundaries
Testability:
- Kernel can be tested in isolation
- Services can be mocked for integration tests
- High test coverage achievable
Maintainability:
- Clear separation of concerns
- Independent evolution of features
- Easier code reviews
Performance:
- Fast incremental builds
- Parallel test execution
- Optimized linker usage
Business Model:
- Core functionality remains open source
- Enterprise features enable sustainable development
- Clear upgrade path for users