Skip to main content

TiKV Client for Python

Project description

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

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

tikv_client-0.0.4-cp311-none-win_amd64.whl (4.3 MB view details)

Uploaded CPython 3.11 Windows x86-64

tikv_client-0.0.4-cp311-none-win32.whl (3.6 MB view details)

Uploaded CPython 3.11 Windows x86

tikv_client-0.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.7 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

tikv_client-0.0.4-cp311-cp311-macosx_10_12_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.11 macOS 10.12+ x86-64

tikv_client-0.0.4-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (9.1 MB view details)

Uploaded CPython 3.11 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64

File details

Details for the file tikv_client-0.0.4-cp311-none-win_amd64.whl.

File metadata

File hashes

Hashes for tikv_client-0.0.4-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 1f29539db0d850bf91672163814a9742bdb78c48325205ba2c3eedf1f7c646b6
MD5 e9e2fc5f1dcbaefb5b651db355e8ad9d
BLAKE2b-256 bf0cd197c0c2671e65f62b2b1f2c03292991c782a7fa19b5f5240fcb3c3617b5

See more details on using hashes here.

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

Hashes for tikv_client-0.0.4-cp311-none-win32.whl
Algorithm Hash digest
SHA256 5922f5b829dab29b00882788a85ee7e26e6f5ae802decc5df62dd67ac8717529
MD5 0a7cc99cf4fc5c6e075bbb840a1c0070
BLAKE2b-256 0423119f6e69557c3b6f3126d83ff7b802b4931d39e053b9b19d2a42f403f827

See more details on using hashes here.

File details

Details for the file tikv_client-0.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

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

See more details on using hashes here.

File details

Details for the file tikv_client-0.0.4-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

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

See more details on using hashes here.

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

File hashes

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

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page