Skip to main content

A fast RocksDB wrapper for Python using pybind11.

Project description

Build Status

pyrex

a python rocksdb wrapper

Motivation

rocksdb python wrappers are broken. This is yet another attempt to create a working python wrapper for rocksdb.

Example usage:

Check the test.py file.

Installation

On Linux/macOS: Open your terminal, navigate to the parent directory of my_rocksdb_wrapper, and run:

Build and Use the Wrapper: After saving the files, follow these steps to build and use your Python wrapper:

Prerequisites:

  • RocksDB C++ Library Installed (headers and libraries accessible). (in Ubuntu sudo apt-get install librocksdb may suffice)

  • C++11 compatible compiler (e.g., g++ or clang++).

  • Python 3.7+ and its development headers.

  • Python pybind11 package: pip install pybind11

Python setuptools package: pip install --upgrade setuptools

Adjust setup.py (if needed):

Open setup.py and verify that include_dirs and library_dirs correctly point to your RocksDB installation paths. If RocksDB is not in /usr/local/include or /usr/local/lib, update these paths.

If RocksDB was built with specific compression libraries (like Snappy, Zlib, LZ4, Zstandard), add their corresponding names (e.g., 'snappy', 'z') to the libraries list.

Compile the Wrapper: Navigate to the directory containing rocksdb_wrapper.cpp and setup.py in your terminal, and run:

# build with pyproject.toml (uses setup.py for some programmatic parts)
pip install build
python -m build

For PyPi compatible build

Either rely on the CICD/Actions to work, or use a local .toml:

cibuildwheel --platform linux --config-file pyproject_localbuild.toml 

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

If you're not sure about the file name format, learn more about wheel file names.

pyrex_rocksdb-0.1.1a0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyrex_rocksdb-0.1.1a0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyrex_rocksdb-0.1.1a0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyrex_rocksdb-0.1.1a0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyrex_rocksdb-0.1.1a0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

File details

Details for the file pyrex_rocksdb-0.1.1a0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyrex_rocksdb-0.1.1a0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 eccf49faedd2ed5b015f8b4aca6022a59037a38d4e78a521cbe38236e920e85f
MD5 2cfd02efe8854fe084ce7274b9953fb4
BLAKE2b-256 d30bea8b159f341a9126d4f98e523c1b6021f83d439e01a86bc2cc7330970397

See more details on using hashes here.

File details

Details for the file pyrex_rocksdb-0.1.1a0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyrex_rocksdb-0.1.1a0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7e420c4aeacdcfbf4b84b3268c35d1fc95f54940451361c6245839f16d66c9d2
MD5 554fca8358ae2d62f5cc8723d2bf2597
BLAKE2b-256 8dc0f14891b6b9f41f732af422fb3c6062541f85802cfc4811d7f284b8252a9c

See more details on using hashes here.

File details

Details for the file pyrex_rocksdb-0.1.1a0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyrex_rocksdb-0.1.1a0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7ac940c2ed96a3ee2a4df7b05eb133099970c4d4834e50191bf4f55d3b994e7f
MD5 780744982c6fff6cf8b4fd60db714b7a
BLAKE2b-256 db132524aa0c76ab0a31b47e941b89638f390a485d5f48582dd6c9afe4d21388

See more details on using hashes here.

File details

Details for the file pyrex_rocksdb-0.1.1a0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyrex_rocksdb-0.1.1a0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4abb090362a78243e54406fdcbb1b4a1999f254d1897bc508b307ae4893c0dbf
MD5 5092f9efd25fd7f74e2bef8a49962883
BLAKE2b-256 f70a21aea93acffb48c7a369c4d073956b632632a34f4bed06b44501d5a605e5

See more details on using hashes here.

File details

Details for the file pyrex_rocksdb-0.1.1a0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyrex_rocksdb-0.1.1a0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ef70bf772cfc45c4485246e0c17396ce3afa786fbc835cc2431c35ce7ad94a7f
MD5 b2d8c48c08e9f54dcd45e45a3d44cc62
BLAKE2b-256 ecc2e31279ac433f6891b9bd7088ad9865dd1caad2e8e4ed392dc7c879d2cf77

See more details on using hashes here.

Supported by

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