Skip to main content

Zero-Gravity Embedded Vector Database - Dynamic dimensions, RAM-efficient vector search

Project description

SrvDB: Embedded Vector Database for Offline AI Applications

Python Rust License

SrvDB is a Rust-based embedded vector database designed for offline and edge AI deployments. It provides exact nearest neighbor search with a focus on simplicity, deterministic behavior, and zero external dependencies.


Design Philosophy

Target Use Cases:

  • RAG (Retrieval-Augmented Generation): Local knowledge bases where accuracy is critical.
  • Edge Deployment: Raspberry Pi, mobile devices, and air-gapped systems.
  • Desktop Analytics: High-throughput batch processing on consumer hardware.
  • Offline Applications: Environments where network connectivity cannot be assumed.

Core Principles:

  • Simplicity: Drop-in deployment (pip install srvdb) with zero configuration required.
  • Accuracy First: Exact search modes guarantee 100% recall, ensuring reliable AI responses.
  • Resource Efficiency: Optimized for low-memory CPUs and limited storage bandwidth.

Architecture

Storage Layer          Index Layer             API Layer
---------------        -----------------       --------------
| vectors.bin |        | Flat Index    |       | Python API |
| (mmap)      |        | (Exact)       |       | (PyO3)     |
|             |        |               |       | (Native)   |
| metadata.db |        | HNSW Graph    |       | Rust API   |
| (redb)      |        | (Approximate) |       |            |
|             |        |               |       |            |
----------------       ----------------        --------------
     ^                      ^                       ^
  SIMD Accel          Thread Safety         GIL-Free Search
(AVX-512/NEON)        (parking_lot)          (Concurrent)

Performance Characteristics

Benchmarks on M1 MacBook (16GB RAM, Apple Silicon)

Mode Ingestion Search Latency (P99) Memory (RAM) Disk Usage Recall@10
Flat 23,978 vec/s 11.2ms 78MB 594MB 99.9%
HNSW 23,562 vec/s 10.6ms 21MB 594MB 99.9%
HNSW+PQ 4,613 vec/s 3.5ms -79MB* 28MB 13.4%**

*Negative value indicates memory reclamation during PQ training
PQ recall degrades significantly on clustered semantic data

Benchmarks on Consumer Linux Laptop (5.6GB RAM, x86_64)

Mode Ingestion Search Latency (P99) Memory (RAM) Disk Usage Recall@10
Flat 8,211 vec/s 4.67ms 42.16MB 59.52MB 99.9%
HNSW 8,772 vec/s 6.73ms -1.01MB 59.52MB 99.9%
SQ8 (Scalar Quantization) 9,560 vec/s 45.79ms 61.49MB 16.03MB 92.4%
SQ8 (IVF-HNSW) 2,142 vec/s 5.98ms 43.38MB 16.03MB 92.4%

Observation: The SQ8 mode offers 4x disk compression (60MB -> 16MB) but introduces significant latency (45ms). The IVF-HNSW variant attempts to mitigate this by combining compression with graph indexing but remains latency-bound compared to pure graph approaches.


Installation

pip install srvdb

Build from Source

git clone https://github.com/Srinivas26k/srvdb
cd srvdb
cargo build --release --features python
maturin develop --release

Quick Start

import srvdb
import numpy as np

# Initialize database
db = srvdb.SrvDBPython("./vectors")

# Bulk insert
ids = [f"doc_{i}" for i in range(10000)]
embeddings = np.random.randn(10000, 1536).astype(np.float32)
metadatas = [f'{{"id": {i}}}' for i in range(10000)]

db.add(
    ids=ids,
    embeddings=embeddings.tolist(),
    metadatas=metadatas
)
db.persist()

# Fast search
results = db.search(query=[0.1] * 1536, k=10)

for id, score in results:
    print(f"{id}: {score:.4f}")

Supported Embedding Models

Supported Dimensions: 128 - 4096 (Runtime)

Compatible Models:

  • OpenAI text-embedding-ada-002 (1536-dim)
  • OpenAI text-embedding-3-small (1536-dim)
  • Nomic nomic-embed-text-v1 (768-dim, 1536-dim variant)
  • Cohere embed-english-v3.0 (1024-dim, unsupported) - Use workaround below

Workaround for Non-1536 Embeddings:

from sentence_transformers import SentenceTransformer
import numpy as np

# Load model
model = SentenceTransformer('all-MiniLM-L6-v2')  # 384-dim
texts = ["sample text 1", "sample text 2"]
embeddings = model.encode(texts)  # Shape: (2, 384)

