Skip to main content

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.

Prerequisites

  • Python 3.12+

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 the repository and sync dependencies:

git clone https://github.com/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

Running Commands

# CLI commands
uv run tkv put mykey myvalue 1000
uv run tkv get mykey 1500

# Web server
uv run tkv-web run

Testing

uv run pytest

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.4.tar.gz (15.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.4-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for tkv-0.1.4.tar.gz
Algorithm Hash digest
SHA256 601bef5e2ae9a4fe927ab006b79296dbc24bbdb242eeb179c4ab55d077ac2775
MD5 ffe64bd134c4c446631ddde2b1aa1600
BLAKE2b-256 def9d8595d542518e32a857eb3c3dcf71e6c99a8d5f99888e7d7ec8336d08355

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for tkv-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 91afbe384da9dc6a3ea7ab91ff48ab5e1c0fe3867e0ddf74e2a7dc2e26289a3f
MD5 990661110c08c6cf33de111eb29a6038
BLAKE2b-256 ce099c8acd47e0360b6970dfaa6ad98b308e7a4b58632996b0ea742381dcdea7

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 files

0.1.3

2 files

0.1.1

2 files

0.1.0

2 files

0.0.2

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page