cratestack-client-rust
Rust HTTP client runtime for CrateStack services.
Overview
cratestack-client-rust provides a typed HTTP client for calling CrateStack services. Use include_schema! or include_client_macro! to generate the client surface.
Installation
[]
= "0.2"
= { = "1", = ["rt-multi-thread"] }
Usage
With include_schema!
use include_schema;
use ;
include_schema!;
// Create client
let runtime = new;
// Generated client
let client = new;
// CRUD operations
let users = client.users.list.await?;
let user = client.users.get_view.await?;
let created = client.users.create.await?;
With include_client_macro!
For standalone client packages:
use include_client_macro;
use ;
include_client_macro!;
let client = new;
Codecs
use ;
// CBOR (recommended for production)
let client = new;
// JSON (for development/interop)
let client = new;
Request Authorization
Sign requests with canonical request strings:
use ;
use Arc;
let client = client.with_request_authorizer;
State Persistence
Journal requests for offline retry:
use ;
use Arc;
let store = new;
let client = client.with_state_store;
// Requests are journaled; you can replay after offline recovery
Custom Endpoints
// Direct HTTP calls
let response: MyType = client
.get
.await?;
let response: MyType = client
.post
.await?;
Projections
// Select specific fields
let user = client.users.get_view.await?;
See Also
- Transport Architecture
cratestack-codec-cbor- CBOR codeccratestack-codec-json- JSON codec
License
MIT