# Pad to 1536 dimensions
padded = np.pad(embeddings, ((0, 0), (0, 1536 - 384)), mode='constant')
padded = padded.astype(np.float32)

# Now compatible with SrvDB
db.add(
    ids=["id1", "id2"],
    embeddings=padded.tolist(),
    metadatas=['{"source": "text1"}', '{"source": "text2"}']
)

Indexing Modes

1. Flat Index (Exact Search)

Description: Brute-force linear scan with SIMD-accelerated cosine similarity.

When to Use:

  • Datasets < 50,000 vectors.
  • 100% recall required.
  • Predictable latency needed.

Characteristics:

  • Time Complexity: O(n)
  • Space Complexity: 6KB per vector (1536-dim x 4 bytes)
  • Recall: 100% (exact)

2. HNSW Graph Index

Description: Hierarchical Navigable Small World graph for O(log n) search.

When to Use:

  • Datasets > 100,000 vectors.
  • Sub-millisecond latency required.
  • 95-99% recall acceptable.

Characteristics:

  • Time Complexity: O(log n)
  • Space Complexity: ~6.2KB per vector (graph overhead: ~200 bytes)
  • Recall: 95-99.9% (configurable via ef_search)

3. HNSW + Product Quantization (Memory-Efficient Hybrid)

Description: Combines HNSW with 32x vector compression.

When to Use:

  • Memory-constrained environments (edge devices).
  • Dataset > 500,000 vectors.
  • 85-95% recall acceptable.

Characteristics:

  • Time Complexity: O(log n)
  • Space Complexity: ~392 bytes per vector (32x compression)
  • Recall: 90-95% (dependent on data distribution)

Critical Limitation: PQ mode exhibits recall degradation (13-20%) on clustered semantic data (e.g., document embeddings from the same topic). It is safe for uniformly distributed data but not recommended for RAG applications unless high recall loss is acceptable.

4. SQ8 (Scalar Quantization)

Description: Stores vectors as 8-bit integers on disk with 32x compression. Optimized for read-heavy workloads.

When to Use:

  • Read-mostly workloads (archival, backups).
  • Disk storage is at a premium.

Characteristics:

  • Time Complexity: O(n) (Linear scan)
  • Space Complexity: ~1.5KB per vector (32-bit integer)
  • Recall: 92.4% (Adversarial Mix: 70% Random / 30% Clustered)
  • Latency: Significantly higher than HNSW (10-45ms P99 at 50k vectors).

5. IVF-HNSW (Scalable Inverted File)

Description: Partitions vector space into Voronoi cells (Inverted File) and refines candidates using HNSW. Optimized for datasets exceeding 1M vectors.

When to Use:

  • Massive scale datasets (1M+ vectors).
  • Sub-10ms latency requirement (P99).
  • High recall (90-99%) maintained at scale.

Architecture:

  • Coarse Search: Identifies closest Voronoi cell centers (partitions) for the query.
  • Fine Search: Performs HNSW graph traversal only within the selected partitions.
  • Parallelism: Uses Rayon for concurrent partition access.

Performance:

  • Latency: ~6ms P50 at 100k vectors.
  • Scalability: Linear throughput up to 1M vectors.
  • Memory: Low overhead per partition compared to full graph.

API Reference

Initialization

# Flat mode (default)
db = srvdb.SrvDBPython(path: str)

# HNSW mode
db = srvdb.SrvDBPython.new_with_hnsw(
    path: str,
    m: int = 16,
    ef_construction: int = 200,
    ef_search: int = 50
)

# HNSW + PQ mode
db = srvdb.SrvDBPython.new_with_hnsw_quantized(
    path: str,
    training_vectors: List[List[float]],
    m: int = 16,
    ef_construction: int = 200,
    ef_search: int = 50
)

# IVF-HNSW mode
db = srvdb.SrvDBPython(path: str)
db.set_mode("ivf")
db.configure_ivf(nlist=1024, nprobe=16)
db.train_ivf(ids, vectors)

Operations

# Insert vectors
db.add(
    ids: List[str],
    embeddings: List[List[float]],  # 1536-dim default
    metadatas: List[str]             # JSON strings
) -> int

# Search
db.search(
    query: List[float],  # 1536-dim
    k: int
) -> List[Tuple[str, float]]

# Batch search (parallel)
db.search_batch(
    queries: List[List[float]],
    k: int
) -> List[List[Tuple[str, float]]]

