Skip to main content

Embedded vector database using the TurboQuant algorithm (arXiv:2504.19874) — zero training, 2-4 bit compression, fast inner-product search

Project description

TurboQuantDB

License PyPI

An embedded vector database with a Python API, built around the TurboQuant algorithm (arXiv:2504.19874) — two-stage quantization that achieves near-optimal vector compression with zero training time.

Goal: make massive embedding datasets practical on lightweight hardware. A 100k-vector, 1536-dim collection that would occupy 586 MB as raw float32 fits in 108 MB on disk with TQDB b=4, or just 59 MB with b=2 — enabling laptop-scale RAG over millions of documents without a dedicated server.

Two deployment modes:

  • Embeddedtqdb Python package (pip install tqdb), runs in-process (no daemon)
  • Server — Axum HTTP service in server/, with multi-tenancy, RBAC, quotas, and async jobs

Key Properties

  • Zero training — No train() step. Vectors are quantized and stored immediately on insert.
  • 5–10× compression — b=4 reduces 1536-dim float32 embeddings from 586 MB to 108 MB (5.4×); b=2 reaches 59 MB (9.9×) at 100k vectors.
  • Two quantizer modes — default (dense, best recall) and a faster ingest variant (srht) for streaming/high-d workloads. See docs/QUANTIZER_MODES.md for a full breakdown.
  • Optional ANN index — Build an HNSW graph after loading data for fast approximate search.
  • Metadata filtering — MongoDB-style filter operators on any metadata field.
  • Crash recovery — Write-ahead log (WAL) ensures durability without explicit flushing.
  • Python nativepip install tqdb; no server or sidecar required.

Installation

pip install tqdb

Building from source (Rust toolchain required): see DEVELOPMENT.md.


Config Advisor

The interactive Config Advisor selects the best configuration for your embedding dimension and use case (RAG, search-at-scale, edge deployment, etc.), scored against real benchmark data with adjustable priority weights for recall, compression, and speed.

Config Advisor


Recommended Setup

rerank=True stores raw INT8 vectors alongside compressed codes for exact second-pass rescoring. fast_mode=True (default) uses MSE-only quantization — optimal for d < 1536.

from tqdb import Database

# Best recall, any dimension — brute-force
db = Database.open(path, dimension=DIM, bits=4, rerank=True)   # INT8 rerank storage
results = db.search(query, top_k=10)
# GloVe-200 (d=200):     R@1 ≈ 1.00  |  ~30 MB disk
# arXiv-768 (d=768):     R@1 ≈ 0.98  |  ~116 MB disk
# DBpedia-1536 (d=1536): R@1 ≈ 0.95  |  ~231 MB disk

# Best recall, high-d (d ≥ 1536) — also enable QJL residuals
db = Database.open(path, dimension=1536, bits=4, rerank=True, fast_mode=False)

# Minimum disk — MSE codes only (library default, no extra vector storage)
db = Database.open(path, dimension=DIM, bits=4)

# Low latency at N ≥ 100k — HNSW index
db = Database.open(path, dimension=DIM, bits=4, rerank=True)
db.create_index()
results = db.search(query, top_k=10, _use_ann=True)       # p50 < 10ms

# Tune rerank oversampling at query time (default 10×)
results = db.search(query, top_k=10, rerank_factor=20)    # higher recall, higher latency

Full configuration guide: docs/CONFIGURATION.md | Python API: docs/PYTHON_API.md


Quick Start

import numpy as np
from tqdb import Database

db = Database.open("./my_db", dimension=1536, bits=4, metric="ip", rerank=True)

db.insert("doc-1", np.random.randn(1536).astype("f4"), metadata={"topic": "ml"}, document="Machine learning intro")
db.insert("doc-2", np.random.randn(1536).astype("f4"), metadata={"topic": "systems"}, document="Rust memory model")

results = db.search(np.random.randn(1536).astype("f4"), top_k=5)
for r in results:
    print(r["id"], r["score"], r["document"])

Python API

Full reference: docs/PYTHON_API.md

