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.3.tar.gz (634.6 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.3-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for tkv-0.1.3.tar.gz
Algorithm Hash digest
SHA256 6fb69e03c893b10a568479315f714c66a84b463af6e7addd7e1ec88895dae546
MD5 7f4c57c8927ce20e2c378f47f13993a0
BLAKE2b-256 014c69e8029ebc1973b55721d0ff9cfd2d17dee0a8b89cab98a8b49c699d1011

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tkv-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 11.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.0

File hashes

Hashes for tkv-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 9b52ba3bb0d10b0d6ef7e1dba8ddbfe28adc2b58d023e2d4cbad7281737dbac5
MD5 e6da932c8b05343e813b9e743f3b31d8
BLAKE2b-256 390a49b3a77ffbe192c832cf67f483778f4815b2076e82e7fe4e2585c0bdd113

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