simple lmdb bindings written using ctypes
Project description
python-lmdb
===========
Your (L)MDB bindings for Python, written entirely using ctypes, but only for Python 3 (at the moment). Does not use any CPython native extensions.
Usage
-----
import lmdb
lib = lmdb.LibLMDB()
env = lmdb.Environment(lib, "data")
with env.transaction() as txn:
txn[b"key"] = b"value"
print(txn[b"key"])
del txn[b"key"]
Web API
-------
I have implemented a simple web REST API with Bottle. It supports simple
transactions, setting an item, getting an item, and deleting an item.
$ gunicorn lmdb.web
You can use the following environment variables to configure the application:
* *LMDB_WEB_LIB*: Path to liblmdb.so
* *LMDB_WEB_DBPATH*: Path to database directory
It supports simple REST endpoints:
* `GET /` Server status overview
* `GET /_simple/<key>` Retrievement of item by key
* `PUT /_simple/<key>` Set an item with request body
* `DELETE /_simple/<key>` Delete an item
* `POST /_trans` Upload transaction and execute it
* `GET /_dump` Return transaction which inserts data
Transactions are uploaded as JSON with the following form:
{
"write": true, # optional, by default false
"steps": [
{"action": "set", "key": "foo", "value": "bar"},
{"action": "delete", "key": "foo"},
]
}
===========
Your (L)MDB bindings for Python, written entirely using ctypes, but only for Python 3 (at the moment). Does not use any CPython native extensions.
Usage
-----
import lmdb
lib = lmdb.LibLMDB()
env = lmdb.Environment(lib, "data")
with env.transaction() as txn:
txn[b"key"] = b"value"
print(txn[b"key"])
del txn[b"key"]
Web API
-------
I have implemented a simple web REST API with Bottle. It supports simple
transactions, setting an item, getting an item, and deleting an item.
$ gunicorn lmdb.web
You can use the following environment variables to configure the application:
* *LMDB_WEB_LIB*: Path to liblmdb.so
* *LMDB_WEB_DBPATH*: Path to database directory
It supports simple REST endpoints:
* `GET /` Server status overview
* `GET /_simple/<key>` Retrievement of item by key
* `PUT /_simple/<key>` Set an item with request body
* `DELETE /_simple/<key>` Delete an item
* `POST /_trans` Upload transaction and execute it
* `GET /_dump` Return transaction which inserts data
Transactions are uploaded as JSON with the following form:
{
"write": true, # optional, by default false
"steps": [
{"action": "set", "key": "foo", "value": "bar"},
{"action": "delete", "key": "foo"},
]
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
python-lmdb-1.0.0b1.tar.gz
(8.1 kB
view details)
File details
Details for the file python-lmdb-1.0.0b1.tar.gz
.
File metadata
- Download URL: python-lmdb-1.0.0b1.tar.gz
- Upload date:
- Size: 8.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 150283ff9c6d3837cf5b5e76d1ac66292471f2a9641b3402c15485f29c0dbfb8 |
|
MD5 | 77b7af42a562ddb15e2b8555fe8a7c0f |
|
BLAKE2b-256 | 992f3e88269f265222c50545184387af2400024c184c98150932234711589c7c |