Skip to main content

High-performance CUDA-accelerated vector retrieval core.

Project description

LocVec — Local Vector Retrieval Engine

High-speed, hardware-aware vector search for local RAG on consumer-grade GPUs — no cloud dependency required.


Overview

LocVec is a hardware-aware vector database and retrieval library written in Python with custom CUDA backends. It is designed for low-latency Retrieval-Augmented Generation (RAG) on consumer-grade hardware with limited VRAM.

By implementing a dynamic memory handoff system and optimized clustering algorithms, LocVec enables high-speed search across large document sets — entirely on-device.


Features

  • Custom CUDA Kernels — Accelerated matrix operations for vector similarity search.
  • Dynamic VRAM Handoff — Warm Loading cycle flushes the encoder after retrieval, freeing VRAM for LLM inference.
  • IVF Indexing — Reduces search complexity from O(N) to O(N/K) via K-Means clustered Voronoi partitioning with dynamic K calculation.
  • Streaming LLM Inference — Token-by-token generation from local models (e.g., Phi-3 via Ollama).
  • PDF Ingestion — Built-in sharding and indexing pipeline for document corpora.
  • No Cloud Required — Fully local; no API calls, no data leaving your machine.

System Requirements

  • NVIDIA GPU (CUDA-capable)
  • NVIDIA CUDA Toolkit — version matching your GPU drivers
  • Python 3.10+

Verify your CUDA installation:

nvcc --version

If the command is not recognized, add the CUDA bin directory to your system PATH.


Installation

# Clone the repository
git clone https://github.com/rAdvirtua/locvec.git
cd locvec

# Install required dependencies
pip install -r requirements.txt

# Compile and install the library (editable mode)
pip install -e .

Note: Editable mode (-e) is required to trigger local compilation of the C/CUDA extensions via the setup.py build script.


Setting Up a Local LLM with Ollama

LocVec uses Ollama to run LLMs locally. Follow these steps to get a model running before querying with LocVec.

1. Install Ollama

Download and install Ollama for your platform from ollama.com/download, or via the terminal:

# macOS / Linux
curl -fsSL https://ollama.com/install.sh | sh

For Windows, use the installer from the website.

2. Pull a Model

Once Ollama is installed, pull a model. Phi-3 is recommended for low-VRAM setups:

# Lightweight — good for 4–6 GB VRAM
ollama pull phi3

# Alternatively, for higher quality output
ollama pull llama3
ollama pull mistral

Browse the full model library at ollama.com/library.

3. Verify the Model is Running

ollama run phi3

You should see an interactive prompt. Type /bye to exit. Ollama runs as a background service automatically, so no manual server start is needed before using LocVec.

Tip: Match your model choice to available VRAM. On GPUs with less than 6 GB, stick to phi3 or gemma:2b to avoid OOM errors during the inference phase.


Usage

The usage example requires PyMuPDF for PDF text extraction. Install it with:

pip install pymupdf
import fitz
import time
import os
from locvec import LocalVec

def extract_and_chunk_pdf(file_path, chunk_size=300):
    text = ""
    with fitz.open(file_path) as doc:
        for page in doc:
            text += page.get_text()

    return [text[i:i + chunk_size] for i in range(0, len(text), chunk_size)]

# Explicitly initialize the engine with the preferred model
engine = LocalVec(model_name='all-MiniLM-L6-v2')

pdf_path = "research_paper.pdf"
chunks = extract_and_chunk_pdf(pdf_path)

print(f"Extracted {len(chunks)} shards from {pdf_path}")
engine.build_full_index(chunks)

query = "Summarize the key findings of this document."
start_time = time.perf_counter()

idx, context = engine.search(query)

if idx < 0:
    print(f"Error: {context}")
    exit()

latency_ms = (time.perf_counter() - start_time) * 1000
print(f"Search completed in {latency_ms:.2f}ms")

engine.offload_encoder()

print("\nAI Response:")
for token in engine.query_llm_stream("phi3", query, context):
    print(token, end="", flush=True)
print("\n")

PDF Chat Session

An interactive chat session over a PDF document. Maintains a short history window and enforces concise responses via a strict token limit.

import os
import json
import fitz
import urllib.request
from locvec import LocalVec

