Skip to main content

Fast semantic vector database (HNSW + mmap) with Python bindings

Project description

image

CI Python PyPI Python versions

LogosDB is a fast semantic vector database written in C/C++ that provides approximate nearest-neighbor search over embedding vectors with associated text metadata.

Authors: Jose (@jose-compu)

Contributing: See CONTRIBUTING.md for build instructions, style guide, and PR workflow.

Features

  • Vectors and metadata are stored as flat binary files, memory-mapped for zero-copy reads.
  • Approximate nearest-neighbor search via HNSW (hnswlib), O(log n) query time.
  • Each vector row carries optional text and ISO 8601 timestamp metadata (JSONL sidecar).
  • The basic operations are Put(embedding, text, timestamp) and Search(query, top_k).
  • Timestamp range filtering: search within a time window (e.g., "last 24 hours").
  • Multiple distance metrics: inner product, cosine similarity (auto-normalized), or L2 Euclidean.
  • Bulk vector access for direct tensor construction (e.g. loading into GPU memory).
  • Thread-safe API on a single open handle: an internal mutex serializes operations that touch the index and metadata (including search).
  • Crash recovery: HNSW index is automatically backfilled from the append-only vector store on open.
  • Scales to millions of vectors.
  • Framework integrations: LangChain and LlamaIndex VectorStore adapters.
  • MCP server: first-class Claude Code integration via logosdb-mcp-server.

Documentation

The public interface is in include/logosdb/logosdb.h. Callers should not include or rely on the details of any other header files in this package. Those internal APIs may be changed without warning.

Planning a deployment? See docs/sizing.md for disk/RAM estimates based on N×dim, or run python -m logosdb.sizing --rows 1_000_000 --dim 768.

Guide to header files:

  • include/logosdb/logosdb.h: Main interface to the DB. Start here. Contains:
    • C API with opaque handles and errptr convention (RocksDB/LevelDB style)
    • C++ convenience wrapper (logosdb::DB) with RAII and exceptions
    • logosdb::Options for HNSW tuning and distance metric selection
    • logosdb::SearchHit result struct
    • logosdb_search_ts_range() for timestamp-filtered search

Limitations

  • This is not a general-purpose vector database. It is purpose-built for embedding-based memory retrieval in LLM inference (funes.cpp).
  • Only a single process (possibly multi-threaded) can access a particular database at a time.
  • There is no client-server support built into the library. An application that needs such support will have to wrap their own server around the library.
  • For inner-product distance (LOGOSDB_DIST_IP, the default), vectors must be L2-normalized before insertion. Use LOGOSDB_DIST_COSINE for automatic normalization.
  • Embedding generation is external — the caller provides pre-computed float vectors.

Roadmap

Work is tracked in open issues. Version bumps follow Semantic Versioning with these project conventions while the library is pre-1.0 (0.x.y):

Bump When
Patch (0.x.Z) Bug fixes, security fixes, documentation, CI/build-only changes, and internal tooling that does not alter the supported contract of the public C API in include/logosdb/logosdb.h or the stable surface of language bindings.
Minor (0.Y.z) Backward-compatible additions: new functions or options, new storage or index behaviors behind explicit settings, new integrations, new platforms, and additive file-format upgrades with automatic or guided migration.
Major 1.0.0 First stable release: a documented compatibility promise for the public C API and for on-disk formats (including upgrade paths). Intended when the Path to 1.0.0 criteria (below) are satisfied so downstream authors can depend on semver semantics without surprise breakage across patch/minor lines.

Target versions and issue assignment match GitHub milestones (each open roadmap issue has exactly one milestone).

Milestones → issues

Past releases are summarized in the CHANGELOG and the closed milestones.

SHIPPED 0.9.0 — minor — throughput and scale

  • #87 — Streaming NDJSON import/export (logosdb_export_ndjson / logosdb_import_ndjson in C / C++ / Python) with chunk_size, byte-offset --checkpoint, and --resume. Parquet output is a follow-up.
  • #80 — Batch ingest v2: logosdb_put_batch is now chunked and WAL-aware (LOGOSDB_BATCH_CHUNK_SIZE, default 1024). Durability matches per-row logosdb_put; speed-up vs single put is workload-dependent (≈1.4× at dim=64 on the bench; HNSW per-row cost dominates at larger dims).

SHIPPED 0.10.0 — minor — search and metadata

  • #85 — Hybrid retrieval mode: ANN score + lexical score fusion
  • #84 — Filter API v2: structured metadata predicates beyond timestamp range

0.11.0 — minor — multi-tenancy and tooling

  • #86 — Multi-tenant namespaces: quota and isolation within one DB root
  • #89 — Recall benchmarking utility for HNSW tuning

0.12.0 — minor — integrations

  • #78 — Feature: Codex plugin marketplace integration for LogosDB

0.13.0 — minor — platform

  • #10 — Windows support: abstract POSIX file I/O behind a portable layer

1.0.0 — stable release tag

No roadmap issues are assigned only to this milestone: it marks publishing 1.0.0 once the criteria below are satisfied; implementation work stays on the milestones above until shipped.

Path to 1.0.0

