client-rust
client-rust copied to clipboard
Rust Client for TiKV.
Some features require specific TiKV versions. The client should support older versions of TiKV as it evolves. TiKV versions can be retrived from PD by `get_all_stores`.
Require more batch operations for `TransactionClient` such as `RawClient` did. Such as: * batch_put * batch_scan * batch_delete * delete_range
Support GC
TiKV uses MVCC to support transactions, thus GC is needed to remove stale data. Current implementation of rust-client does not provide GC functionalities. A workaround is using the [script](https://gist.github.com/MyonKeminta/32c4905b7357203e5cdef9e06f105abf) which...
Hi admin, I use `grpcio` to build `grpc` server. #client-rust use #tokio runtime, `grpcio` use another runtime. How can I use `tikv-client` in RpcContext `grpcio` ? Thank you!
Signed-off-by: andylokandy - [x] Implementation - [x] Manual test - [ ] Add docs
fixed #315 > When we set the primary key of a transaction, the corresponding operation must not be CheckNotExists. @ekexium `CheckNotExists` is already checked when set primary key.
The raw part work of https://github.com/tikv/client-rust/issues/289
### Problem Client-rust costs a lot of CPU to copy the structure. And most of this copy and allocation is to copy mutation between TransactionClient and kinds of PlanBuilder. ###...
It should be up to downstream crates whether to vendor OpenSSL.
```rust #[tokio::main] async fn main() -> Result { let txn_client = TransactionClient::new(vec!["127.0.0.1:2379"]).await?; let mut txn = txn_client.begin_optimistic().await.unwrap(); let key = "aa".to_owned(); txn.insert(key.clone(), "value".to_owned()).await.unwrap(); txn.delete(key.clone()).await.unwrap(); txn.commit().await.unwrap(); Ok(()) } ``` The above...