Skip to main content

TiKV Client (Python)

Publish

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())

Metadata

Release files for tikv-client 0.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for tikv-client 0.0.4
File
tikv_client-0.0.4-cp311-none-win_amd64.whl CPython 3.11 none Windows x86-64 Details
tikv_client-0.0.4-cp311-none-win32.whl CPython 3.11 none Windows x86-32 Details
tikv_client-0.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
tikv_client-0.0.4-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
tikv_client-0.0.4-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64, macOS 10.12+ x86-64, macOS 10.12+ universal2 (ARM64, x86-64) Details

Total release size: 28.2 MB

Release files / tikv_client-0.0.4-cp311-none-win_amd64.whl

Download URL tikv_client-0.0.4-cp311-none-win_amd64.whl
Size 4.3 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
1f29539db0d850bf91672163814a9742bdb78c48325205ba2c3eedf1f7c646b6
BLAKE2b-256 checksum
How to use checksums
bf0cd197c0c2671e65f62b2b1f2c03292991c782a7fa19b5f5240fcb3c3617b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.7

Release files / tikv_client-0.0.4-cp311-none-win32.whl

Download URL tikv_client-0.0.4-cp311-none-win32.whl
Size 3.6 MB
Tags CPython 3.11 Windows x86-32
SHA-256 checksum
How to use checksums
5922f5b829dab29b00882788a85ee7e26e6f5ae802decc5df62dd67ac8717529
BLAKE2b-256 checksum
How to use checksums
0423119f6e69557c3b6f3126d83ff7b802b4931d39e053b9b19d2a42f403f827
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.7

Release files / tikv_client-0.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL tikv_client-0.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.7 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
e3ff1c4dbd7188fbc8609b5106194042583b164614db344a7ae6204527423341
BLAKE2b-256 checksum
How to use checksums
25d956e3cb553417aa09b54ab1aa1c034e40f3609f6d741c42750b486dc6f56c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.7

Release files / tikv_client-0.0.4-cp311-cp311-macosx_10_12_x86_64.whl

Download URL tikv_client-0.0.4-cp311-cp311-macosx_10_12_x86_64.whl
Size 4.6 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
a1d19c98a4473eabc2357136af3a42089b8bfd73ec350599fe4cc329e7f1e875
BLAKE2b-256 checksum
How to use checksums
2ee18a67b50bd2ae4e1e714a17535f90f993e56b4d1e3c9afc5449ce8437554f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.7

Release files / tikv_client-0.0.4-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL tikv_client-0.0.4-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 9.1 MB
Tags CPython 3.11 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ec3b19b43af3a6d7360f67a58dd43cf1dffd86f3c2109ece7c7b3a50f9711188
BLAKE2b-256 checksum
How to use checksums
6c51f8bf39a2c5ee1227090015a68f3b118deaecf2d9a8ffab8b192339dc17de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.7

Release history Release notifications | RSS feed

This release

0.0.4 This release

5 release files

0.0.3

3 release files

0.0.2

3 release files

0.0.1

3 release files

0.0.0

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page