# Open / create
db = Database.open(path, dimension, bits=4, seed=42, metric="ip",
                   rerank=True, fast_mode=False, rerank_precision=None,
                   collection=None, wal_flush_threshold=None,
                   quantizer_type=None)  # None/"dense" = default (Haar QR + Gaussian); "srht" = fast O(d log d) ingest
# NOTE: rerank=True with rerank_precision=None uses per-vector-scaled INT8 reranking (default),
#       which is approximate. Use rerank_precision="f16" or "f32" for higher-precision rescoring.
#       rerank_factor (default 10× brute / 20× ANN) controls oversampling.

# Write
db.insert(id, vector, metadata=None, document=None)
db.insert_batch(ids, vectors, metadatas=None, documents=None, mode="insert")  # "insert"|"upsert"|"update"
db.upsert(id, vector, metadata=None, document=None)
db.update(id, vector, metadata=None, document=None)        # RuntimeError if not found
db.update_metadata(id, metadata=None, document=None)       # RuntimeError if not found

# Delete & retrieve
db.delete(id)                        # → bool
db.delete_batch(ids)                 # → int (count deleted)
db.get(id)                           # → {id, metadata, document} | None
db.get_many(ids)                     # → list[dict | None]
db.list_all()                        # → list[str]
db.list_ids(where_filter=None, limit=None, offset=0)       # paginated
db.count(filter=None)                # → int
db.stats()                           # → dict
len(db) / "id" in db                 # container protocol

# Search — brute-force by default; pass _use_ann=True to use HNSW index
results = db.search(query, top_k=10, filter=None, _use_ann=False,
                    ann_search_list_size=None, rerank_factor=None, include=None,
                    nprobe=None)  # nprobe=N activates IVF routing (see create_coarse_index)
# include: list of "id"|"score"|"metadata"|"document" (default all)
# ann_search_list_size: HNSW ef_search override (only used when _use_ann=True)
# rerank_factor: candidate oversampling multiplier (default 10 brute / 20 ANN)

all_results = db.query(query_embeddings, n_results=10, where_filter=None,
                       rerank_factor=None, include=None)
# query_embeddings: np.ndarray (N, D) — returns list[list[dict]]

# Manual maintenance checkpoint (WAL flush + segment compaction)
db.checkpoint()

# Index
db.create_index(max_degree=32, ef_construction=200, n_refinements=5,
                search_list_size=128, alpha=1.2)

# IVF coarse routing (fast approximate search at large N)
db.create_coarse_index(n_clusters=256)          # build once after loading data
results = db.search(query, top_k=10, nprobe=16) # score ~6% of corpus

# Metadata filter operators — $in/$nin/$or use index fast paths (O(1) per field)
# $eq $ne $gt $gte $lt $lte $in $nin $exists $and $or $contains
db.search(query, top_k=5, filter={"year": {"$gte": 2023}})
db.search(query, top_k=5, filter={"$and": [{"topic": "ml"}, {"year": {"$gte": 2023}}]})
db.search(query, top_k=5, filter={"topic": {"$in": ["ml", "systems"]}})    # O(1) indexed

Dataset Recovery (WAL)

TurboQuantDB replays wal.log automatically on reopen. For a local crash/power-loss recovery:

  1. Stop all writers to the DB directory.
  2. Make a copy of the DB folder (manifest.json, live_codes.bin, live_ids.bin, wal.log, etc.).
  3. Reopen the DB normally:
    db = Database.open("./my_db")
    
  4. Validate state:
    • db.stats()["vector_count"]
    • sample db.get(...) / db.search(...)
  5. Persist a clean post-recovery state:
    db.checkpoint()   # flush WAL + compact
    db.close()
    

If files are corrupted beyond WAL replay, restore from a snapshot/backup copy (server mode also supports snapshot/restore jobs; see docs/SERVER_API.md).


Benchmarks

Three datasets, 100k vectors each, matching arXiv:2504.19874 Figure 5. Benchmark config: quantizer_type=None (dense), fast_mode=True, rerank=True (MSE-only, matching paper Figure 5 bit allocation).