# HNSW runtime tuning
db.set_ef_search(ef: int) -> None  # HNSW and IVF modes only

# Get metadata
db.get(id: str) -> Optional[str]

# Count vectors
db.count() -> int

# Persist to disk
db.persist() -> None

# IVF specific training
db.train_ivf(
    ids: List[str],
    vectors: List[List[float]]
) -> None

Performance Tuning

HNSW Parameters

# High accuracy (slower, more memory)
db = srvdb.SrvDBPython.new_with_hnsw(
    path,
    m=32,              # More connections
    ef_construction=500,
    ef_search=200
)

# Balanced (recommended)
db = srvdb.SrvDBPython.new_with_hnsw(
    path,
    m=16,
    ef_construction=200,
    ef_search=50
)

# Fast (lower accuracy)
db = srvdb.SrvDBPython.new_with_hnsw(
    path,
    m=8,
    ef_construction=100,
    ef_search=20
)

Benchmarking Your Hardware

We provide a standardized benchmark script to validate performance on your specific hardware.

pip install srvdb numpy scikit-learn psutil
python universal_benchmark.py

The script automatically detects available RAM, adjusts dataset size (10k-1M vectors), and uses an adversarial data mix (70% random / 30% clustered) to stress-test quantization accuracy.

Community Contribution:
Share your results in GitHub Discussions to help validate performance across different CPU architectures (Intel, AMD, ARM/M1).


Known Limitations

Critical Limitations

  1. Dimensionality: v0.2.0 fully supports dynamic dimensions (128-4096).
  2. Product Quantization (PQ) Recall: PQ mode exhibits severe recall degradation (13-20%) on clustered semantic data (e.g., RAG documents). It is recommended to use Flat or HNSW modes for semantic tasks.
  3. Concurrent Write Contention: Single-writer design; multiple processes cannot write simultaneously.
  4. No Dynamic Updates: Vector deletion/update requires index rebuild.

Minor Limitations

  1. SQ8 Latency: Scalar Quantization (SQ8) is optimized for disk compression and read-heavy workloads but incurs significant latency (10-45ms) for search.
  2. Memory Measurement: Benchmark reports may show inconsistent memory deltas due to OS caching behavior.

Future Work

v0.2.1 Roadmap (Q1 2026)

High Priority:

  • Incremental vector updates/deletion.
  • Async I/O for ingestion.
  • Memory optimization (target: <100MB for 10k vectors).

Medium Priority:

  • IVF optimization (OPQ - Optimized Product Quantization) to solve PQ recall loss on clustered data.
  • Filtered search (metadata-based pre-filtering).
  • GPU acceleration (CUDA/Metal) for SIMD operations.

Low Priority:

  • Distributed sharding (multi-node deployment).
  • Approximate quantization (scalar/binary).

Contributing

We invite you to help shape the future of offline vector search.

Areas of Focus:

  1. Algorithm Improvements: Better clustering for PQ/OPQ, alternative indexing structures (IVF, LSH).
  2. Engineering: Dimension flexibility, async I/O refactoring, memory profiling.
  3. Testing: Benchmark validation on diverse hardware and integration with popular embedding models.

See CONTRIBUTING.md for development setup and guidelines.


License

SrvDB is open-source software licensed under the GNU Affero General Public License v3.0 (AGPLv3).

🟢 Open Source Use

You are free to use SrvDB for personal projects, academic research, and open-source applications under the terms of the AGPLv3.

🔴 Commercial & Cloud Use

If you are building a proprietary application, a cloud service (SaaS), or embedding SrvDB in a commercial product where you cannot or do not wish to open-source your code, you must purchase a Commercial License.

Commercial Licensing Benefits:

  • Exemption from AGPLv3 open-source requirements.
  • Priority support & direct access to the maintainer.
  • Legal assurance for enterprise deployment.

For commercial licensing inquiries, please contact: srinivasvarma764@gmail.com


Acknowledgments

SrvDB relies on the following open-source projects:

  • SimSIMD - SIMD distance kernels
  • Rayon - Data parallelism
  • PyO3 - Python-Rust bindings
  • redb - Embedded key-value store
  • parking_lot - Fast synchronization primitives

Support

For bug reports or feature requests, please include system information and minimal reproduction code.

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

srvdb-0.2.0.tar.gz (455.1 kB view details)

Uploaded Source

Built Distributions

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

srvdb-0.2.0-cp312-cp312-win_amd64.whl (654.4 kB view details)

