Expand description
no_std-first multi-provider cloud SDK for Rust.
Provider crates, explicit API domains, security-first release gates, and transport-free core types.
§cloud-sdk
Provider-neutral foundation crate for the cloud-sdk workspace.
This crate belongs to the main cloud-sdk
project. It contains shared, no_std-first domains that provider crates can use
without pulling in HTTP clients, TLS, async runtimes, token storage, serde, or
filesystem dependencies.
It also exposes no_std fixed-buffer writer helpers used by provider crates for deterministic request construction without allocation.
Most Hetzner users should read and depend on
cloud-sdk-hetzner. That crate is
the main documentation surface for Hetzner Cloud, DNS, security, and Storage Box
API planning.
§Install
[dependencies]
cloud-sdk = "0.7.0"§Example
use cloud_sdk::{ApiFamily, Method, Provider};
let provider = Provider::Hetzner;
let family = ApiFamily::Cloud;
let method = Method::Get;
assert_eq!(provider, Provider::Hetzner);
assert_eq!(family, ApiFamily::Cloud);
assert_eq!(method, Method::Get);§Fixed Buffer Example
use cloud_sdk::buffer::write_query_u64;
let mut output = [0u8; 8];
let mut len = 0;
let mut first = true;
write_query_u64(&mut output, &mut len, &mut first, "page", 0, ())?;
let query = output
.get(..len)
.and_then(|bytes| core::str::from_utf8(bytes).ok());
assert_eq!(query, Some("page=0"));§JSON String Example
use cloud_sdk::buffer::write_json_string;
let mut output = [0u8; 48];
let mut len = 0;
write_json_string(&mut output, &mut len, "line\n\"quoted\"", ())?;
let value = output
.get(..len)
.and_then(|bytes| core::str::from_utf8(bytes).ok());
assert_eq!(value, Some("\"line\\n\\\"quoted\\\"\""));§Scope
- Default features are empty.
- The crate is
no_stdby default. - It is provider-neutral and intentionally small.
- Provider-specific examples live in provider crates such as
cloud-sdk-hetzner.
Modules§
- buffer
- no_std fixed-buffer writing helpers for provider crates.