1.0.0 is not a single mega-release of every open issue; it is the milestone where the project commits to stable semver for the public API and supported persistence story. Practically, 1.0.0 is targeted when:

  • The public C API in include/logosdb/logosdb.h is treated as stable: breaking changes only in future major versions, with migration notes.
  • On-disk layout and version negotiation are documented, with doctor/upgrade guidance (#88) and a credible backup/restore path (#83).
  • The security baseline in #74 is addressed for MCP, CLI, and bundled integrations.
  • Tier-1 platforms for the release are explicit (first-class Windows (#10) or a documented Unix-only 1.0, decided at release time).

Features such as hybrid retrieval (#85), filter predicates (#84), or multi-tenant namespaces (#86) can ship in 0.x minors as they land; they do not all block 1.0.0 unless adopted into the stable API surface.

Getting the Source

git clone --recurse-submodules <repository-url>
cd logosdb

Building

This project supports CMake out of the box.

Quick start:

mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release .. && cmake --build .

This builds:

Target Description
logosdb Static library (liblogosdb.a)
logosdb-cli Command-line tool for put, search, info
logosdb-bench Benchmark: HNSW vs brute-force, with ChromaDB comparison
logosdb-test Unit tests

Usage (C API)

#include <logosdb/logosdb.h>

char *err = NULL;
logosdb_options_t *opts = logosdb_options_create();
logosdb_options_set_dim(opts, 2048);

logosdb_t *db = logosdb_open("/tmp/mydb", opts, &err);
logosdb_options_destroy(opts);

float vec[2048] = { /* ... unnormalized vector ... */ };

// L2-normalize for inner-product distance (returns 0 on success, -1 if zero norm)
if (logosdb_l2_normalize(vec, 2048) == 0) {
    logosdb_put(db, vec, 2048, "My commute is 42 minutes",
                "2025-06-25T10:00:00Z", &err);
}

logosdb_search_result_t *res = logosdb_search(db, query_vec, 2048, 5, &err);
for (int i = 0; i < logosdb_result_count(res); i++) {
    printf("#%d score=%.4f text=%s\n", i,
           logosdb_result_score(res, i),
           logosdb_result_text(res, i));
}
logosdb_result_free(res);
logosdb_close(db);

Search with timestamp range filter

#include <logosdb/logosdb.h>

char *err = NULL;
logosdb_options_t *opts = logosdb_options_create();
logosdb_options_set_dim(opts, 2048);

logosdb_t *db = logosdb_open("/tmp/mydb", opts, &err);

// Search for top-5 matches within the last 24 hours
logosdb_search_result_t *res = logosdb_search_ts_range(
    db, query_vec, 2048, 5,
    "2025-04-21T10:00:00Z",  // from (inclusive), NULL for no lower bound
    "2025-04-22T10:00:00Z",  // to (inclusive), NULL for no upper bound
    50,                      // candidate_k: internal fetch multiplier (10x top_k recommended)
    &err);

for (int i = 0; i < logosdb_result_count(res); i++) {
    printf("#%d score=%.4f ts=%s text=%s\n", i,
           logosdb_result_score(res, i),
           logosdb_result_timestamp(res, i),
           logosdb_result_text(res, i));
}
logosdb_result_free(res);
logosdb_close(db);

Using different distance metrics

#include <logosdb/logosdb.h>

char *err = NULL;
logosdb_options_t *opts = logosdb_options_create();
logosdb_options_set_dim(opts, 2048);

// Use cosine similarity (automatically normalizes vectors)
logosdb_options_set_distance(opts, LOGOSDB_DIST_COSINE);

// Or use L2 Euclidean distance
// logosdb_options_set_distance(opts, LOGOSDB_DIST_L2);

// Default is LOGOSDB_DIST_IP (inner product on L2-normalized vectors)

logosdb_t *db = logosdb_open("/tmp/mydb", opts, &err);
logosdb_options_destroy(opts);

// For cosine: vectors are automatically normalized on put/search
float vec[2048] = { /* ... unnormalized vector ... */ };
logosdb_put(db, vec, 2048, "entry", "2025-04-22T10:00:00Z", &err);

logosdb_close(db);

Usage (C++ wrapper)

#include <logosdb/logosdb.h>
#include <vector>

// Basic usage with default inner-product distance
logosdb::DB db("/tmp/mydb", {.dim = 2048});

// L2-normalize your vectors before insertion (required for inner-product distance)
std::vector<float> embedding = load_some_vector();  // unnormalized
if (logosdb::l2_normalize(embedding)) {
    db.put(embedding, "My commute is 42 minutes", "2025-06-25T10:00:00Z");
}

// Or use l2_normalized() to get a normalized copy
auto normalized = logosdb::l2_normalized(query);
auto results = db.search(normalized, 5);
for (auto &r : results) {
    printf("id=%llu score=%.4f text=%s\n", r.id, r.score, r.text.c_str());
}

C++: Search with timestamp filter

#include <logosdb/logosdb.h>

logosdb::DB db("/tmp/mydb", {.dim = 2048});

// Search within a time window
auto results = db.search_ts_range(
    query, 5,
    "2025-04-21T00:00:00Z",  // from timestamp
    "2025-04-22T00:00:00Z",  // to timestamp
    50);                     // candidate_k (optional, defaults to 10x top_k)

for (auto &r : results) {
    printf("id=%llu score=%.4f ts=%s\n", r.id, r.score, r.timestamp.c_str());
}

C++: Using cosine or L2 distance

#include <logosdb/logosdb.h>

// Cosine similarity - vectors are automatically normalized
logosdb::DB db("/tmp/mydb", {.dim = 2048, .distance = LOGOSDB_DIST_COSINE});

// Put unnormalized vectors - they will be normalized automatically
db.put(unnormalized_embedding, "entry", "2025-04-22T10:00:00Z");

auto results = db.search(query, 5);
// scores are cosine similarities in [0, 1]

// L2 Euclidean distance
// logosdb::DB db("/tmp/mydb", {.dim = 2048, .distance = LOGOSDB_DIST_L2});

Python

LogosDB ships Python bindings built with pybind11 and scikit-build-core.

Install from PyPI (binary wheels provided for Linux x86_64/aarch64 and macOS x86_64/arm64 on CPython 3.9–3.13):

pip install logosdb

Or build from source in a clone:

pip install .

Usage:

import logosdb
from sentence_transformers import SentenceTransformer

# Local Hugging Face embeddings model (runs on your machine)
model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
dim = model.get_sentence_embedding_dimension()

# Use cosine distance so LogosDB auto-normalizes vectors
db = logosdb.DB("/tmp/agent_memory", dim=dim, distance=logosdb.DIST_COSINE)

# Three learnings captured by an AI agent
learnings = [
    ("Retrying API calls with exponential backoff reduced transient failures by 42%.", "2026-05-06T09:00:00Z"),
    ("Splitting long tasks into smaller batches improved throughput and lowered memory spikes.", "2026-05-06T09:05:00Z"),
    ("Adding idempotency keys prevented duplicate writes during network retries.", "2026-05-06T09:10:00Z"),
]

for text, ts in learnings:
    emb = model.encode(text).astype("float32")
    db.put(emb, text=text, timestamp=ts)

# Ask a natural-language question
question = "How can we avoid duplicate writes when retries happen?"
q_emb = model.encode(question).astype("float32")

hits = db.search(q_emb, top_k=3)
for h in hits:
    print(f"{h.score:.4f}  {h.text}")

Python: Using cosine distance (no manual normalization needed)

import numpy as np
import logosdb

# With cosine distance, vectors are automatically normalized
db = logosdb.DB("/tmp/mydb", dim=128, distance=logosdb.DIST_COSINE)

# No need to normalize - just put raw vectors
v = np.random.randn(128).astype(np.float32)
rid = db.put(v, text="unnormalized vector", timestamp="2025-04-22T10:00:00Z")

# Search also works with unnormalized queries
query = np.random.randn(128).astype(np.float32)
hits = db.search(query, top_k=5)

Python: Batch ingest and streaming NDJSON (0.9.0)

import numpy as np
import logosdb

db = logosdb.DB("/tmp/mydb", dim=128, distance=logosdb.DIST_COSINE)

# Chunked, WAL-aware batch insert (LOGOSDB_BATCH_CHUNK_SIZE controls fsync cadence).
embeddings = np.random.randn(10_000, 128).astype(np.float32)
ids = db.put_batch(embeddings, texts=[f"row {i}" for i in range(10_000)])

# Bounded-memory NDJSON export/import; --resume from a checkpoint on interruption.
db.export_ndjson("/tmp/rows.ndjson")
restored = logosdb.DB("/tmp/restored", dim=128, distance=logosdb.DIST_COSINE)
restored.import_ndjson("/tmp/rows.ndjson", chunk_size=1024,
                      checkpoint_path="/tmp/rows.cp", resume=False)

Run the Python tests and examples:

pip install ".[test]"
pytest tests/python/

python examples/python/basic_usage.py

# sentence-transformers demo (optional heavy dep)
pip install ".[examples]"
python examples/python/sentence_transformers_demo.py

Memory-Efficient On-Prem RAG

LogosDB is designed for memory-efficient retrieval-augmented generation (RAG) that runs entirely on your hardware.

RAM Model

LogosDB uses mmap() for zero-copy access. Your RAM usage scales with query patterns, not dataset size:

Dataset Dim Disk Typical Query RAM
100K 384 153 MB <20 MB
1M 384 1.5 GB <100 MB
10M 384 15 GB <200 MB

The OS caches hot index pages; cold data stays on disk. No explicit loading/unloading needed.

Quick RAG Example

import numpy as np
import logosdb
from sentence_transformers import SentenceTransformer

# 1. Load model (runs locally)
model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
dim = model.get_sentence_embedding_dimension()

# 2. Create DB with cosine distance (auto-normalizes)
db = logosdb.DB("/data/knowledge", dim=dim, distance=logosdb.DIST_COSINE)

# 3. Index documents
for text in documents:
    emb = model.encode(text)
    db.put(emb, text=text)  # Auto-normalized with cosine distance

# 4. Query (only touched pages load into RAM)
query_emb = model.encode("What is HNSW?")
for hit in db.search(query_emb, top_k=3):
    print(f"{hit.score:.4f}  {hit.text}")

See docs/rag-on-prem.md for complete guide including:

  • Time-sharding for infinite retention
  • External quantization patterns
  • Architecture patterns for production

See docs/sizing.md for detailed disk/RAM formulas and the python -m logosdb.sizing calculator.

Run the memory-efficient RAG example:

pip install ".[examples]"
python examples/python/memory_efficient_rag.py

Python: LlamaIndex VectorStore

pip install 'logosdb[llama-index]'
from logosdb import LogosDBIndex
from llama_index.core import Document
from llama_index.core.schema import TextNode
from llama_index.core.vector_stores import VectorStoreQuery
import numpy as np

# Create the vector store
db = LogosDBIndex(uri="/tmp/mydb", dim=128)

# Add nodes with pre-computed embeddings
node = TextNode(
    text="My commute is 42 minutes",
    embedding=np.random.randn(128).astype(np.float32).tolist(),
    metadata={"timestamp": "2025-04-28T10:00:00Z"}
)
db.add([node])

# Query
query_emb = np.random.randn(128).astype(np.float32).tolist()
query = VectorStoreQuery(query_embedding=query_emb, similarity_top_k=5)
results = db.query(query)

for node, score in zip(results.nodes, results.similarities):
    print(f"Score: {score:.4f}, Text: {node.text}")

# Timestamp range filtering
results = db.query(query, ts_from="2025-04-01T00:00:00Z", ts_to="2025-04-30T23:59:59Z")

The LogosDBIndex class implements LlamaIndex's VectorStore interface, supporting:

  • add(nodes) - Add nodes with embeddings
  • delete(node_id) - Delete by node ID
  • query(VectorStoreQuery) - Similarity search by vector
  • count() / len(store) - Number of live documents
  • Timestamp filtering via ts_from and ts_to kwargs

CLI

# Database info
logosdb-cli info /tmp/mydb

# Search with a binary query vector file
logosdb-cli search /tmp/mydb --query-file q.bin --top-k 5

# Streaming NDJSON export / import (#87) — bounded memory, optional resume
logosdb-cli export /tmp/mydb --output rows.ndjson [--start-id N --end-id M]
logosdb-cli import /tmp/mydb --dim 768 --input rows.ndjson \
    --chunk-size 1024 --checkpoint rows.cp [--resume]

Node.js

MCP Server — Claude Code integration

logosdb-mcp-server is a Model Context Protocol server that exposes LogosDB to Claude Code (and any other MCP client) over stdio. It lets Claude index files, persist knowledge across sessions, and do semantic search without leaving the conversation.

Claude Code: complete recipe

Follow these steps in order. Claude Code spawns the MCP server with working directory = your project root (the folder you opened); paths in mcp.json and LOGOSDB_PATH are resolved relative to that cwd unless you use absolute paths.

1. Prerequisites

  • Node.js 18 or newer on your PATH (node -v, npm -v). For the published package you also need npx.
  • Claude Code installed and signed in (overview).
  • Decide where the DB lives: LOGOSDB_PATH (default ./.logosdb) is created under the project root; add the directory to .gitignore if you do not want it committed.

2. Install the server (pick one)

Option A — This repository (local node, no npx). From the repository root:

npm install

That installs the mcp workspace and runs prepare, which compiles TypeScript to mcp/dist/index.js. After you change MCP sources, run npm run mcp:build at the root or npm run build inside mcp/.

Option B — Any other project (published logosdb-mcp-server). In your app’s root:

npm install logosdb-mcp-server

You can still invoke it without a project dependency via npx -y logosdb-mcp-server (see Option C).

3. Register the MCP server in Claude Code

Project-local config lives in .claude/mcp.json at the repository root. User-wide config is ~/.claude.json (same mcpServers shape). Only one definition named logosdb is needed.

If you use Option A (this clone): the repo already contains .claude/mcp.json:

{
  "mcpServers": {
    "logosdb": {
      "command": "node",
      "args": ["./mcp/dist/index.js"],
      "env": {
        "LOGOSDB_PATH": "./.logosdb"
      }
    }
  }
}

Open this folder as the Claude Code project so ./mcp/dist/index.js resolves. If the client’s cwd is not the repo root, set "args" to an absolute path to mcp/dist/index.js (see Installing locally — Option C).

If you use Option B or prefer always-latest from npm (Option C): create or merge .claude/mcp.json:

{
  "mcpServers": {
    "logosdb": {
      "command": "npx",
      "args": ["-y", "logosdb-mcp-server"],
      "env": {
        "LOGOSDB_PATH": "./.logosdb"
      }
    }
  }
}

Default embeddings are local Transformers.js (no API keys); first run may download model weights. Optional Ollama / OpenAI / Voyage env vars are documented in mcp/README.md.

4. Path rules for logosdb_index_file

The server only indexes files that resolve under process.cwd() or LOGOSDB_INDEX_ROOT (if set). Symlinks that escape those roots are rejected. Keep indexing paths inside the project you opened, or set LOGOSDB_INDEX_ROOT to an absolute allowed root (details in mcp/README.md — Path confinement).

5. Reload Claude Code and verify

  • Restart Claude Code or reload MCP configuration after editing mcp.json.
  • The logosdb server starts on first tool use (stdio).
  • Ask the agent to run logosdb_list (or check the MCP tools panel). You should see namespaces (possibly empty) rather than a spawn error.

6. Index, search, delete

  • Natural language: e.g. “Index src/ into the code namespace”, “Search the codebase for JWT validation”.
  • Slash commands (optional): if .claude/commands/ is present in the project (this repo ships them), use /index, /search, /forget — see the table below.
  • Snippet memory: the agent can call logosdb_index for short text; logosdb_index_file chunks files and directories.

Use one embedding backend consistently per namespace on disk (do not change model dimension on existing data). See Environment variables and mcp/README.md.

7. Optional: agent instructions

Copy the CLAUDE.md template block from Agent instructions (CLAUDE.md and similar) into your project so the agent indexes and searches without being reminded every session.

8. Troubleshooting

Symptom What to try
MCP fails to start / “Cannot find module” From the same cwd Claude uses, run node ./mcp/dist/index.js (Option A) or npx -y logosdb-mcp-server (Option C) in a terminal; fix missing npm install or broken path.
Relative ./mcp/dist/index.js not found Use an absolute args path to index.js, or open the correct folder as the project root.
logosdb_index_file rejects a path Path is outside cwd / LOGOSDB_INDEX_ROOT; use a path inside the project or set LOGOSDB_INDEX_ROOT.
Search looks wrong after changing model New embeddings must use a fresh LOGOSDB_PATH or new namespace; dimensions must match.

Google Antigravity: same stdio MCP pattern (node + local script, or npx + package). Step-by-step: mcp/README.md — Google Antigravity.

Claude Code slash commands

This repo ships project slash commands under .claude/commands/ (in addition to .claude/mcp.json for the MCP server):

Command Role
/index Index a file or directory via logosdb_index_file with incremental: true (new/changed files only; commands/index.md)
/search Semantic search; optional ISO ts_from / ts_to on the MCP tool (commands/search.md)
/forget Delete by row id or by natural-language query (commands/forget.md)

Agent instructions (CLAUDE.md and similar)

The MCP server does not index the repository by itself: the agent must call the tools (or you rely on slash commands / hooks). To make LogosDB feel automatic without typing /index every time, add a block like the following to your project’s CLAUDE.md (or any instructions file your agent reads on every session). Adjust namespaces and paths to your repo.

## LogosDB (semantic memory via MCP)

The **logosdb** MCP server is configured. Data lives on disk under `LOGOSDB_PATH` (see `.claude/mcp.json`); it **persists across sessions**.

**Namespaces:** Use separate namespaces for different concerns (e.g. `code` for `src/`, `docs` for `docs/`, `decisions` for short architectural notes). Search only the namespace that matches the user’s task.

**When starting substantive work on this codebase:**
1. If the user has not indexed recently and you need broad code context, call **`logosdb_index_file`** with **`incremental: true`** on the smallest useful path (e.g. `src/` or a package directory), not the whole monorepo unless asked.
2. Before answering “where is X implemented?” or similar, call **`logosdb_search`** with a tight natural-language `query`, `namespace` set appropriately, and `top_k` between **3** and **8**. Do not paste entire trees into the chat—retrieve, then read only the cited files.
3. For “what did we decide recently?” style questions, use **`logosdb_search`** with optional **`ts_from` / `ts_to`** (ISO 8601 inclusive bounds) on the `decisions` or `docs` namespace when timestamps matter.
4. When the user states a durable fact worth remembering (API contract, policy, workaround), call **`logosdb_index`** into the right namespace with concise text (timestamps are stored automatically; optional **`metadata`** can label the source).

**After large refactors or dependency upgrades:** Re-run **`logosdb_index_file`** with **`incremental: true`** on affected paths so search stays aligned without duplicating chunks for unchanged files.

**Deletion:** Use **`logosdb_delete`** with **`id`** from a prior search hit, or with **`query`** + optional **`match_rank`** / **`search_top_k`** to remove a semantically matched row when the user asks to forget something.

Environment variables

Variable Default Description
LOGOSDB_PATH ./.logosdb Root directory for all namespace databases
EMBEDDING_PROVIDER (local) Omit for Transformers.js on-device; or ollama, openai, voyage
TRANSFORMERS_MODEL Xenova/all-MiniLM-L6-v2 Local embedding model (bundled MCP path)
OLLAMA_* See mcp/README.md when using Ollama
OPENAI_API_KEY Required when EMBEDDING_PROVIDER=openai
VOYAGE_API_KEY Required when EMBEDDING_PROVIDER=voyage
LOGOSDB_CHUNK_SIZE 800 Target characters per chunk for file indexing

Voyage AI (voyage-3, dim=1024) is Anthropic's recommended cloud embedding model:

"env": {
  "LOGOSDB_PATH": "./.logosdb",
  "EMBEDDING_PROVIDER": "voyage",
  "VOYAGE_API_KEY": "<your-voyage-api-key>"
}

Available tools

Tool Description
logosdb_index Embed and store a text snippet in a namespace
logosdb_index_file Chunk, embed, and store a file or tree; optional incremental: true (skip unchanged, replace changed, prune deleted under a directory). When the path lives inside a Git working tree the walker honours .gitignore (root + nested + .git/info/exclude + global excludes) by default; disable with respect_gitignore: false or LOGOSDB_RESPECT_GITIGNORE=0.
logosdb_search Semantic search; optional ts_from / ts_to (ISO 8601) for timestamp-window filter
logosdb_list List all namespaces
logosdb_info Stats for a namespace (count, dimension, path)
logosdb_delete Delete by row id, or by natural-language query (search_top_k, match_rank)

Installing locally (without npx)

Option A — global CLI on your machine

npm install -g logosdb-mcp-server

In .claude/mcp.json, point the server at the global binary:

"logosdb": {
  "command": "logosdb-mcp-server",
  "args": [],
  "env": { "LOGOSDB_PATH": "./.logosdb" }
}

Ensure the directory containing the global npm binaries is on your PATH when Claude Code spawns the process (same shell you use for npm install -g).

Option B — project-local node_modules (no global install)

From your app repo:

npm install logosdb-mcp-server

Then use npx so the binary resolves from ./node_modules:

"logosdb": {
  "command": "npx",
  "args": ["-y", "logosdb-mcp-server"],
  "env": { "LOGOSDB_PATH": "./.logosdb" }
}

Omit -y if you prefer a fixed local install only. You can also call the entry script explicitly:

"command": "node",
"args": ["./node_modules/logosdb-mcp-server/dist/index.js"],
"env": { "LOGOSDB_PATH": "./.logosdb" }

Option C — development build from a LogosDB clone

cd mcp && npm install && npm run build

This repository’s checked-in .claude/mcp.json uses a relative path ./mcp/dist/index.js after npm install from the repo root (workspace prepare). For other clients or if the process cwd is not the repo root, use an absolute path to mcp/dist/index.js:

"logosdb": {
  "command": "node",
  "args": ["/absolute/path/to/logosdb/mcp/dist/index.js"],
  "env": { "LOGOSDB_PATH": "./.logosdb" }
}

The same env block (LOGOSDB_PATH, embedding variables) applies to every option. Restart Claude Code or reload MCP config after editing .claude/mcp.json.

Performance

Here is a performance report from the included logosdb-bench program. The results are somewhat noisy, but should be enough to get a ballpark performance estimate.

Setup

We use databases with 1K, 10K, and 100K vectors. Each vector has 2048 dimensions (matching typical LLM embedding sizes). Vectors are L2-normalized random unit vectors.

(Numbers below are illustrative ballparks; absolute values depend on hardware and build flags. Relative HNSW vs brute-force behavior is what to focus on.)

LogosDB:    version 0.9.0
CPU:        Apple M-series (ARM64)
Dim:        2048
HNSW M:     16, ef_construction: 200, ef_search: 50

Write performance

put (1K vectors):    ~50 µs/op   (~20,000 inserts/sec)
put (10K vectors):   ~80 µs/op   (~12,500 inserts/sec)
put (100K vectors):  ~120 µs/op  (~8,300 inserts/sec)

Each "op" above corresponds to a write of a single vector + metadata + HNSW index update.

Search performance

HNSW top-5 (1K):     ~0.1 ms/query
HNSW top-5 (10K):    ~0.3 ms/query
HNSW top-5 (100K):   ~1.2 ms/query

Brute-force top-5 (1K):    ~0.3 ms/query
Brute-force top-5 (10K):   ~2.5 ms/query
Brute-force top-5 (100K):  ~25 ms/query

HNSW maintains sub-linear scaling while brute-force grows linearly with database size. At 100K vectors, HNSW is roughly 20x faster.

Benchmark vs ChromaDB

logosdb-bench --dim 2048 --counts 1000,10000,100000
Metric ChromaDB LogosDB
Language Python + C (hnswlib) Pure C/C++
Search algorithm HNSW HNSW (same hnswlib)
Storage SQLite + Parquet Binary mmap + JSONL
Startup overhead Python runtime + deps Zero (linked library)
Embedding generation Built-in (Sentence Transformers) External (caller provides vectors)
Target use case General-purpose vector store Embedded LLM inference memory
Search latency (100K, dim=2048) ~5-10 ms ~1-3 ms
Memory footprint (100K, dim=2048) ~1.5 GB (Python + SQLite) ~800 MB (mmap)
Cold start ~2-5 s (Python imports) <10 ms
Dependencies Python, NumPy, SQLite, hnswlib hnswlib (header-only, vendored)

LogosDB uses the same HNSW implementation as ChromaDB (hnswlib) but eliminates Python overhead, SQLite serialization, and Sentence Transformer coupling. The result is a leaner library optimized for the single use case of embedded semantic memory for LLM inference.

Repository contents

include/logosdb/logosdb.h     Public C/C++ API (start here)
src/logosdb.cpp               Core engine: wires storage + index + metadata
src/storage.h / storage.cpp   Fixed-stride binary vector file with mmap
src/metadata.h / metadata.cpp Append-only JSONL text + timestamp store
src/hnsw_index.h / .cpp       Thin wrapper around hnswlib
tools/logosdb-cli.cpp         Command-line interface
tools/logosdb-bench.cpp       Benchmark tool
tests/test_doctest.cpp        C++ unit tests (doctest, incl. CLI integration)
tests/test_stress.cpp         Stress/property tests (opt-in via --test-suite=stress)
tests/python/test_smoke.py    Python smoke tests (pytest)
python/src/bindings.cpp       pybind11 Python bindings
python/logosdb/               Python package (logosdb._core + stubs)
examples/python/              Python usage examples
pyproject.toml                Python build/config (scikit-build-core)
third_party/hnswlib/          Vendored hnswlib (header-only)
package.json / package-lock.json   Private npm workspace (MCP + `nodejs` logosdb); `npm install` at repo root only
mcp/                          MCP server (logosdb-mcp-server npm package)
.claude/mcp.json              Claude Code MCP config (local `node ./mcp/dist/index.js`)
.claude/commands/             Slash command prompts (/index, /search, /forget)
CHANGELOG                     Release history
LICENSE                       MIT license text

Contributing

We welcome contributions. See CONTRIBUTING.md for:

  • Building from source
  • Running tests and benchmarks
  • Code style and PR workflow

Please review our Code of Conduct and Security Policy.

License

MIT — see LICENSE for the full text.

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

logosdb-0.11.0.tar.gz (4.3 MB view details)

Uploaded Source

Built Distributions

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

logosdb-0.11.0-cp313-cp313-musllinux_1_2_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

logosdb-0.11.0-cp313-cp313-musllinux_1_2_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

logosdb-0.11.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (483.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

logosdb-0.11.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (457.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

logosdb-0.11.0-cp313-cp313-macosx_11_0_x86_64.whl (298.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ x86-64

logosdb-0.11.0-cp313-cp313-macosx_11_0_arm64.whl (269.3 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

logosdb-0.11.0-cp312-cp312-musllinux_1_2_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

logosdb-0.11.0-cp312-cp312-musllinux_1_2_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

logosdb-0.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (482.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

logosdb-0.11.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (457.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

logosdb-0.11.0-cp312-cp312-macosx_11_0_x86_64.whl (297.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

logosdb-0.11.0-cp312-cp312-macosx_11_0_arm64.whl (269.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

logosdb-0.11.0-cp311-cp311-musllinux_1_2_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

logosdb-0.11.0-cp311-cp311-musllinux_1_2_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

logosdb-0.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (482.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

logosdb-0.11.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (457.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

logosdb-0.11.0-cp311-cp311-macosx_11_0_x86_64.whl (295.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

logosdb-0.11.0-cp311-cp311-macosx_11_0_arm64.whl (267.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

logosdb-0.11.0-cp310-cp310-musllinux_1_2_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

logosdb-0.11.0-cp310-cp310-musllinux_1_2_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

logosdb-0.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (481.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

logosdb-0.11.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (455.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

logosdb-0.11.0-cp310-cp310-macosx_11_0_x86_64.whl (293.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

logosdb-0.11.0-cp310-cp310-macosx_11_0_arm64.whl (266.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

logosdb-0.11.0-cp39-cp39-musllinux_1_2_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

logosdb-0.11.0-cp39-cp39-musllinux_1_2_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

logosdb-0.11.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (481.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

logosdb-0.11.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (455.9 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

logosdb-0.11.0-cp39-cp39-macosx_11_0_x86_64.whl (293.8 kB view details)

Uploaded CPython 3.9macOS 11.0+ x86-64

logosdb-0.11.0-cp39-cp39-macosx_11_0_arm64.whl (266.5 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file logosdb-0.11.0.tar.gz.

File metadata

  • Download URL: logosdb-0.11.0.tar.gz
  • Upload date:
  • Size: 4.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for logosdb-0.11.0.tar.gz
Algorithm Hash digest
SHA256 7d4a511d34ad65a45337c472cf9557d8197aa608e34a542ca5a54c9c02c54e02
MD5 3518ffe79362d2c23566986f3a35ebf8
BLAKE2b-256 b94fcfb8a992a7769a5291200489a073fdf698b931494caaa8a1692982ddcdee

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0.tar.gz:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f40ce85880bc4fe2a6f3c90b99799dcb23def28aa5ccb95885dbc012870d3773
MD5 7a0ceb9d9dab8197af39b3681b21e65b
BLAKE2b-256 afc8a5214029a34466eeef09bebd47e2ed30dff89d42ee5af33b9a42eaa14e11

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 97cd5e31192578aedc5c09a62875cb7756bfa2c4c7b0ab7d0531c4f7e2dd6559
MD5 d382128efefbf5fa09bdeababb352ad7
BLAKE2b-256 e052b9988eea6f4c9ec7077cc5d0e30949a2cb5bcdc1d94be28bb7a2c12043b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp313-cp313-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 22d2efd6033c7668adfb1e73616c0d5760c001379ad63df58d7a9acf89784feb
MD5 87271f20df583f276b307a04b72ea473
BLAKE2b-256 0b530f2802f9f60c8abeec2580d803af99c1857ac7f03c7585d7e265205413a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b73348501595a7c0d3fb6745ad5ad5dee77a526ebbe3b6b26bd9d945f8363294
MD5 f4c1789976b4a1f899f77400a1758a5d
BLAKE2b-256 9d48be205f63434d75ed51fd073eb6fcae19e47bd3c9b84ee24ee926cd14c856

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp313-cp313-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 d1b6db7ff3dcb2f2dcaa37199389aa88039b86f9959d664c8f7f2e9523c8a9d8
MD5 2ba46deb998843f3dcadc39fc5d2916d
BLAKE2b-256 5bb371670e119f4558400ac16abd74888e34699f7749241cf00dd89704a5c403

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp313-cp313-macosx_11_0_x86_64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6f74104168c5dad551b0659bc76c7fd12557b13c6129fed33d294d918f777be7
MD5 f752ef5c6deebdc65696b63799e4d6d7
BLAKE2b-256 237a90b0fa9fdcf1512a48ee52465986d71dd8d9cfefb0d62acfcb6d7e9e2707

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 69080d7f3d028fc3410515766d2f934a14fe8fabcb5f672a3798add74e7738b7
MD5 0516f79210b3b303b613e3c69ba5244d
BLAKE2b-256 38ed88ecc67d1c0f7b392d0c8327ead4e2197a1156ecd4423c7d487753a2cf4a

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 66d8a78812c2b85a9963c610f705672d289c38bdd9ffdae7bcbcf094195521a7
MD5 f0e50c69a8340ca47519193c5512068d
BLAKE2b-256 d16688d796910861d737447aa2d865e7c5487233ff4ff9f2a0085bade9e7bc85

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp312-cp312-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7ebcb3f33df2d74270eac35c59cd06d4a9fd4e8fa7273a00036d87e9aecc2905
MD5 b882e07af52238db238588bd047aa085
BLAKE2b-256 6f478d5281e2629fe725e19e1a5bdd8bdc6b7b577b3b48ccc21497f65526c433

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8c4b9d73bb14b40ad0d5002a5359136ee38d77ea794f171dfffa5d46e398a595
MD5 6bae7b5201775ece8deb4c3f3ac971d8
BLAKE2b-256 336073a60d294a2388775bb1c0e9545c0b67c939a2c86e61432c742460a974b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp312-cp312-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 b32eec97c6850f61f6a493b6ffcf9347042d081119f073dee61c52d94e051090
MD5 a80ba1ab0b48e0ac1537ba539c1ba12e
BLAKE2b-256 2618efb43b5952b793a7a581fee11f81bedf5559dae909f2e2e6974781b575fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp312-cp312-macosx_11_0_x86_64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 86dd031aff8090c00762fd97cae92d7b8f94549943d29155dbe65e8586c26481
MD5 4c9709982d77fcf98f67c14bb8a20703
BLAKE2b-256 af1895b11c0f426709f5180b5e6cc51395f4103b6da238c269335dd820d0a016

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7298ecad23b39d240d32b59cd5ad5526730f1bf44ccdc360209fe9c0abf0a9ac
MD5 687e9fa75020d0b2db37ab4305e49fbe
BLAKE2b-256 17b5893aa3550e17063d8c56a7bfd7490d657bff118b490ff64b1c42781e53cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 45858bfe01d573ec591eebf3bbed889ae7cc060ff02643cff1620d432a423b82
MD5 d6b5416d8200c1f0a8048ff5e843a4c8
BLAKE2b-256 7453d2c94b764c0df3f5655d8f7c54470d598a13a3e6cea73cd3eacf22d7a355

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp311-cp311-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5ffe088e5e91138cace555d2c953df7c19e1b337ef7c29f8860f4bf3c7b5834d
MD5 7700e03610c6da497e32553a3b39627c
BLAKE2b-256 53c9176056461d7ba4bebd54e5497c876bb0aece0dd553e9f4df99d036c2b923

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f944391dab9f778a7e6a488d17d0a83a7661d6296663b4493cbc2ec89175dcb4
MD5 0e080c9ef647caacaa2e65e3b1944cb7
BLAKE2b-256 cd116db040b04846f2398101207a31c57542feb57cf66dda005aa868d525ce6b

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp311-cp311-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 766e1100ec8f619ba1af18fa95d39e8fde4bc16a43b5e1ce3fcc95c1866d634a
MD5 4a4a5fe1ae2aeab75b928f6bfe4c3d26
BLAKE2b-256 9e2bd89a346be3e38feb440940c4fa6320b5ad688f2dff5f4434f433773b16ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp311-cp311-macosx_11_0_x86_64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 beefb56b42354426c2587457bd0fa22ea0b61d8f2fd13f3c3a9b1fc45bd758a6
MD5 60b9c085cf40bcf408248329dd396183
BLAKE2b-256 bf8622e62579714dd4b63344ef87987b01d4b7e23a6484868f471843e0eafa95

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 215ffc1f1a8efff5247bfe2f2b6cb0bbaefb75f0e3d267492fd4fda580d10332
MD5 43f262630308451c1dba0342489d11aa
BLAKE2b-256 89fc699dbc892c4a2755ce6b719aea00addceaf209aa8a2a6887cf6f1be28c66

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 bcb0c65d28a83716cad0fde835ed5aec60f3160f7a508c2c71559717c043c36b
MD5 f6fdb2b1026856527d63d0eb6811b295
BLAKE2b-256 f07ee5fa43e987c5795581df12571278c830a529bb29e79008a4383cb5e5aaee

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp310-cp310-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4afa185cb5e5a128d5041ce5df7dbd60ec69698a8979b1323045f57363453d15
MD5 131d7e1aef8357688aa4d4c9dee75fb7
BLAKE2b-256 0cffadbcaf21a8fcbd0b255e3c0446f1def2b35a53b06ce322166ae7ab6796d5

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4a685e7a12c41f3e1fe66e87f04d07cf41958651ccf24ea52786ac2ec998b16d
MD5 18925d722ba294efddbda0900ba3eb6f
BLAKE2b-256 f7526096d630b128225b854d2e23b62e21ba34b2ff2bd6c5fbac83042b4f3304

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 6611922b8547fb57bb1e4636b375870de491b079e3ef16055b707ae772842825
MD5 062dcae84888fc95892b913c90298ea1
BLAKE2b-256 f29e7db2a3b197eba49eb848a36dd9eb951f8cc7b3219a994132fca2067d6c44

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp310-cp310-macosx_11_0_x86_64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 da01aef6fb8d5ce808f87755c5844c382f145d64ecabb95d6a23a3bc38d6a111
MD5 b0f88582cefae439bbddc9e2216b097f
BLAKE2b-256 19f0cc82b39bcbb0234b89509c576a537409c2034b32eb58f7c7ea688e64f52b

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 263793f07f54ade911008f273b4bc9a484028de8f045c0a1f3fb177ffb0aa4e4
MD5 be616fd8168009fdd477675185e04644
BLAKE2b-256 011aae010cabc469facf40f9709fb7144a155b155c2be2b4929e698473417139

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp39-cp39-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 48b2519f271cde330586ae93be05a97037810ca7be3cc9ea6c42c68fea52fb7c
MD5 1ae141b6acdb8dccd578c3bde34ee215
BLAKE2b-256 242c2f66d7b6275a795d5e8ccb44f60076770dc2c3646e6a4e1c15ca860ba7cb

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp39-cp39-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 61dfa62149a619b70ebb909289ff0041e64abda73b4cf93c941b73f8fe6127a2
MD5 108c87b522025cf45dea3f5fd85441f6
BLAKE2b-256 87ef35b4a458ddcd924cea0a6b031649366e90950cb82500e3f9e1222f689281

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5a6fb97629381aed0a9772beca4f8c1b0d7e8428cd05da34fc8855a338073690
MD5 407cfd72e49620b5d1f72ac1ed478f47
BLAKE2b-256 a07268a20ef3057431e60a1030bfd30f5a6d8d7286e274bb49068eed7f75f7a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp39-cp39-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 45f01b20ec9c1b3c7ec28ccec3137e9de553f51b3b31d9b91706add48e64a88e
MD5 f439aeac2a8edb2a488f95b1b86055b1
BLAKE2b-256 62203290c3ba7abca4a03ccf01b48bea0987d676604dd967d9487600621d08f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp39-cp39-macosx_11_0_x86_64.whl:

Publisher: publish.yml on jose-compu/logosdb

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

File details

Details for the file logosdb-0.11.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for logosdb-0.11.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8138d3812647f38ee3c1f1523dfd63ad328577432a884d5f3488b4d12964997c
MD5 b880a4f10669dcd6a45e40f617e2bffc
BLAKE2b-256 257c3dff08e725681ab5821224ac5f1807d10374165ee9c405aa6d40753b2243

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.11.0-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: publish.yml on jose-compu/logosdb

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