class PDFChatSession:
    def __init__(self, pdf_path, db_name="chat_store"):
        self.pdf_path = pdf_path
        self.lv = LocalVec(db_name=db_name)
        self.history = []
        self.llm_endpoint = "http://localhost:11434/api/generate"
        self.model = "phi3"

    def ingest_pdf(self, shard_size=600):
        doc = fitz.open(self.pdf_path)
        full_text = "".join([page.get_text().replace('\n', ' ') for page in doc])
        shards = [full_text[i:i + shard_size] for i in range(0, len(full_text), shard_size)]
        self.lv.build_full_index(shards)

    def _call_llm_stream(self, prompt):
        payload = {
            "model": self.model,
            "prompt": prompt,
            "stream": True,
            "options": {"temperature": 0.2, "num_ctx": 4096, "num_predict": 150}
        }
        req = urllib.request.Request(
            self.llm_endpoint,
            data=json.dumps(payload).encode('utf-8'),
            headers={'Content-Type': 'application/json'}
        )
        with urllib.request.urlopen(req) as response:
            full_response = ""
            for line in response:
                if line:
                    chunk = json.loads(line.decode('utf-8'))
                    token = chunk.get('response', '')
                    full_response += token
                    print(token, end="", flush=True)
                    if chunk.get('done'):
                        break
            return full_response

    def start_chat(self):
        while True:
            query = input("\nUser: ").strip()
            if query.lower() in ['exit', 'quit']:
                break

            _, context_shards = self.lv.search(query, top_k=2)
            history_str = "\n".join([f"Q: {h['q']}\nA: {h['a']}" for h in self.history[-1:]])

            full_prompt = (
                f"SYSTEM: You are a concise technical assistant. "
                f"Answer using ONLY the context provided. "
                f"STRICT RULE: Your response MUST be 3-4 lines maximum.\n\n"
                f"CONTEXT: {context_shards}\n\n"
                f"HISTORY: {history_str}\n\n"
                f"USER QUERY: {query}\n\n"
                f"CONCISE ANSWER:"
            )
            print("\nAI: ", end="")
            answer = self._call_llm_stream(full_prompt)
            print()
            self.history.append({"q": query, "a": answer})

if __name__ == "__main__":
    PDF_FILE = "research_paper.pdf"
    session = PDFChatSession(PDF_FILE)
    session.ingest_pdf()
    session.start_chat()

IVF vs. Brute-Force Benchmark

Compares LocVec's IVF-Voronoi search against a GPU flat (brute-force) baseline at scale. Useful for validating speedup on your specific hardware.

import time
import gc
import fitz
import random
import numpy as np
import torch
import json
import urllib.request
from locvec import LocalVec

SOURCE_PDF = "research_paper.pdf"
QUERY = "What is the specific methodology used in this paper?"
TARGET_SHARDS = 200000
OLLAMA_MODEL = "phi3"

