fizzy-sdk
The Rust client for the Fizzy API. Types, routes and service methods
are generated from the Smithy model in the repository's spec/; the runtime around them —
authentication, retries, pagination, hooks, the response cache — is hand-written and shared
by every call.
Requires Rust 1.88 or newer and a Tokio runtime.
Authenticating
Fizzy takes an API access token as a bearer, or a session token as a cookie. Most of the
API is scoped to an account, reached with for_account.
use ;
# async
A session signed in through a magic link uses .session_token(token) instead; the
MagicLinkFlow in fizzy_sdk::magic_link runs the two steps that get one.
What the client does for you
- Retries follow the behavior model per operation: attempts, backoff and the statuses
that are resent. A POST is sent once unless the model says it is idempotent.
Retry-Afteris honoured on 429 and 503, up to a ceiling. - Pagination: a list answers a
Page; walk on withnext_page,each_page, or thepages/itemsstreams. ALinkpointing off the Fizzy origin is refused. - Errors are one
Errorwith a code shared by every Fizzy SDK (auth_required,rate_limit,validation, …), the HTTP status, the request id and the server's message. - HTTPS is enforced for every origin but this machine; credentials are redacted from
anything the hooks or logs see; sensitive fields are
SensitiveStrings that print as[REDACTED]. - Hooks report every operation, request and retry;
ChainHooksstacks several. Circuit breaker, bulkhead and rate limiter are oneresilienceconfig away. Reads can be cached byETag. Webhook deliveries are verified withfizzy_sdk::webhooks. - Bring your own HTTP client by implementing
HttpClient; thereqwestfeature (on by default) ships one.
Developing