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.1.1.tar.gz (563.2 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.1.1-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file tkv-0.1.1.tar.gz.

File metadata

  • Download URL: tkv-0.1.1.tar.gz
  • Upload date:
  • Size: 563.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.0

File hashes

Hashes for tkv-0.1.1.tar.gz
Algorithm Hash digest
SHA256 1528de29f1cc6cf6ac6526ea9c7e84b2e5191f43118dee000e5d346cc815a77d
MD5 c28c9ef90ece5183210bec8903126276
BLAKE2b-256 dbea58f4b24b19be339ec2064e4a00de61ce7b6203a8eaa0a73e82262b5a5ace

See more details on using hashes here.

File details

Details for the file tkv-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: tkv-0.1.1-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.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 19b269a6fc2156394856100f22dfc507b63c0b896d89d3a4be55a69370fca0c1
MD5 22381d517db26709b4ab6595ab941953
BLAKE2b-256 f5f980f33f1912b18c506c75e65a8a4abbc591682681c16f2279b4c4e8c0c697

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