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
Built Distributions
File details
Details for the file tikv_client-0.0.4-cp311-none-win_amd64.whl
.
File metadata
- Download URL: tikv_client-0.0.4-cp311-none-win_amd64.whl
- Upload date:
- Size: 4.3 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f29539db0d850bf91672163814a9742bdb78c48325205ba2c3eedf1f7c646b6 |
|
MD5 | e9e2fc5f1dcbaefb5b651db355e8ad9d |
|
BLAKE2b-256 | bf0cd197c0c2671e65f62b2b1f2c03292991c782a7fa19b5f5240fcb3c3617b5 |
File details
Details for the file tikv_client-0.0.4-cp311-none-win32.whl
.
File metadata
- Download URL: tikv_client-0.0.4-cp311-none-win32.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.11, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5922f5b829dab29b00882788a85ee7e26e6f5ae802decc5df62dd67ac8717529 |
|
MD5 | 0a7cc99cf4fc5c6e075bbb840a1c0070 |
|
BLAKE2b-256 | 0423119f6e69557c3b6f3126d83ff7b802b4931d39e053b9b19d2a42f403f827 |
File details
Details for the file tikv_client-0.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: tikv_client-0.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 6.7 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3ff1c4dbd7188fbc8609b5106194042583b164614db344a7ae6204527423341 |
|
MD5 | d1082da9f008f748ac3a0c3f725eeb0c |
|
BLAKE2b-256 | 25d956e3cb553417aa09b54ab1aa1c034e40f3609f6d741c42750b486dc6f56c |
File details
Details for the file tikv_client-0.0.4-cp311-cp311-macosx_10_12_x86_64.whl
.
File metadata
- Download URL: tikv_client-0.0.4-cp311-cp311-macosx_10_12_x86_64.whl
- Upload date:
- Size: 4.6 MB
- Tags: CPython 3.11, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1d19c98a4473eabc2357136af3a42089b8bfd73ec350599fe4cc329e7f1e875 |
|
MD5 | e8b6ee043a0757ac23e9cbbb63c509e6 |
|
BLAKE2b-256 | 2ee18a67b50bd2ae4e1e714a17535f90f993e56b4d1e3c9afc5449ce8437554f |
File details
Details for the file tikv_client-0.0.4-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
.
File metadata
- Download URL: tikv_client-0.0.4-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
- Upload date:
- Size: 9.1 MB
- Tags: CPython 3.11, macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec3b19b43af3a6d7360f67a58dd43cf1dffd86f3c2109ece7c7b3a50f9711188 |
|
MD5 | de51004e12433378b2a47d5d6ea41166 |
|
BLAKE2b-256 | 6c51f8bf39a2c5ee1227090015a68f3b118deaecf2d9a8ffab8b192339dc17de |