Uploaded CPython 3.12Windows x86-64

srvdb-0.2.0-cp312-cp312-manylinux_2_34_x86_64.whl (778.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

srvdb-0.2.0-cp312-cp312-macosx_11_0_arm64.whl (665.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

srvdb-0.2.0-cp311-cp311-win_amd64.whl (652.5 kB view details)

Uploaded CPython 3.11Windows x86-64

srvdb-0.2.0-cp311-cp311-manylinux_2_34_x86_64.whl (777.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

srvdb-0.2.0-cp311-cp311-macosx_11_0_arm64.whl (664.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

srvdb-0.2.0-cp310-cp310-win_amd64.whl (653.1 kB view details)

Uploaded CPython 3.10Windows x86-64

srvdb-0.2.0-cp310-cp310-manylinux_2_34_x86_64.whl (777.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

srvdb-0.2.0-cp310-cp310-macosx_11_0_arm64.whl (664.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

srvdb-0.2.0-cp39-cp39-win_amd64.whl (653.4 kB view details)

Uploaded CPython 3.9Windows x86-64

srvdb-0.2.0-cp39-cp39-manylinux_2_34_x86_64.whl (777.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.34+ x86-64

srvdb-0.2.0-cp39-cp39-macosx_11_0_arm64.whl (664.9 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

srvdb-0.2.0-cp38-cp38-win_amd64.whl (653.5 kB view details)

Uploaded CPython 3.8Windows x86-64

srvdb-0.2.0-cp38-cp38-manylinux_2_34_x86_64.whl (777.8 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.34+ x86-64

srvdb-0.2.0-cp38-cp38-macosx_11_0_arm64.whl (665.0 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

File details

Details for the file srvdb-0.2.0.tar.gz.

File metadata

  • Download URL: srvdb-0.2.0.tar.gz
  • Upload date:
  • Size: 455.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for srvdb-0.2.0.tar.gz
Algorithm Hash digest
SHA256 9eea0bc6ca3b404187f2aaa57934ad850c404822c2fa3a1039a1cd6417f04efb
MD5 26872327780cce9259d62000c16812d2
BLAKE2b-256 ba079077b61a7b4892cec4ffa3d7f692ce1d7f6c50ae9fa47cf04610996bd9d3

See more details on using hashes here.

File details

Details for the file srvdb-0.2.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: srvdb-0.2.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 654.4 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for srvdb-0.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 47160593024bee1b1a46561a98349097544dcecc02c71138b6a40b41e8ec6b7b
MD5 76598c408b0c3458493428dbea745efd
BLAKE2b-256 d9c476454e03f5e7545a3bd74690d9c7906eceb31fea08547371968d88b0983b

See more details on using hashes here.

File details

Details for the file srvdb-0.2.0-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for srvdb-0.2.0-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 d13ab6e9c5259a975255ee0368a6035de56678b2230ba3f583567359816abf9b
MD5 54a179d7a73264a8a1837f24e73c85bd
BLAKE2b-256 ff80676e2760a39c9d0abfa0234fbfe77969d0dc50d0d9d7f658adc541c97f9d

See more details on using hashes here.

File details

Details for the file srvdb-0.2.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for srvdb-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1aa1e50be6373c1dfcb5271d37e647c8d1965da501b46f28240ebcf9692bae4c
MD5 80fba4069eb6e4b1f4523d5820d94811
BLAKE2b-256 2131974a2e1bf26d176ec7e702a8602d0ad2c8c60691be43e62a46fd0f255d35

See more details on using hashes here.

File details

Details for the file srvdb-0.2.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: srvdb-0.2.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 652.5 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for srvdb-0.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8fd766d916dbc4149806e1bbc047febc94397fa30c0eedbddbe16088e8036163
MD5 196948d420f5f00c8dcb3c43885d3baa
BLAKE2b-256 07601b2ad1a5bae6ef6bfe743cd2674921063f4d4db6848169a6a54a5a0760f2

See more details on using hashes here.

File details

Details for the file srvdb-0.2.0-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for srvdb-0.2.0-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 a599ccf811aab6d34fe50f4927ec804ff7023151cb9b2ba0ae6f842a962c9810
MD5 d4b84a102982d6fab814cfd4fa132966
BLAKE2b-256 eb2982053611b1be231a9a2773d1af7d6a842d0b2ff98593e3cb07cd7b028b77

See more details on using hashes here.

File details

Details for the file srvdb-0.2.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for srvdb-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ed3db78a41af99cbe8558a1e031e5170174eea402305b90ebb420849dc9b036a
MD5 7606b5d351e780c0d7db5561032ef111
BLAKE2b-256 5c1f88d89d1918a027924cbf0e6b8989e71d6ce32e6327a8812f7de00dd948c8

See more details on using hashes here.

File details

Details for the file srvdb-0.2.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: srvdb-0.2.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 653.1 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for srvdb-0.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ed4bbe47b812ad7f710b5f8c69531af48211b985c2ed4e6e8d5ad73895514a22
MD5 b889236f99e76f7830051b4fd3aab7e1
BLAKE2b-256 06809e4ad634e23bec09b49c890553867ddb8300712b97d566055672de227717

See more details on using hashes here.

File details

Details for the file srvdb-0.2.0-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for srvdb-0.2.0-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 ef396231020d85c2f4370ef167c202bfa1fef8b9b26f2a4a935e1f2d29dac1be
MD5 966160c646ac4d4c83b3b81ff2f3d056
BLAKE2b-256 9d464759bdc2fbc78d536229503e9edd086945b97bb59a50e15a40bee6ba03a6

See more details on using hashes here.

File details

Details for the file srvdb-0.2.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for srvdb-0.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 52e1ba32b8cf6521314422ceb1df549a90442831f4f68cce708e4fffcfbca898
MD5 33d6934a12becc63843345fa247ad810
BLAKE2b-256 0f5d1efb29c2fe7737a742a3f29ebd5373966a59b4291f56720aca3c864d93a6

See more details on using hashes here.

File details

Details for the file srvdb-0.2.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: srvdb-0.2.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 653.4 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for srvdb-0.2.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 6cb8bd966ac9b8e193e5d133bfd4e133b021e2877837a41b3a65fa9a3dde49a6
MD5 2e43a11f3a13a25177e6aeeba5e64edc
BLAKE2b-256 e01abd27465e7bc71376fda6c6a4c3a865586205a54bccf8f86529993d3292a9

See more details on using hashes here.

File details

Details for the file srvdb-0.2.0-cp39-cp39-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for srvdb-0.2.0-cp39-cp39-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 1214b52ae85bb99fc5813cacccfa1b3f93f66a18e6bf5073db0669343a1a2e6a
MD5 35b138be5ebde5762669391bab6eaef0
BLAKE2b-256 353c8466b82ed5a1e276a3b16f46f550a922191eafeb847bd3a84e21d6dcf14e

See more details on using hashes here.

File details

Details for the file srvdb-0.2.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

  • Download URL: srvdb-0.2.0-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 664.9 kB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for srvdb-0.2.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bc634abb4e5f6071d2eabd33afe62830595b396bb6f5fec5ad4d9f8df1ff735c
MD5 66392f9cacf1fe3acfaa299d27e8123e
BLAKE2b-256 588d87e47159a1d06af95722126fb75db603f8560afaea3b21f446f5829b7080

See more details on using hashes here.

File details

Details for the file srvdb-0.2.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: srvdb-0.2.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 653.5 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for srvdb-0.2.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 7d9ea3baccdb59191b632d5d565e79af5ab31a6e15d6eaa3d93602162325e66b
MD5 d4850fa7993a3a407bf067fa3f3d784c
BLAKE2b-256 8acd3647ad88e98297f4aa144b84a5f16e5a2c6def41dd017bd639fd487b31f3

See more details on using hashes here.

File details

Details for the file srvdb-0.2.0-cp38-cp38-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for srvdb-0.2.0-cp38-cp38-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 f35eb4148b2fdfc20805001ad1d2bb590348c6260ee3abfbd55e6b536a3342d0
MD5 3b3eed75d49fdb6f3cfa1e2cfbda3fdc
BLAKE2b-256 c17f1a0290a197cae0e13b8d4825edf8c579b7468fb919664dc41e072fd87299

See more details on using hashes here.

File details

Details for the file srvdb-0.2.0-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

  • Download URL: srvdb-0.2.0-cp38-cp38-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 665.0 kB
  • Tags: CPython 3.8, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for srvdb-0.2.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5ebc1bb13a7d9475db27b6ce9103e7c3d1fcb2cfc2c614c5377578713a240026
MD5 d012730dcc50d602ccc6c54a7cd31b06
BLAKE2b-256 56599bc007372a13fa8807af086ca8bc37d7143f682bce04308d8bdb2ab123c8

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