Nubis Rust SDK
Official Rust SDK for Nubis.
Designed for backend services and platform automation that need:
- broad API coverage with generated endpoint methods
- explicit request control (method, path params, query, body)
- consistent error types for production monitoring and retries
Install
From crates.io:
[]
= "1.2"
= { = "1", = ["macros", "rt-multi-thread"] }
= "1"
For local development:
[]
= { = "../nubis-core/sdk-rust" }
Quick Start
use NubisClient;
use json;
async
How Endpoint Methods Are Named
Endpoint methods are generated from backend routes and follow:
<http_method>_<normalized_path>
Examples:
GET /api/v1/orgs->get_api_v1_orgs(...)POST /api/v1/orgs/:org_id/projects->post_api_v1_orgs_by_org_id_projects(...)
Path params become function arguments in order. Query/body are passed explicitly.
Calling Patterns
Read-style routes:
let data = client
.get_api_v1_projects_by_project_id
.await?;
Write-style routes:
let payload = json!;
let data = client
.post_api_v1_orgs
.await?;
With query params:
let query = ;
let metrics = client
.get_api_v1_orgs_by_org_id_metrics_compute
.await?;
Error Handling
All SDK errors use NubisError:
NubisError::Transport(reqwest::Error)NubisError::Serialization(serde_json::Error)NubisError::Http { status, message, body }
match client.get_api_v1_orgs.await
What Is Generated
- Route methods are generated from:
services/api-gateway/src/main.rs
- Generated output file:
src/generated/endpoints.rs
This ensures coverage keeps pace with backend route additions.
Regeneration Workflow
Run this after route changes:
Publishing to crates.io
- Update
versioninCargo.toml - Validate package:
cargo publish --dry-run - Publish:
cargo publish - Verify: crates.io/nubis-sdk
License
MIT. See LICENSE.md.
Related SDK
Need JavaScript or TypeScript? See:
../sdk-js/README.md