Skip to main content
getMe Logo
Python SDK for a High-Performance Key-Value Store

📑 Index

📖 Overview

The official Python client library for the getMe key-value store. This SDK abstracts the underlying API calls, providing Python developers with a simple, idiomatic interface to interact directly with the getMe runtime.

🧠 About getMe Core Engine

getMe is a persistent, embeddable key-value store written in Go. It is heavily inspired by the design of Bitcask and is optimized for high write throughput and low-latency reads.

The engine runs on a few core principles:

  • Log-Structured Storage: All data is written to an append-only log file, maximizing write speed by avoiding slow, random disk I/O.
  • In-Memory Hash Index: A hash table is maintained in memory mapping each key to its exact on-disk location, enabling single disk seek lookups.
  • Compaction: A background process that periodically removes stale data to reclaim disk space.
  • Batch Operations: A batch API amortizes the cost of writes, allowing for extremely high ingestion rates.

For a deep dive into the architecture, please refer to the Root README and the Server README.

🚀 Server Dependency & Docker

Important: This SDK acts merely as a client. The getMe core server engine must be running independently for this library to function. The SDK interacts with the Core Engine through a Unix Domain Socket (UDS).

Running the Core Engine via Docker

You can use the official Docker images mentioned in our DockerHub README.

For maximum performance, we recommend using the Core Server Only container (ContainerFile.server), which isolates the database engine:

docker build -t getme-core -f ../../ContainerFile.server ../../
docker run -d \
  --name getme-engine \
  -v getme_data:/var/lib/getMeStore \
  -v /tmp/getMeStore/sockDir:/tmp/getMeStore/sockDir \
  getme-core

Connecting the SDK to the Core Engine

The SDK communicates with the engine via the Unix Domain Socket (getMe.sock). Because the engine creates the socket in /tmp/getMeStore/sockDir, it is critical that this exact directory is bind-mounted when running the container so that your local Python application can reach it.

To connect your Python SDK to the core engine:

  1. Ensure the getMe server is running (either locally or via Docker with the /tmp/getMeStore/sockDir volume mounted).
  2. Point your SDK initialization to the socket file location (default: /tmp/getMeStore/sockDir/getMe.sock).

Why manage the core engine separately?

Decoupling the database engine from the Python logic provides several critical advantages:

  • Performance & Isolation: The core engine heavily utilizes memory for its hash index and performs continuous background disk I/O for compaction. Running it separately prevents the storage engine from starving your Python application of memory or compute resources (and vice-versa).
  • Independent Scaling: You can scale your Python applications dynamically while connecting to a centralized, standalone getMe instance.
  • Polyglot Ecosystems: A decoupled server can serve multiple applications simultaneously, even if those applications are built across entirely different technology stacks.

📦 Other Available SDKs

While this is the Python client, getMe supports multiple languages. Detailed information on all available SDKs can be found in the Root README.

🔗 Links and Resources

Below is a comprehensive list of resources and documentation linked throughout the getMe ecosystem:

Engineering Blog Series

📄 License

This project is licensed under the GNU Affero General Public License v3.0 (AGPLv3) - see the LICENSE file for details.

Metadata

Release files for getme-python-sdk 1.1.1

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

Source distribution (sdist)

Source distribution for getme-python-sdk 1.1.1
File Size Uploaded Provenance
getme_python_sdk-1.1.1.tar.gz 4.6 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for getme-python-sdk 1.1.1
File Interpreter ABI Platform
getme_python_sdk-1.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 10.6 kB

Release files / getme_python_sdk-1.1.1.tar.gz

Download URL getme_python_sdk-1.1.1.tar.gz
Size 4.6 kB
Tags Source
SHA-256 checksum
How to use checksums
5c582b874d5b83afc88b5ddd3dc19be9b31afce4915b8032eb2f7a22247ef857
BLAKE2b-256 checksum
How to use checksums
8ebc0a0c4745bbda5b4dc602c620caf2152c2f82bf31c0d45baafa4cd0a2f40c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / getme_python_sdk-1.1.1-py3-none-any.whl

Download URL getme_python_sdk-1.1.1-py3-none-any.whl
Size 6.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
22ec3dbcd3d30b6c44705332c58c4924d258cea348a9d1bc12a8c20d67dcf7fb
BLAKE2b-256 checksum
How to use checksums
130c69e890d8a173a2e408d77878a1e22f88314bb360e41a2ad9795889954fe8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for getme-python-sdk 1.1.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.

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