Crate ydb_unofficial

Source
Expand description

§Unofficial Ydb Client library

There is an alternative of ydb

§Targets:

  • more usability
  • more freedom to use wrappers or raw objects from grpc bindings
  • ability to create your own implementation of common traits, like Credentials
  • easy to use pool objects

§Goals:

  • YQL Query for data (like DML)
  • YQL Query for sheme (like DDL)
  • Connect over grpcs (with tls)
  • Connect over grpc (without tls) - not worked, unknown cause
  • Connection pool (with deadpool) (feature pool)
  • Token authentication
  • Service account key authentication (feature auth-sa)
  • Metadata authentication
  • Query helpers (a lot of)
  • sqlx integration - partially done (feature sqlx):
    • Connection string
    • connection
    • binding parameters
    • preparing statements
    • transaction manager
    • DML (data) operations
    • DDL (scheme) operations
    • primitive types (bool, i8, i32, i64, u8, u32, u64, f32, f64, Vec<u8>, String)
    • date types (Date, Datetime, Timestamp, Interval)
    • json type (Json, JsonDocument)
    • Decimal type
    • connection pool balancing for discovery
    • compile-time checked queries
    • migrations
    • multiple transaction modes
    • log statements
  • operation parameters

§Features

  • pool - enables pool of connections (do not use with sqlx)
  • auth-sa - enables service account key authentication
  • auth-cli - enables authentication from cli (yc iam create-token)
  • sqlx - enables sqlx integration

Re-exports§

pub use client::YdbConnection;
pub use client::YdbTransaction;
pub use tonic;

Modules§

auth
Staff to implement authentication to Ydb. You can make your own auth by implement Credentials
client
Common Ydb client, that wraps GRPC(s) transport with needed headers
error
Some error types that may appear when interacting with Ydb
generated
A lot of autogenerated (with tonic) grpc-types from ydb .proto files
poolpool
Implementation of pool of YdbConnection. Uses method list_endpoints of DiscoveryServiceClient to create pool on multiple endpoints
sqlxsqlx
SQLX traits implementation for Ydb

Traits§

YdbResponseWithResult
The trait to invoke payload result from response. See examples in crate::client

Type Aliases§

AsciiValue
Ascii encoded value to use in grpc metadata