Crate ydb

source ·
Expand description

YDB SDK - a client for YDB.

Example


 // create driver
 let client = ClientBuilder::new_from_connection_string("grpc://localhost:2136?database=local")?
    .with_credentials(StaticToken::from("asd"))
    .client()?;

 // wait until driver background initialization finish
 client.wait().await?;

 // read query result
 let sum: i32 = client
    .table_client() // create table client
    .retry_transaction(|mut t| async move {
        // code in transaction can retry few times if was some retriable error

        // send query to database
        let res = t.query(Query::from("SELECT 1 + 1 AS sum")).await?;

        // read exact one result from db
        let field_val: i32 = res.into_only_row()?.remove_field_by_name("sum")?.try_into()?;

        // return result
        return Ok(field_val);
    })
    .await?;

 // it will print "sum: 2"
 println!("sum: {}", sum);

More examples

Url shorneter application

Many small examples

Macros

sugar for manual construct query params

Structs

YDB client
Get from stdout of command
Current discovery state
Get instance service account token from GCE instance
Query object
Retry options
Always discovery once static node
Credentials with static token without renewing
Client for YDB table service (SQL queries)
Options for create transaction
Describe issue from server
Describe operation status from server

Enums

Internal represent database value for send to or received from database.
Error which can be returned from the crate.
Severity of issue
Error for wrap user errors while return it from callback

Traits

Type Definitions

Get token of service account of instance
T result or YdbError as Error
T result or YdbOrCustomerError as Error