- Rust application developers connecting to YDB for OLTP workloads, streaming (topics), and metadata (scheme).
- Maintainers of the YDB platform integrating Rust into internal services.
- Contributors extending SDK coverage to match other language SDKs (Go, Java, etc.).
| Need | SDK surface |
|---|---|
| Run YQL queries and transactions | Client::table_client(), retry_transaction, Query |
| Browse database directory / schema | Client::scheme_client() |
| Produce/consume topic messages | Client::topic_client() — reader/writer APIs |
| Distributed locks / semaphores | Client::coordination_client() |
| Auth (static token, JWT, metadata) | ClientBuilder::with_credentials, credential types in credentials.rs |
| Multi-node clusters | Discovery + load balancers (random, static, nearest_dc) |
- Connection string as the primary entry point:
grpc://host:port/database. - Automatic retries on retriable errors for table operations (configurable).
- Type-safe row access via
resulttypes andtry_intoconversions. - Examples:
ydb/examples/— runnablecargo examplesnippets.
- Published on crates.io as
ydb(currently0.12.x). #[non_exhaustive]on many public enums; optionalforce-exhaustive-allfeature for compile-time exhaustiveness checks.- Breaking changes increment
0.Xper project policy (see rootREADME.md).
- docs.rs/ydb — API reference
- YDB documentation — server-side concepts, YQL
- ydb-go-sdk — reference for cross-SDK feature parity