Benchmark recall curves — TQDB vs paper

Key results at 100k × d=1536 (DBpedia), brute-force, b=4, rerank=True:

Metric Value
Recall@1 92.2%
Recall@4 99.9%
Disk 108 MB (5.4× compression)
p50 latency ~51ms

Full tables (all 8 configs × 3 datasets), ANN guidance, and reproduction steps: docs/BENCHMARKS.md

Rerank unlocks recall at any bit depth

bits=2, rerank=True matches bits=4, rerank=True recall while using ~10% less disk, and outperforms bits=4, rerank=False at lower disk cost. (bit_sweep, n=10k, brute-force, fast_mode=True)

Dataset b=2, no rerank b=4, no rerank b=2 + rerank b=4 + rerank
GloVe-200 (d=200) 0.528 (1.8 MB) 0.822 (2.3 MB) 0.992 (3.8 MB) 0.992 (4.2 MB)
arXiv-768 (d=768) 0.426 (7.4 MB) 0.696 (9.2 MB) 0.978 (14.7 MB) 0.978 (16.6 MB)
GIST-960 (d=960) 0.294 (10.4 MB) 0.566 (12.7 MB) 0.974 (19.6 MB) 0.974 (21.9 MB)

Coverage across d=65–3072

R@1 ≥ 0.87 across all 9 benchmark datasets at b=4, rerank=True, brute-force, fast_mode=True, n=10k:

Dataset d R@1 Disk p50
lastfm-64 65 0.874 2.0 MB 1.1 ms
deep-96 96 0.980 2.5 MB 1.2 ms
glove-100 100 0.990 2.6 MB 1.4 ms
glove-200 200 0.992 4.2 MB 1.7 ms
nytimes-256 256 0.992 5.2 MB 2.0 ms
arXiv-768 768 0.978 16.6 MB 7.6 ms
GIST-960 960 0.974 21.9 MB 7.3 ms
DBpedia-1536 1536 0.998 41.1 MB 10.3 ms
DBpedia-3072 3072 1.000 117.0 MB 46.8 ms

RAG Integration

from tqdb.rag import TurboQuantRetriever

retriever = TurboQuantRetriever(db_path="./rag_db", dimension=1536, bits=4)
retriever.add_texts(texts=texts, embeddings=embeddings, metadatas=metadatas)

results = retriever.similarity_search(query_embedding=query_vec, k=5)
for r in results:
    print(r["score"], r["text"])

Server Mode

An optional Axum HTTP server in server/ adds multi-tenancy, RBAC, and async jobs. See docs/SERVER_API.md for setup, launch, and the full API reference.

For disaster recovery beyond local WAL replay, see Server Recovery Runbook (Snapshot/Restore) in docs/SERVER_API.md.


Research Basis

This is an independent implementation of ideas from the TurboQuant paper. The algorithm itself was authored by the original researchers.

Zandieh, A., Daliri, M., Hadian, M., & Mirrokni, V. (2025). TurboQuant: Online Vector Quantization with Near-optimal Distortion Rate. arXiv:2504.19874

@article{zandieh2025turboquant,
  title={TurboQuant: Online Vector Quantization with Near-optimal Distortion Rate},
  author={Zandieh, Amir and Daliri, Majid and Hadian, Majid and Mirrokni, Vahab},
  journal={arXiv preprint arXiv:2504.19874},
  year={2025}
}

License

Apache License 2.0 — see LICENSE.

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

tqdb-0.6.0.tar.gz (1.1 MB view details)

Uploaded Source

Built Distributions

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

tqdb-0.6.0-cp313-cp313-win_amd64.whl (4.2 MB view details)

Uploaded CPython 3.13Windows x86-64

tqdb-0.6.0-cp313-cp313-manylinux_2_28_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

tqdb-0.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

tqdb-0.6.0-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (5.6 MB view details)

Uploaded CPython 3.13macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

tqdb-0.6.0-cp312-cp312-win_amd64.whl (4.2 MB view details)

Uploaded CPython 3.12Windows x86-64

tqdb-0.6.0-cp312-cp312-manylinux_2_28_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

