TiKV Client for Python
Project description
TiKV Client (Python)
This library is a TiKV client in Python; it supports both synchronous and asynchronous API.
It's built on top of TiKV Client in Rust via CFFI and PyO3 Python binding.
This client is still in the stage of prove-of-concept and under heavy development.
Install
This package requires Python 3.6+ and pip 19+. Currently only supports MacOS (x86_64 and aarch64) and Linux in x86_64 with GLibc >= 2.12.
pip3 install tikv-client
Install (Development)
> pip3 install maturin
> maturin build
🍹 Building a mixed python/rust project
🔗 Found pyo3 bindings
🐍 Found CPython 3.8 at python3.8
📦 Built source distribution to /home/andy/Code/client-py/target/wheels/tikv_client-0.1.0.tar.gz
Blocking waiting for file lock on build directory
Compiling pyo3 v0.12.3
Compiling tikv-client v0.1.0 (/home/andy/Code/client-py)
Finished dev [unoptimized + debuginfo] target(s) in 17.62s
📦 Built wheel for CPython 3.8 to /home/andy/Code/client-py/target/wheels/tikv_client-0.1.0-cp38-cp38-manylinux1_x86_64.whl
> pip3 install target/wheels/tikv_client-0.1.0-cp38-cp38-manylinux1_x86_64.whl
Installing collected packages: tikv-client
Successfully installed tikv-client-0.1.0
Example
Python TiKV client is synchronous by defult:
from tikv_client import TransactionClient
client = TransactionClient.connect("127.0.0.1:2379")
txn = client.begin(pessimistic=True)
txn.put(b"k1", b"v1")
txn.put(b"k2", b"v2")
txn.put(b"k3", b"v3")
txn.put(b"k4", b"v4")
txn.put(b"k5", b"v5")
txn.commit()
snapshot = client.snapshot(client.current_timestamp())
print(snapshot.get(b"k3"))
print(snapshot.batch_get([b"k1", b"k4"]))
for k, v in snapshot.scan(b"k1", end=None, limit=10, include_start=False):
print(k, v)
Asynchronous client is available in tikv_client.asynchronous
module. Modules and classes under this modules is similar to the synchronous ones.
import asyncio
from tikv_client.asynchronous import TransactionClient
async def main():
client = await TransactionClient.connect("127.0.0.1:2379")
txn = await client.begin(pessimistic=True)
await txn.put(b"k1", b"v1")
await txn.put(b"k2", b"v2")
await txn.put(b"k3", b"v3")
await txn.put(b"k4", b"v4")
await txn.put(b"k5", b"v5")
await txn.commit()
snapshot = client.snapshot(await client.current_timestamp())
print(await snapshot.get(b"k3"))
print(await snapshot.batch_get([b"k1", b"k4"]))
for k, v in await snapshot.scan(b"k1", end=None, limit=10, include_start=False):
print(k, v)
event_loop = asyncio.get_event_loop()
asyncio.get_event_loop().run_until_complete(main())
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distributions
Close
Hashes for tikv_client-0.0.4-cp311-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f29539db0d850bf91672163814a9742bdb78c48325205ba2c3eedf1f7c646b6 |
|
MD5 | e9e2fc5f1dcbaefb5b651db355e8ad9d |
|
BLAKE2b-256 | bf0cd197c0c2671e65f62b2b1f2c03292991c782a7fa19b5f5240fcb3c3617b5 |
Close
Hashes for tikv_client-0.0.4-cp311-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5922f5b829dab29b00882788a85ee7e26e6f5ae802decc5df62dd67ac8717529 |
|
MD5 | 0a7cc99cf4fc5c6e075bbb840a1c0070 |
|
BLAKE2b-256 | 0423119f6e69557c3b6f3126d83ff7b802b4931d39e053b9b19d2a42f403f827 |
Close
Hashes for tikv_client-0.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3ff1c4dbd7188fbc8609b5106194042583b164614db344a7ae6204527423341 |
|
MD5 | d1082da9f008f748ac3a0c3f725eeb0c |
|
BLAKE2b-256 | 25d956e3cb553417aa09b54ab1aa1c034e40f3609f6d741c42750b486dc6f56c |
Close
Hashes for tikv_client-0.0.4-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1d19c98a4473eabc2357136af3a42089b8bfd73ec350599fe4cc329e7f1e875 |
|
MD5 | e8b6ee043a0757ac23e9cbbb63c509e6 |
|
BLAKE2b-256 | 2ee18a67b50bd2ae4e1e714a17535f90f993e56b4d1e3c9afc5449ce8437554f |
Close
Hashes for tikv_client-0.0.4-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec3b19b43af3a6d7360f67a58dd43cf1dffd86f3c2109ece7c7b3a50f9711188 |
|
MD5 | de51004e12433378b2a47d5d6ea41166 |
|
BLAKE2b-256 | 6c51f8bf39a2c5ee1227090015a68f3b118deaecf2d9a8ffab8b192339dc17de |