cloud-sdk 0.7.0

no_std-first multi-provider cloud SDK foundations.
Documentation

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;

# fn main() -> Result<(), ()> {
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"));
# Ok(())
# }

JSON String Example

use cloud_sdk::buffer::write_json_string;

# fn main() -> Result<(), ()> {
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\\\"\""));
# Ok(())
# }

Scope

  • Default features are empty.
  • The crate is no_std by default.
  • It is provider-neutral and intentionally small.
  • Provider-specific examples live in provider crates such as cloud-sdk-hetzner.