tqdb-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

tqdb-0.6.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (5.6 MB view details)

Uploaded CPython 3.12macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

tqdb-0.6.0-cp311-cp311-win_amd64.whl (4.2 MB view details)

Uploaded CPython 3.11Windows x86-64

tqdb-0.6.0-cp311-cp311-manylinux_2_28_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

tqdb-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

tqdb-0.6.0-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (5.6 MB view details)

Uploaded CPython 3.11macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

tqdb-0.6.0-cp310-cp310-win_amd64.whl (4.2 MB view details)

Uploaded CPython 3.10Windows x86-64

tqdb-0.6.0-cp310-cp310-manylinux_2_28_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

tqdb-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

tqdb-0.6.0-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (5.6 MB view details)

Uploaded CPython 3.10macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

File details

Details for the file tqdb-0.6.0.tar.gz.

File metadata

  • Download URL: tqdb-0.6.0.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.13.1

File hashes

Hashes for tqdb-0.6.0.tar.gz
Algorithm Hash digest
SHA256 7be8335f87ff191b710c3397b6521d459913a24d256a55bd62d8233a0e37a991
MD5 625db03a5d58a06b2196a3711d71cfdc
BLAKE2b-256 c5cc9758e8b29001d85b89b997d79d917b85a5986ba3b01ac9f7b808185bf4c6

See more details on using hashes here.

File details

Details for the file tqdb-0.6.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: tqdb-0.6.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 4.2 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.13.1

File hashes

Hashes for tqdb-0.6.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4ca8e115c012969b43480e5571fe5f944bffb0377a38f8fed295e5a4df87c9cd
MD5 34bbedae1b4df5abe898271b9331b600
BLAKE2b-256 205ba33aac909152a5e87afad7c1b63464fc25097e41a52a70762244b1ebb8cc

See more details on using hashes here.

File details

Details for the file tqdb-0.6.0-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tqdb-0.6.0-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 940c369f16964090808d815ef170586426103d746c243b7559a5428d7571f1df
MD5 41eec97483fa6e7c901007e872d179bd
BLAKE2b-256 25d88bf9f218a34de3310c64d83cfb01eb1bf87bf384b5da72276af544b71097

See more details on using hashes here.

File details

Details for the file tqdb-0.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tqdb-0.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f296dba4c41f0afdfcce60162adafcc01e78a761955510f8a306a29bdbe175b7
MD5 521524b6438d8d2f4e0a3550689c6387
BLAKE2b-256 5c2961a8d99a9674cfcc28dbafa2fc5a173c622aa0f9c714291f6499d0c8a5d8

See more details on using hashes here.

File details

Details for the file tqdb-0.6.0-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for tqdb-0.6.0-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 f4109a8c174fe4b0d1e01278932bb955568b2ed0748c6a8b1581344a332c474b
MD5 884fec223120e74a48395d45cc8abb6a
BLAKE2b-256 66d948103fce9cab1638c3bce2f8d991e07b41afddc19fafa0ec60e3368557cb

See more details on using hashes here.

File details

Details for the file tqdb-0.6.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: tqdb-0.6.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 4.2 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.13.1

File hashes

Hashes for tqdb-0.6.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d957442aa032805808f54bf08cabb68feae86180ebd7c4448a6cd6f65021c431
MD5 443d79c1f1dcf4cc17b032e63c8a1167
BLAKE2b-256 074f26fb43833dc3c1d804dcd3b6732ee1c4b3d0347896c0ceeb3883083122dd

See more details on using hashes here.

File details

Details for the file tqdb-0.6.0-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tqdb-0.6.0-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0cd7c306e93a3c9c8439490e49274cfb06c6396fcfae46cb93f3507110440c57
MD5 5c215366fb5efd781441ff34c38109ca
BLAKE2b-256 8a5b1a8e42ec8528c5ecb1cd27df9b02178d52fbded4fca84006623a39d38a5d

See more details on using hashes here.

File details

