akudu
Async Kudu Client. Graceful way for Python to async connect to Kudu database (data storage engine).
Quick start
It is recommanded to use Python == 3.10, others are not tested.
*protobuf>=3.20.0* is required, or you need to compile the protobuf files by yourself.
-
Install akudu from PyPI.
pip install akudu
-
Test your Kudu server, such as 192.168.0.111:7051 with code here:
import asyncio import akudu cli = akudu.Client('192.168.0.111', 7051) async def op(): tables = await cli.list_tables() print(tables) asyncio.run(op())
-
Here are some frequently used calls, for more please refer to the documentation.
cli.ping() cli.list_tables() cli.insert() cli.scan()
Caution
- This client is not thread-safety, it is recommended that one instance of Kudu() for each threads.
More
TODO
- connect timeout, read timeout, write timeout
- Steady state ping-pong
- call-id used-up
- test all calls
- benchmark test
- support RPC Sidecars
- support TLS
- fully support SASL
Base on
- https://github.com/apache/kudu/tree/1.16.0
- libprotoc 3.21.6 (or python: grpcio-tools)
Run test
python -m venv env
source env/bin/activate
pip install protobuf
python -m test.test_tcp
Generate protobuf files
# kudu-master download from github.com kudu
# Because kudu proto generate .pb2 files in the name space: kudu, we need to change it into akudu.kudu
find kudu-master/src/ -name "*.proto" | xargs sed -i 's/import "kudu/import "akudu\/kudu/g'
mkdir kudu-master/src/akudu
mv kudu-master/src/kudu kudu-master/src/akudu
# Generate
find kudu-master/src/ -name "*.proto" | xargs protoc -I=kudu-master/src --python_out=.
# or
find kudu-master/src/ -name "*.proto" | xargs python -m grpc_tools.protoc -I=kudu-master/src --python_out=.
Ref
Metadata
Release files for akudu 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| akudu-0.0.1.tar.gz | 5.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| akudu-0.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.1 kB
Release files / akudu-0.0.1.tar.gz
| Download URL | akudu-0.0.1.tar.gz |
|---|---|
| Size | 5.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4cff0ee341a89abfc8686d4e3ab572f70983b08a398fb56d26dc880621848bf7
|
|
BLAKE2b-256 checksum How to use checksums |
cc38eb8219355c390d1102393b8c19082acdbb014a431bf08158ba8a0f18d7e9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.6
|
Release files / akudu-0.0.1-py3-none-any.whl
| Download URL | akudu-0.0.1-py3-none-any.whl |
|---|---|
| Size | 5.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d21bf33dc39c4c8df407ca045bc2be13232e75c4170dd5992283bf6190149378
|
|
BLAKE2b-256 checksum How to use checksums |
345ccc284c15a2aa36be1fc876804cf65aba55bbe54af3e987cdc8bba6aa679e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.6
|
Security for akudu 0.0.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.