raps-0.4.0 is not a library.
Visit the last successful build:
raps-3.8.0
RAPS
Rust APS CLI - A comprehensive command-line interface for Autodesk Platform Services (APS), written in Rust.
Features
Authentication
- 2-legged OAuth (Client Credentials) for server-to-server operations
- 3-legged OAuth (Authorization Code) with browser login for user data access
- Secure token storage with automatic refresh
- User profile information with
auth whoami
Object Storage Service (OSS)
- Create, list, and delete buckets (with multi-region support: US & EMEA)
- Get detailed bucket information with
bucket info - Upload, download, list, and delete objects
- Signed S3 URLs for direct download bypassing OSS servers
- Progress bars for file transfers
Model Derivative
- Translate CAD files to various formats (SVF2, OBJ, STL, STEP, etc.)
- Check translation status with optional polling
- View manifest and available derivatives
Data Management (BIM 360/ACC)
- Browse hubs, projects, folders, and items
- Create folders
- View item versions
- Requires 3-legged authentication
Webhooks
- Create, list, and delete webhook subscriptions
- Support for data management and model derivative events
Design Automation
- List available engines (AutoCAD, Revit, Inventor, 3ds Max)
- Manage app bundles and activities
- Submit and monitor work items
ACC Issues (Construction Cloud)
- List, create, and update issues
- View issue types (categories) and subtypes
- Filter by status
- Uses the Construction Issues API v1
Reality Capture
- Create photoscenes for photogrammetry
- Upload photos and start processing
- Monitor progress and download results (OBJ, FBX, RCS, etc.)
Installation
Prerequisites
- APS account with application credentials from APS Developer Portal
Install from crates.io
Install from Pre-built Binaries
Download the latest release for your platform from the Releases page:
| Platform | Architecture | File |
|---|---|---|
| Windows | x64 | raps-windows-x64.zip |
| macOS | Intel | raps-macos-x64.tar.gz |
| macOS | Apple Silicon | raps-macos-arm64.tar.gz |
| Linux | x64 | raps-linux-x64.tar.gz |
| Linux | ARM64 | raps-linux-arm64.tar.gz |
Extract and add to your PATH:
Windows (PowerShell):
# Extract to a directory in your PATH
Expand-Archive raps-windows-x64.zip -DestinationPath "$env:USERPROFILE\bin"
# Add to PATH (if not already)
$env:PATH += ";$env:USERPROFILE\bin"
macOS/Linux:
# Extract
# Move to PATH
Build from Source
# Requires Rust 1.70 or later (https://rustup.rs/)
Shell Completions
RAPS supports auto-completion for bash, zsh, fish, PowerShell, and elvish.
PowerShell
# Add to your PowerShell profile ($PROFILE)
raps completions powershell | Out-String | Invoke-Expression
# Or save to a file and source it
raps completions powershell > "$env:USERPROFILE\Documents\PowerShell\raps.ps1"
# Then add to $PROFILE: . "$env:USERPROFILE\Documents\PowerShell\raps.ps1"
Bash
# Add to ~/.bashrc
# Or save to completions directory
Zsh
# Add to ~/.zshrc (before compinit)
# Or save to fpath directory
# Add to ~/.zshrc: fpath=(~/.zfunc $fpath)
Fish
# Save to completions directory
raps completions fish > ~/.config/fish/completions/raps.fish
Elvish
# Add to ~/.elvish/rc.elv
eval (raps completions elvish | slurp)
Configuration
Environment Variables
# Required
$env:APS_CLIENT_ID = "your_client_id"
$env:APS_CLIENT_SECRET = "your_client_secret"
# Optional
$env:APS_CALLBACK_URL = "http://localhost:8080/callback" # For 3-legged OAuth
$env:APS_DA_NICKNAME = "your_nickname" # For Design Automation
Using .env File
Create a .env file in your working directory:
APS_CLIENT_ID=your_client_id
APS_CLIENT_SECRET=your_client_secret
APS_CALLBACK_URL=http://localhost:8080/callback
Usage
Authentication
# Test 2-legged authentication
# Login with 3-legged OAuth (opens browser)
# Check authentication status
# Show logged-in user profile
# Logout
Buckets & Objects
# Create a bucket
# List buckets (from all regions)
# Get bucket details
# Upload a file
# Download a file
# Get signed S3 download URL (direct download, expires in 2-60 minutes)
Translation
# Start translation
# Check status
# View manifest
Data Management (requires login)
# List hubs
# List projects in a hub
# List folder contents
# View item versions
Webhooks
# List all webhooks
# Create a webhook
# List available events
Design Automation
# List available engines
# List app bundles
# List activities
# Check work item status
Issues (ACC/BIM 360, requires login)
# List issues in a project
# Create an issue
# List issue types (categories)
Note: The project-id should NOT include the "b." prefix used by the Data Management API.
Reality Capture
# Create a photoscene
# Upload photos
# Start processing
# Check status
# Get download link
Command Reference
| Command | Description |
|---|---|
auth |
Authentication management (test, login, logout, status, whoami) |
bucket |
OSS bucket operations (create, list, info, delete) |
object |
OSS object operations (upload, download, list, delete, signed-url) |
translate |
Model Derivative translation |
hub |
List/view hubs |
project |
List/view projects |
folder |
Folder operations |
item |
Item/file operations |
webhook |
Webhook subscriptions |
da |
Design Automation |
issue |
ACC/BIM 360 issues |
reality |
Reality Capture photogrammetry |
completions |
Generate shell completions (bash, zsh, fish, powershell, elvish) |
API Coverage
This CLI covers the following APS APIs (validated against OpenAPI specs):
- Authentication API v2 - OAuth 2.0 flows, user profile
- OSS API v2 - Buckets, objects, signed S3 URLs
- Model Derivative API v2 - Translation jobs, manifests
- Data Management API v1 - Hubs, projects, folders, items
- Webhooks API v1 - Event subscriptions
- Design Automation API v3 - Engines, activities, work items
- Construction Issues API v1 - Issues, issue types
- Reality Capture API v1 - Photogrammetry processing
Contributing
Contributions are welcome! Please read our Contributing Guide for details on:
- Development setup
- Code style guidelines
- Pull request process
- Branch protection policy
Important: The main branch is protected. All changes must be made through Pull Requests. See Branch Protection Setup for details.
License
MIT License