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)
    • 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§

Modules§

  • Staff to implement authentication to Ydb. You can make your own auth by implement Credentials
  • Common Ydb client, that wraps GRPC(s) transport with needed headers
  • Some error types that may appear when interacting with Ydb
  • 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§

Type Aliases§

  • Ascii encoded value to use in grpc metadata