Skip to main content

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

tkv-0.0.2.tar.gz (334.1 kB view details)

Uploaded Source

Built Distribution

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

tkv-0.0.2-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

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

Hashes for tkv-0.0.2.tar.gz
Algorithm Hash digest
SHA256 11e2b406c8e3a82291c8feaa9ae284c6f1a5ad6a7a5842ee7dcc6a45bc2d4a16
MD5 d3f3fafc6820b883fe843403b7dc5eea
BLAKE2b-256 6bfff7a85d901a28a5e04042c96e2f8bb32ee86e3929d5cd25682774bdd87ef3

See more details on using hashes here.

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

Hashes for tkv-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e81ebb66fb582995bca53eb6338dff6b1eff2ada626adf6803601b1d73c267fc
MD5 e0292595ac2dc34ee7bd558c89a38bad
BLAKE2b-256 c315916f66f9d68a91ddb0b1141b940db34b1dda91d7ae74575f06abf70360bd

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