Temporal Key Value Store
Project description
TKV - Temporal Key-Value Store
A key-value store that supports timestamp-based queries, allowing you to retrieve values as they existed at specific points in time.
Features
- Temporal queries: Get the value for a key at the largest timestamp less than or equal to your query timestamp
- Multiple backends: SQLite as default, Redis and RocksDB as experimental alternatives
- REST API: FastAPI-based web interface
- CLI interface: Command-line tools for direct interaction
Project Layout
src/
├── service.py # Core backend store implementations
├── api.py # FastAPI web server
└── cli.py # Command-line interface
The primary interest is service.py, which contains the main backend store implementation using SQLAlchemy/SQLite, as well as experimental alternatives using Redis and RocksDB. The CLI and API are implemented separately as distinct interfaces to the core functionality.
Installation
From PyPI (Recommended)
pip install tkv
Development with uv
First install uv:
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Then clone and install:
git clone JackIsMyShephard/tkv.git
cd tkv
uv sync
Usage
CLI
# Store a value
tkv put mykey myvalue 1000
# Retrieve a value
tkv get mykey 1500
Web API
Start the server:
tkv-web run
Store data:
curl -X PUT http://localhost:8000/ \
-H "Content-Type: application/json" \
-d '{"key":"mykey","value":"myvalue","timestamp":1000}'
Retrieve data:
curl "http://localhost:8000/mykey?timestamp=1500"
Development
uv sync --group dev
uv run pytest
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tkv-0.0.2.tar.gz.
File metadata
- Download URL: tkv-0.0.2.tar.gz
- Upload date:
- Size: 334.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
11e2b406c8e3a82291c8feaa9ae284c6f1a5ad6a7a5842ee7dcc6a45bc2d4a16
|
|
| MD5 |
d3f3fafc6820b883fe843403b7dc5eea
|
|
| BLAKE2b-256 |
6bfff7a85d901a28a5e04042c96e2f8bb32ee86e3929d5cd25682774bdd87ef3
|
File details
Details for the file tkv-0.0.2-py3-none-any.whl.
File metadata
- Download URL: tkv-0.0.2-py3-none-any.whl
- Upload date:
- Size: 10.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e81ebb66fb582995bca53eb6338dff6b1eff2ada626adf6803601b1d73c267fc
|
|
| MD5 |
e0292595ac2dc34ee7bd558c89a38bad
|
|
| BLAKE2b-256 |
c315916f66f9d68a91ddb0b1141b940db34b1dda91d7ae74575f06abf70360bd
|