Details for the file tqdb-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tqdb-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9ca9b7e23263dea89cab52d3cd0282c4455f00c2a4474cce4e74a71803446387
MD5 d3b8cb44802175882a5c5a8237df3699
BLAKE2b-256 c3601942d4674e4b078c088c8cc03c2a8c413c41ad3c02b2c19e978a77ef2300

See more details on using hashes here.

File details

Details for the file tqdb-0.6.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for tqdb-0.6.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 b1306a9d5f907c7506e7efeb3b5df84c83363c3f6426bea3645ae2d3d718c081
MD5 9f4e30771f1139d36ac1798333ba8ca4
BLAKE2b-256 929154c64fdaf8ead0ed2ea0a20028b17e468f3cbfa443cf93b3f9426862f7b5

See more details on using hashes here.

File details

Details for the file tqdb-0.6.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: tqdb-0.6.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 4.2 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.13.1

File hashes

Hashes for tqdb-0.6.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d6be688fc917fd0c9be29ba498878a2807fb17be57efc68d6d9235b9ff44934d
MD5 c3f628af5540449ed7dadfd8dbdc24d5
BLAKE2b-256 d30a20786f3979b02d580488993bc40b76b66e01d64035e2261c834f15ce3cb0

See more details on using hashes here.

File details

Details for the file tqdb-0.6.0-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tqdb-0.6.0-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 db5d67e10935706d1220e2805aef1235228f17070d911cd8b3f5d45fe162c8a1
MD5 15acfe466398ea37179445cd36bde05b
BLAKE2b-256 41e9e93347a3a2c3804a649549e7a91eebc9814768481bf6371306b509c53489

See more details on using hashes here.

File details

Details for the file tqdb-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tqdb-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 72c7275383d813068ed5076e4d428695875f117e3efb77b8e0df88c057457b09
MD5 74528208d5c4846136d5dccee8b6709a
BLAKE2b-256 0ade8c24bdc4cf606637ec550f71de4c05bf5d8082474ac7ea753238181887b3

See more details on using hashes here.

File details

Details for the file tqdb-0.6.0-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for tqdb-0.6.0-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 1988db118d972aa8ee70be38a9ea1855fd2fbfad4e195f17e146b5f18c7a36cc
MD5 680948ecd0e8f07607d4f364a2bf1518
BLAKE2b-256 7b7b21ab7e1dc1709f98e54b19306ee4dbf4f351193cacc3c37b0f727d7ac107

See more details on using hashes here.

File details

Details for the file tqdb-0.6.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: tqdb-0.6.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 4.2 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.13.1

File hashes

Hashes for tqdb-0.6.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5edc44ad4da6cd75e11a5adbb36732710366ffd9eed73e0d1d090519e55354aa
MD5 a082c50ec0c3920fae07aecc9c5b0f0d
BLAKE2b-256 b145bc39631e19ba91609550cb3be00b8a3de332bed8b64d10fb0a8e4bae514a

See more details on using hashes here.

File details

Details for the file tqdb-0.6.0-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tqdb-0.6.0-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bf7346baa8d1fc32a55024bc17f0be666c756638b4a8313e8e17ec8af96e9928
MD5 f99061a33531207bc53266969d20d36e
BLAKE2b-256 2c280c8c03570d6c232cc71b4fb8b01878d75d7145ebebf7a5d2eb35c578c2ac

See more details on using hashes here.

File details

Details for the file tqdb-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tqdb-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f4d72708f63fb26d3269bd77521a0ed46d1a67383fa9132ff375a9653af49718
MD5 3f3c5f856badd6369caafb22f72ae325
BLAKE2b-256 26bbee0b4a2d7e00415ef7e05862f18af86f1b9116d1d159f788d893c4b4509b

See more details on using hashes here.

File details

Details for the file tqdb-0.6.0-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for tqdb-0.6.0-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 4a58e6b13c10ee4c40331b032b184cbb5633bfb2e178032828eae95111ad07a0
MD5 617a4814cbecc2c270559968da1c1021
BLAKE2b-256 b7069e6909f63110c58682f25bb2179849f5cf5e39db8e422952c27d3c14c27a

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