getme-python-sdk 1.0.0__tar.gz → 1.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- getme_python_sdk-1.1.0/PKG-INFO +94 -0
- getme_python_sdk-1.1.0/README.md +78 -0
- {getme_python_sdk-1.0.0 → getme_python_sdk-1.1.0}/pyproject.toml +2 -2
- getme_python_sdk-1.0.0/PKG-INFO +0 -16
- getme_python_sdk-1.0.0/README.md +0 -0
- {getme_python_sdk-1.0.0 → getme_python_sdk-1.1.0}/src/getme_python_sdk/__init__.py +0 -0
- {getme_python_sdk-1.0.0 → getme_python_sdk-1.1.0}/src/getme_python_sdk/core/client.py +0 -0
- {getme_python_sdk-1.0.0 → getme_python_sdk-1.1.0}/src/getme_python_sdk/core/constants.py +0 -0
- {getme_python_sdk-1.0.0 → getme_python_sdk-1.1.0}/src/getme_python_sdk/py.typed +0 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
|
+
Name: getme-python-sdk
|
|
3
|
+
Version: 1.1.0
|
|
4
|
+
Summary: Official Python SDK for getMe.
|
|
5
|
+
Author: AatirNadim
|
|
6
|
+
Author-email: AatirNadim <aatir.nadim@gmail.com>
|
|
7
|
+
Requires-Dist: certifi==2025.8.3
|
|
8
|
+
Requires-Dist: charset-normalizer==3.4.3
|
|
9
|
+
Requires-Dist: idna==3.10
|
|
10
|
+
Requires-Dist: python-dotenv==1.1.1
|
|
11
|
+
Requires-Dist: requests==2.32.5
|
|
12
|
+
Requires-Dist: requests-unixsocket==0.4.1
|
|
13
|
+
Requires-Dist: urllib3==2.5.0
|
|
14
|
+
Requires-Python: >=3.12
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
|
|
17
|
+
# getMe Python SDK
|
|
18
|
+
|
|
19
|
+
The official Python client library for the **getMe** key-value store. This SDK abstracts the underlying HTTP API calls, providing Python developers with a simple, idiomatic interface to interact with a `getMe` runtime.
|
|
20
|
+
|
|
21
|
+
## About getMe
|
|
22
|
+
|
|
23
|
+
`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.
|
|
24
|
+
|
|
25
|
+
The engine runs on a few core principles:
|
|
26
|
+
|
|
27
|
+
- **Log-Structured Storage**: All data is written to an append-only log file, maximizing write speed by avoiding slow, random disk I/O.
|
|
28
|
+
- **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.
|
|
29
|
+
- **Compaction**: A background process that periodically removes stale data to reclaim disk space.
|
|
30
|
+
- **Batch Operations**: A batch API amortizes the cost of writes, allowing for extremely high ingestion rates.
|
|
31
|
+
|
|
32
|
+
For a deep dive into the architecture, please refer to the [Root README](https://github.com/AatirNadim/getMe/blob/main/README.md) and the [Server README](https://github.com/AatirNadim/getMe/blob/main/server/README.md).
|
|
33
|
+
|
|
34
|
+
## Server Dependency
|
|
35
|
+
|
|
36
|
+
**Important:** This SDK acts merely as a client. The `getMe` core server engine **must** be running independently for this library to function.
|
|
37
|
+
|
|
38
|
+
### Running the Core Engine via Docker
|
|
39
|
+
|
|
40
|
+
For a containerized deployment of just the core engine, you can use the official pure server image:
|
|
41
|
+
**[aatir0docking/getme.server](https://hub.docker.com/r/aatir0docking/getme.server/)**
|
|
42
|
+
|
|
43
|
+
When running this image, the core engine listens for incoming requests on a Unix domain socket. To allow the host machine (and the HTTP Proxy that the SDK communicates with) to connect to this engine, you **must** bind-mount the socket directory to the host.
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
docker run -d \
|
|
47
|
+
--name getme-server \
|
|
48
|
+
-v getme_data:/var/lib/getMeStore/dataDir \
|
|
49
|
+
-v /tmp/getMeStore/sockDir:/tmp/getMeStore/sockDir \
|
|
50
|
+
aatir0docking/getme.server:latest
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Why manage the core engine separately?
|
|
54
|
+
|
|
55
|
+
Decoupling the database engine from the application logic provides several critical advantages:
|
|
56
|
+
|
|
57
|
+
- **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).
|
|
58
|
+
- **Independent Scaling**: You can scale your Python applications (e.g., across multiple workers or containers) dynamically while connecting to a centralized, standalone `getMe` instance.
|
|
59
|
+
- **Polyglot Ecosystems**: A decoupled server can serve multiple applications simultaneously, even if those applications are built across entirely different technology stacks.
|
|
60
|
+
|
|
61
|
+
## Other Available SDKs
|
|
62
|
+
|
|
63
|
+
While this is the Python client, `getMe` supports multiple languages. Detailed information on all available SDKs can be found in the [SDKs Hub README](https://github.com/AatirNadim/getMe/blob/main/sdks/README.md).
|
|
64
|
+
|
|
65
|
+
The available official SDKs are:
|
|
66
|
+
|
|
67
|
+
- [Go SDK](https://github.com/AatirNadim/getMe/tree/main/sdks/goSdk)
|
|
68
|
+
- [Java SDK](https://github.com/AatirNadim/getMe/tree/main/sdks/javaSdk)
|
|
69
|
+
- [JavaScript/TypeScript SDK](https://github.com/AatirNadim/getMe/tree/main/sdks/jsSdk)
|
|
70
|
+
- [Python SDK (This package)](https://github.com/AatirNadim/getMe/tree/main/sdks/pythonSdk)
|
|
71
|
+
|
|
72
|
+
## Links and Resources
|
|
73
|
+
|
|
74
|
+
Below is a comprehensive list of resources and documentation linked throughout the `getMe` ecosystem:
|
|
75
|
+
|
|
76
|
+
- **[getMe Root Repository](https://github.com/AatirNadim/getMe)**
|
|
77
|
+
- **[Root README](https://github.com/AatirNadim/getMe/blob/main/README.md)**
|
|
78
|
+
- **[Server Engine Source](https://github.com/AatirNadim/getMe/tree/main/server)** | **[Server README](https://github.com/AatirNadim/getMe/blob/main/server/README.md)**
|
|
79
|
+
- **[CLI Tool](https://github.com/AatirNadim/getMe/tree/main/cli)** | **[CLI README](https://github.com/AatirNadim/getMe/blob/main/cli/README.md)**
|
|
80
|
+
- **[SDKs Hub](https://github.com/AatirNadim/getMe/tree/main/sdks)** | **[SDKs README](https://github.com/AatirNadim/getMe/blob/main/sdks/README.md)**
|
|
81
|
+
- **[Benchmarking Suite](https://github.com/AatirNadim/getMe/tree/main/benchmarking)** | **[Benchmarking README](https://github.com/AatirNadim/getMe/blob/main/benchmarking/README.md)**
|
|
82
|
+
- **[Shared Utils Package](https://github.com/AatirNadim/getMe/tree/main/utils)**
|
|
83
|
+
- **[AGPLv3 License](https://github.com/AatirNadim/getMe/blob/main/LICENSE)**
|
|
84
|
+
|
|
85
|
+
### Engineering Blog Series
|
|
86
|
+
|
|
87
|
+
If you are interested in the internal workings, design decisions, and the journey of building the `getMe` storage engine from scratch, check out our engineering blog series:
|
|
88
|
+
|
|
89
|
+
- **[Building getMe - Part I](https://techtom.hashnode.dev/building-getme-i)**
|
|
90
|
+
- **[Building getMe - Part II](https://techtom.hashnode.dev/building-getme-ii)**
|
|
91
|
+
|
|
92
|
+
## License
|
|
93
|
+
|
|
94
|
+
This project is licensed under the GNU Affero General Public License v3.0 (AGPLv3) - see the [LICENSE](https://github.com/AatirNadim/getMe/blob/main/LICENSE) file for details.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# getMe Python SDK
|
|
2
|
+
|
|
3
|
+
The official Python client library for the **getMe** key-value store. This SDK abstracts the underlying HTTP API calls, providing Python developers with a simple, idiomatic interface to interact with a `getMe` runtime.
|
|
4
|
+
|
|
5
|
+
## About getMe
|
|
6
|
+
|
|
7
|
+
`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.
|
|
8
|
+
|
|
9
|
+
The engine runs on a few core principles:
|
|
10
|
+
|
|
11
|
+
- **Log-Structured Storage**: All data is written to an append-only log file, maximizing write speed by avoiding slow, random disk I/O.
|
|
12
|
+
- **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.
|
|
13
|
+
- **Compaction**: A background process that periodically removes stale data to reclaim disk space.
|
|
14
|
+
- **Batch Operations**: A batch API amortizes the cost of writes, allowing for extremely high ingestion rates.
|
|
15
|
+
|
|
16
|
+
For a deep dive into the architecture, please refer to the [Root README](https://github.com/AatirNadim/getMe/blob/main/README.md) and the [Server README](https://github.com/AatirNadim/getMe/blob/main/server/README.md).
|
|
17
|
+
|
|
18
|
+
## Server Dependency
|
|
19
|
+
|
|
20
|
+
**Important:** This SDK acts merely as a client. The `getMe` core server engine **must** be running independently for this library to function.
|
|
21
|
+
|
|
22
|
+
### Running the Core Engine via Docker
|
|
23
|
+
|
|
24
|
+
For a containerized deployment of just the core engine, you can use the official pure server image:
|
|
25
|
+
**[aatir0docking/getme.server](https://hub.docker.com/r/aatir0docking/getme.server/)**
|
|
26
|
+
|
|
27
|
+
When running this image, the core engine listens for incoming requests on a Unix domain socket. To allow the host machine (and the HTTP Proxy that the SDK communicates with) to connect to this engine, you **must** bind-mount the socket directory to the host.
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
docker run -d \
|
|
31
|
+
--name getme-server \
|
|
32
|
+
-v getme_data:/var/lib/getMeStore/dataDir \
|
|
33
|
+
-v /tmp/getMeStore/sockDir:/tmp/getMeStore/sockDir \
|
|
34
|
+
aatir0docking/getme.server:latest
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Why manage the core engine separately?
|
|
38
|
+
|
|
39
|
+
Decoupling the database engine from the application logic provides several critical advantages:
|
|
40
|
+
|
|
41
|
+
- **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).
|
|
42
|
+
- **Independent Scaling**: You can scale your Python applications (e.g., across multiple workers or containers) dynamically while connecting to a centralized, standalone `getMe` instance.
|
|
43
|
+
- **Polyglot Ecosystems**: A decoupled server can serve multiple applications simultaneously, even if those applications are built across entirely different technology stacks.
|
|
44
|
+
|
|
45
|
+
## Other Available SDKs
|
|
46
|
+
|
|
47
|
+
While this is the Python client, `getMe` supports multiple languages. Detailed information on all available SDKs can be found in the [SDKs Hub README](https://github.com/AatirNadim/getMe/blob/main/sdks/README.md).
|
|
48
|
+
|
|
49
|
+
The available official SDKs are:
|
|
50
|
+
|
|
51
|
+
- [Go SDK](https://github.com/AatirNadim/getMe/tree/main/sdks/goSdk)
|
|
52
|
+
- [Java SDK](https://github.com/AatirNadim/getMe/tree/main/sdks/javaSdk)
|
|
53
|
+
- [JavaScript/TypeScript SDK](https://github.com/AatirNadim/getMe/tree/main/sdks/jsSdk)
|
|
54
|
+
- [Python SDK (This package)](https://github.com/AatirNadim/getMe/tree/main/sdks/pythonSdk)
|
|
55
|
+
|
|
56
|
+
## Links and Resources
|
|
57
|
+
|
|
58
|
+
Below is a comprehensive list of resources and documentation linked throughout the `getMe` ecosystem:
|
|
59
|
+
|
|
60
|
+
- **[getMe Root Repository](https://github.com/AatirNadim/getMe)**
|
|
61
|
+
- **[Root README](https://github.com/AatirNadim/getMe/blob/main/README.md)**
|
|
62
|
+
- **[Server Engine Source](https://github.com/AatirNadim/getMe/tree/main/server)** | **[Server README](https://github.com/AatirNadim/getMe/blob/main/server/README.md)**
|
|
63
|
+
- **[CLI Tool](https://github.com/AatirNadim/getMe/tree/main/cli)** | **[CLI README](https://github.com/AatirNadim/getMe/blob/main/cli/README.md)**
|
|
64
|
+
- **[SDKs Hub](https://github.com/AatirNadim/getMe/tree/main/sdks)** | **[SDKs README](https://github.com/AatirNadim/getMe/blob/main/sdks/README.md)**
|
|
65
|
+
- **[Benchmarking Suite](https://github.com/AatirNadim/getMe/tree/main/benchmarking)** | **[Benchmarking README](https://github.com/AatirNadim/getMe/blob/main/benchmarking/README.md)**
|
|
66
|
+
- **[Shared Utils Package](https://github.com/AatirNadim/getMe/tree/main/utils)**
|
|
67
|
+
- **[AGPLv3 License](https://github.com/AatirNadim/getMe/blob/main/LICENSE)**
|
|
68
|
+
|
|
69
|
+
### Engineering Blog Series
|
|
70
|
+
|
|
71
|
+
If you are interested in the internal workings, design decisions, and the journey of building the `getMe` storage engine from scratch, check out our engineering blog series:
|
|
72
|
+
|
|
73
|
+
- **[Building getMe - Part I](https://techtom.hashnode.dev/building-getme-i)**
|
|
74
|
+
- **[Building getMe - Part II](https://techtom.hashnode.dev/building-getme-ii)**
|
|
75
|
+
|
|
76
|
+
## License
|
|
77
|
+
|
|
78
|
+
This project is licensed under the GNU Affero General Public License v3.0 (AGPLv3) - see the [LICENSE](https://github.com/AatirNadim/getMe/blob/main/LICENSE) file for details.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "getme-python-sdk"
|
|
3
|
-
version = "1.
|
|
4
|
-
description = "
|
|
3
|
+
version = "1.1.0"
|
|
4
|
+
description = "Official Python SDK for getMe."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
authors = [
|
|
7
7
|
{ name = "AatirNadim", email = "aatir.nadim@gmail.com" }
|
getme_python_sdk-1.0.0/PKG-INFO
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.3
|
|
2
|
-
Name: getme-python-sdk
|
|
3
|
-
Version: 1.0.0
|
|
4
|
-
Summary: Add your description here
|
|
5
|
-
Author: AatirNadim
|
|
6
|
-
Author-email: AatirNadim <aatir.nadim@gmail.com>
|
|
7
|
-
Requires-Dist: certifi==2025.8.3
|
|
8
|
-
Requires-Dist: charset-normalizer==3.4.3
|
|
9
|
-
Requires-Dist: idna==3.10
|
|
10
|
-
Requires-Dist: python-dotenv==1.1.1
|
|
11
|
-
Requires-Dist: requests==2.32.5
|
|
12
|
-
Requires-Dist: requests-unixsocket==0.4.1
|
|
13
|
-
Requires-Dist: urllib3==2.5.0
|
|
14
|
-
Requires-Python: >=3.12
|
|
15
|
-
Description-Content-Type: text/markdown
|
|
16
|
-
|
getme_python_sdk-1.0.0/README.md
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|