def prepare_corpus(file_path, total_shards):
    doc = fitz.open(file_path)
    base_text = [p.get_text().replace('\n', ' ') for p in doc]
    multiplier = (total_shards // len(base_text)) + 1
    corpus = []
    for i in range(multiplier):
        for shard in base_text:
            if len(corpus) < total_shards:
                corpus.append(f"{shard} [id_{i}]")
    random.seed(42)
    random.shuffle(corpus)
    return corpus

def stream_inference(query, context):
    payload = {
        "model": OLLAMA_MODEL,
        "prompt": f"Context: {context}\n\nQuery: {query}\n\nTechnical Answer:",
        "stream": True,
        "options": {"temperature": 0.1, "num_predict": 350}
    }
    req = urllib.request.Request(
        "http://localhost:11434/api/generate",
        data=json.dumps(payload).encode('utf-8'),
        headers={'Content-Type': 'application/json'}
    )
    with urllib.request.urlopen(req) as response:
        for line in response:
            if line:
                chunk = json.loads(line.decode('utf-8'))
                yield chunk.get('response', '')
                if chunk.get('done'):
                    break

if __name__ == "__main__":
    corpus = prepare_corpus(SOURCE_PDF, TARGET_SHARDS)

    lv = LocalVec(db_name="benchmark_final")
    lv.build_full_index(corpus)

    time.sleep(20)  # Thermal recovery for laptop hardware

    embeddings_path = f"{lv.db_prefix}_offline_embeddings.bin"
    raw_data = np.fromfile(embeddings_path, dtype=np.float32).reshape(-1, lv.dims)
    all_vectors_gpu = torch.from_numpy(raw_data).to('cuda').half()
    q_vec_gpu = torch.from_numpy(lv.encoder.encode(QUERY)).to('cuda').half()

    # GPU Brute-Force
    torch.cuda.synchronize()
    _ = torch.norm(all_vectors_gpu[:100] - q_vec_gpu, dim=1)
    t0 = time.perf_counter()
    dist = torch.norm(all_vectors_gpu - q_vec_gpu, dim=1)
    flat_idx = torch.argmin(dist).item()
    torch.cuda.synchronize()
    latency_flat = (time.perf_counter() - t0) * 1000
    flat_context = corpus[flat_idx]

    # LocVec IVF
    t1 = time.perf_counter()
    lv_idx, lv_context = lv.search(QUERY, top_k=4)
    latency_lv = (time.perf_counter() - t1) * 1000

    peak_vram = torch.cuda.max_memory_allocated() / (1024**2)
    lv.offload_encoder()

    del all_vectors_gpu
    gc.collect()
    torch.cuda.empty_cache()

    speedup = latency_flat / latency_lv
    print(f"Brute-Force: {latency_flat:.2f}ms | LocVec IVF: {latency_lv:.2f}ms | Speedup: {speedup:.2f}x | Peak VRAM: {peak_vram:.2f}MB")

    for token in stream_inference(QUERY, flat_context):
        print(token, end="", flush=True)
    print()

    for token in stream_inference(QUERY, lv_context):
        print(token, end="", flush=True)
    print()

User API Reference

To use the vector engine in your own scripts, import the main class:

from locvec import LocalVec

LocalVec(model_name='all-MiniLM-L6-v2')

Initializes the vector engine and loads the embedding model into memory.

  • model_name (str, optional): Specify a different SentenceTransformers model from HuggingFace. Defaults to a fast, lightweight 384-dimension model ('all-MiniLM-L6-v2').

engine.build_full_index(texts)

Ingests a list of text shards and builds the optimized vector index on your GPU. It automatically calculates the best cluster distribution for your dataset size.

  • texts (list of str): A list of strings (e.g., your chunked PDF pages or text documents).

engine.search(query_text)

Performs a high-speed, hardware-accelerated vector search against your indexed documents to find the most relevant context.

  • query_text (str): The question or prompt you want to search for.
  • Returns (tuple): (idx, context) — The integer ID of the best-matching chunk and the actual text string of that chunk.

engine.offload_encoder()

Flushes the embedding model from your GPU's VRAM. Always call this before passing the retrieved context to a Local LLM. This guarantees your VRAM is completely free for generation, preventing out-of-memory crashes on consumer cards (4GB/6GB).


engine.query_llm_stream(model, query, context)

Sends the user's query alongside the retrieved context to your local Ollama instance, returning a stream of the response.

  • model (str): The name of the Ollama model to use (e.g., "phi3" or "llama3").
  • query (str): The user's original question.
  • context (str): The text payload returned by the engine.search() method.
  • Returns (generator): Yields individual string tokens for real-time console or UI streaming.

How It Works

CUDA Backend & Memory Management

Most local RAG implementations fail on consumer hardware because the embedding model and the LLM compete for the same VRAM pool. LocVec solves this with a two-phase lifecycle:

  1. Retrieval Phase — Custom CUDA kernels handle vector similarity computations.
  2. Warm Loading / VRAM Handoff — The encoder is flushed from GPU memory immediately after retrieval, clearing space for LLM inference and preventing Out-of-Memory (OOM) errors.

IVF Indexing

LocVec transitions search complexity from linear to clustered using Inverted File Indexing (IVF):

Step Description
Clustering K-Means partitions the vector space into K Voronoi cells dynamically based on dataset size.
Coarse Search Query is matched to the nearest centroid.
Fine Search k-NN search is performed only within the relevant cluster.
Complexity Reduced from O(N) → O(N/K).

Project Structure

locvec/
├── src/
│   ├── cuda/        # Custom CUDA kernels (k-means training, IVF search)
│   ├── bridge/      # C wrappers interfacing Python with CUDA memory management
│   └── locvec/      # Core Python library, CTypes bindings, and high-level API
├── setup.py         # Build configuration for C/CUDA extensions
├── testcase.py      # Reference implementation for PDF ingestion and search
└── README.md        # Documentation

License

See LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

locvec-1.0.4-cp314-cp314t-win_amd64.whl (24.9 kB view details)

Uploaded CPython 3.14tWindows x86-64

locvec-1.0.4-cp314-cp314t-win32.whl (24.9 kB view details)

Uploaded CPython 3.14tWindows x86

locvec-1.0.4-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (15.3 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

locvec-1.0.4-cp314-cp314t-macosx_11_0_arm64.whl (14.3 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

locvec-1.0.4-cp314-cp314-win_amd64.whl (24.9 kB view details)

Uploaded CPython 3.14Windows x86-64

locvec-1.0.4-cp314-cp314-win32.whl (24.9 kB view details)

Uploaded CPython 3.14Windows x86

locvec-1.0.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (15.3 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

locvec-1.0.4-cp314-cp314-macosx_11_0_arm64.whl (14.3 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

locvec-1.0.4-cp313-cp313-win_amd64.whl (24.5 kB view details)

Uploaded CPython 3.13Windows x86-64

locvec-1.0.4-cp313-cp313-win32.whl (24.5 kB view details)

Uploaded CPython 3.13Windows x86

locvec-1.0.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (15.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

locvec-1.0.4-cp313-cp313-macosx_11_0_arm64.whl (14.3 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

locvec-1.0.4-cp312-cp312-win_amd64.whl (24.5 kB view details)

Uploaded CPython 3.12Windows x86-64

locvec-1.0.4-cp312-cp312-win32.whl (24.5 kB view details)

Uploaded CPython 3.12Windows x86

locvec-1.0.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (15.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

locvec-1.0.4-cp312-cp312-macosx_11_0_arm64.whl (14.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

locvec-1.0.4-cp311-cp311-win_amd64.whl (24.5 kB view details)

Uploaded CPython 3.11Windows x86-64

locvec-1.0.4-cp311-cp311-win32.whl (24.5 kB view details)

Uploaded CPython 3.11Windows x86

locvec-1.0.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (15.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

locvec-1.0.4-cp311-cp311-macosx_11_0_arm64.whl (14.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

locvec-1.0.4-cp310-cp310-win_amd64.whl (24.5 kB view details)

Uploaded CPython 3.10Windows x86-64

locvec-1.0.4-cp310-cp310-win32.whl (24.5 kB view details)

Uploaded CPython 3.10Windows x86

locvec-1.0.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (15.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

locvec-1.0.4-cp310-cp310-macosx_11_0_arm64.whl (14.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file locvec-1.0.4-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: locvec-1.0.4-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 24.9 kB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for locvec-1.0.4-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 570ce3df95f146e95e00505674aa773edf7148041e6879cea97547732c83f69b
MD5 6b6bc1f70430ad919783ff60d0622fa1
BLAKE2b-256 3b4279325dea73a89a2c56d862867b0332ee6f27d7e015ccb1ede58a3ed7deaa

See more details on using hashes here.

Provenance

The following attestation bundles were made for locvec-1.0.4-cp314-cp314t-win_amd64.whl:

Publisher: build_wheels.yml on rAdvirtua/locvec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file locvec-1.0.4-cp314-cp314t-win32.whl.

File metadata

  • Download URL: locvec-1.0.4-cp314-cp314t-win32.whl
  • Upload date:
  • Size: 24.9 kB
  • Tags: CPython 3.14t, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for locvec-1.0.4-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 01f9a13afa61651b8a1c6d09746582eba04f19327dc0f150f9caea77887201b5
MD5 31a300073bd4fd10fd10f57e9739547b
BLAKE2b-256 d3cebe1d9dc1119469f33752e06005518722705acc03d990f94ef56b2a688abe

See more details on using hashes here.

Provenance

The following attestation bundles were made for locvec-1.0.4-cp314-cp314t-win32.whl:

Publisher: build_wheels.yml on rAdvirtua/locvec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file locvec-1.0.4-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for locvec-1.0.4-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 18263406f9ab8d05dab5355fd150eba69118939659334bbee1e3a34ff6876b18
MD5 e658f9dbe7b550a111efa793a9c46193
BLAKE2b-256 a592d96a5ed1bf79979d87f06571cc5d60a9385d231606732e18c34fde47547d

See more details on using hashes here.

Provenance

The following attestation bundles were made for locvec-1.0.4-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on rAdvirtua/locvec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file locvec-1.0.4-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for locvec-1.0.4-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c997a87d5803921420cdf9e1439b1e4813a327444d2f56d0d31d7f0aad0582ac
MD5 5a98da159849f2079de3c7ac3e13993c
BLAKE2b-256 58201882b10f3567af92cc66c4b4530a5bd4454efeeed02bcd8b3be949730d16

See more details on using hashes here.

Provenance

The following attestation bundles were made for locvec-1.0.4-cp314-cp314t-macosx_11_0_arm64.whl:

Publisher: build_wheels.yml on rAdvirtua/locvec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file locvec-1.0.4-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: locvec-1.0.4-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 24.9 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for locvec-1.0.4-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 9d9b3bdec6534385e40ab9064a0e0f62959e47e3a02a1cf0409d700b04ec4db4
MD5 c45c4cb28fefb2a0b8306b3951a94676
BLAKE2b-256 5bc18f897d9a92d9085e542980289d447e4430cc5dfbd0b9cb0745bba5b4b8d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for locvec-1.0.4-cp314-cp314-win_amd64.whl:

Publisher: build_wheels.yml on rAdvirtua/locvec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file locvec-1.0.4-cp314-cp314-win32.whl.

File metadata

  • Download URL: locvec-1.0.4-cp314-cp314-win32.whl
  • Upload date:
  • Size: 24.9 kB
  • Tags: CPython 3.14, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for locvec-1.0.4-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 c7d372009d13613830f1364bacd05b17f226b9266480a3d6ac27628bf4805874
MD5 64142f3bebfc6c4a0ee425681ae576b7
BLAKE2b-256 56ce1c5671c57309ea867937c7115e1c240d2fec48b493cbe2130f189d61180a

See more details on using hashes here.

Provenance

The following attestation bundles were made for locvec-1.0.4-cp314-cp314-win32.whl:

Publisher: build_wheels.yml on rAdvirtua/locvec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file locvec-1.0.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for locvec-1.0.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e177a91db8ba30ed53dc1c1739133e7c6110809bf004d6de7d4964961f7a19b1
MD5 b217b3d6ea38da8cc87497bf50f1670d
BLAKE2b-256 5ef8b717198481c90bc55525d6e90b3f84c999cd0424b5643dc772354c98ff29

See more details on using hashes here.

Provenance

The following attestation bundles were made for locvec-1.0.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on rAdvirtua/locvec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file locvec-1.0.4-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for locvec-1.0.4-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 69b612463c7d560195d9bf6e6cacb967db0dfc5edb75a9adf85bdda5c712aa9e
MD5 53f252078a80728d591bc5b8fb636012
BLAKE2b-256 a2bcd8c5573d9a5e83737233803d0004e44bc57c3fb364d74556e739cd1193ea

See more details on using hashes here.

Provenance

The following attestation bundles were made for locvec-1.0.4-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: build_wheels.yml on rAdvirtua/locvec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file locvec-1.0.4-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: locvec-1.0.4-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 24.5 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for locvec-1.0.4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 695da54abfbd0b68f6fa3ce119745f752f3e542dc828267e4bdb620fb1724609
MD5 a3e5d953c1a6c70f624e14682b021b74
BLAKE2b-256 b3932c462c96d5a89322c863540697f1a44ba2e9e1c35247f3aef6223a2462ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for locvec-1.0.4-cp313-cp313-win_amd64.whl:

Publisher: build_wheels.yml on rAdvirtua/locvec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file locvec-1.0.4-cp313-cp313-win32.whl.

File metadata

  • Download URL: locvec-1.0.4-cp313-cp313-win32.whl
  • Upload date:
  • Size: 24.5 kB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for locvec-1.0.4-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 2797f6ed6919761671d34c0a5a0ec28ce3bda1aa4ab5dddd133f81e18aaa7d46
MD5 83567398e60034115d34d468c0c6c873
BLAKE2b-256 897e5cc9db2574a748d8337fe603c16f79e3672b06578a2e771ba069427e1c2b

See more details on using hashes here.

Provenance

The following attestation bundles were made for locvec-1.0.4-cp313-cp313-win32.whl:

Publisher: build_wheels.yml on rAdvirtua/locvec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file locvec-1.0.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for locvec-1.0.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3877ab20f1952bd234cfe5906a1f2364330635715b311657991bb60433731d71
MD5 213f14d1456a08a8955d57358ab83da7
BLAKE2b-256 ad93255d07f291871dbb2ba7404bd2c821ae6b30e45ae3c43ed0d518505ec872

See more details on using hashes here.

Provenance

The following attestation bundles were made for locvec-1.0.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on rAdvirtua/locvec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file locvec-1.0.4-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for locvec-1.0.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e63a166eefb8313a405cf6948a537e94d1ce2458ff2e75240bee436990c9d501
MD5 490fe77f8e8deb69a72ed5272b934de8
BLAKE2b-256 e545d8952e4ee66f6387c2c775ee73ae44705a06d5eabccacd51fa150e8f7e51

See more details on using hashes here.

Provenance

The following attestation bundles were made for locvec-1.0.4-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: build_wheels.yml on rAdvirtua/locvec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file locvec-1.0.4-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: locvec-1.0.4-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 24.5 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for locvec-1.0.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d5e4eefc785d35d4ebd95c968958db683d78f5ec30bedc129b661b17baadc2c4
MD5 2488f82a0eded3eff78700d96dc40583
BLAKE2b-256 2c50ca49589b755c10a87ed135229e6cf86b71a4df4d448a8f6bf82a6323df47

See more details on using hashes here.

Provenance

The following attestation bundles were made for locvec-1.0.4-cp312-cp312-win_amd64.whl:

Publisher: build_wheels.yml on rAdvirtua/locvec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file locvec-1.0.4-cp312-cp312-win32.whl.

File metadata

  • Download URL: locvec-1.0.4-cp312-cp312-win32.whl
  • Upload date:
  • Size: 24.5 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for locvec-1.0.4-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 1e58565ff144b1ff3f6fca335047f09b5b1be631f1725d5c291c28f2c81a429c
MD5 f32d45357ebf8159b470310dcdeb5a53
BLAKE2b-256 8608d50d110205ad1e9816a407e3d802fbde96bd26ce6feec9901fbba1a166a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for locvec-1.0.4-cp312-cp312-win32.whl:

Publisher: build_wheels.yml on rAdvirtua/locvec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file locvec-1.0.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for locvec-1.0.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fa1babc529d4fe569e674dbfb3f9342b9e5266615338a045904fc6240a8b50f6
MD5 23f0f328fafa9d740b5dc1fe9f57bc09
BLAKE2b-256 a727b891414b1dc59f8251fda4de9fe134d796b1401eaf35948cba3c52c5c1e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for locvec-1.0.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on rAdvirtua/locvec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file locvec-1.0.4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for locvec-1.0.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fea2ed2645fc9ff11144ff21ad48dfa14910ab9c087d59b9a8d0acd8d9bea93d
MD5 13e423d6de733e858501a4591ff03d8f
BLAKE2b-256 227584af8039878f607af7ece01104316789a2363de490e99ce4120602804198

See more details on using hashes here.

Provenance

The following attestation bundles were made for locvec-1.0.4-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: build_wheels.yml on rAdvirtua/locvec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file locvec-1.0.4-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: locvec-1.0.4-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 24.5 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for locvec-1.0.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 cb22608ce44d15706f776224cc8969b1b89650f99dc19f75195e955f91bfaf90
MD5 89dfc1c6071e524487620639d129e444
BLAKE2b-256 a4ce215cd11471a110a5ac58023c0356ef6f70f31323a2cc81c9392304a34b63

See more details on using hashes here.

Provenance

The following attestation bundles were made for locvec-1.0.4-cp311-cp311-win_amd64.whl:

Publisher: build_wheels.yml on rAdvirtua/locvec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file locvec-1.0.4-cp311-cp311-win32.whl.

File metadata

  • Download URL: locvec-1.0.4-cp311-cp311-win32.whl
  • Upload date:
  • Size: 24.5 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for locvec-1.0.4-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 4fba29e3c8f92fb84fbdc24ab904e5df8fb23bd5a0a598b5758b142842eab699
MD5 138fc763d8444108ba051b9b1cac2728
BLAKE2b-256 7a22063cdd85a9289b1e9227a604483be1af83f77c9d787aa94b3e4e1b4478a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for locvec-1.0.4-cp311-cp311-win32.whl:

Publisher: build_wheels.yml on rAdvirtua/locvec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file locvec-1.0.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for locvec-1.0.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0a2f45f33715f08f4f6f5ae2b9e7697b0910979ab7c58622739b54dc06a26db3
MD5 e7592661819b21d30ef07ddb0c912442
BLAKE2b-256 c5eb301b9a3f2aeeb3ccc34b813caf8d9842bb84dfaa1e62c8c78e60c6a12a4c

See more details on using hashes here.

Provenance

The following attestation bundles were made for locvec-1.0.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on rAdvirtua/locvec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file locvec-1.0.4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for locvec-1.0.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 934e05d0bf41e4871384de60afd3155cfb2b6e171d9b101ff6c8048fac444a59
MD5 f90c94fed0b10e87859ed7d507f3a441
BLAKE2b-256 62eddd7c0717dffd1658928f5c061f9b08ce44f322c13774f99350a119aa2a1d

See more details on using hashes here.

Provenance

The following attestation bundles were made for locvec-1.0.4-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: build_wheels.yml on rAdvirtua/locvec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file locvec-1.0.4-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: locvec-1.0.4-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 24.5 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for locvec-1.0.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 56f4aaa00cd4786c016978b5f36913688a7b24296772faea41f9898fcc71b07e
MD5 6208b0fbdf924a6553bda72021077075
BLAKE2b-256 37a2da18ce048803fc1c30bf9b1188bb6efcd9600e526cb19db161479407d405

See more details on using hashes here.

Provenance

The following attestation bundles were made for locvec-1.0.4-cp310-cp310-win_amd64.whl:

Publisher: build_wheels.yml on rAdvirtua/locvec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file locvec-1.0.4-cp310-cp310-win32.whl.

File metadata

  • Download URL: locvec-1.0.4-cp310-cp310-win32.whl
  • Upload date:
  • Size: 24.5 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for locvec-1.0.4-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 3109d8b3a3ece4e835f04da005380622ad32449a07233fa785d08d2cea7d2759
MD5 5223a7242ddd3843e69b087737a88797
BLAKE2b-256 1edead3922f0be0fefb48a7e7e2f0a080025606521dac7f548a8b0b5daa68045

See more details on using hashes here.

Provenance

The following attestation bundles were made for locvec-1.0.4-cp310-cp310-win32.whl:

Publisher: build_wheels.yml on rAdvirtua/locvec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file locvec-1.0.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for locvec-1.0.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 03ced6c8830b2bc285fd5b6b673fad4430f4d364ca433b0228623ead788dc29c
MD5 f78c6d09b2100b4198677080b431c4be
BLAKE2b-256 0ad1027a2850ba2d60e1db4fe355fa4ec7a415bf83f11ca75b9dce8728baf1c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for locvec-1.0.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on rAdvirtua/locvec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file locvec-1.0.4-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for locvec-1.0.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3c281138eedbbf26d85f77142c92ac8bb1558fefaed010a44f67e7aaf899fb06
MD5 d22be9323b06fe1f874b1a6afcd5db01
BLAKE2b-256 e86430a846d3f37dfd7583c6be89db767007e66a4374a936ac223252aa8cba12

See more details on using hashes here.

Provenance

The following attestation bundles were made for locvec-1.0.4-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: build_wheels.yml on rAdvirtua/locvec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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