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 writes via internal mutex; concurrent reads are lock-free.
  • 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

0.7.7 — patch (0.x.Z)

  • #74 — security: harden encoding and injection surfaces across MCP, CLI, and integrations
  • #9 — libFuzzer JSON harness in CI; local ASan/UBSan builds possible; full-tree sanitizer CI not enabled (vendored hnswlib noise)

0.7.8 — patch (0.x.Z)

  • #94 — feat(mcp): expose timestamp-range search (search_ts_range / from_ts, to_ts)
  • #95 — docs: document Claude Code slash commands (/index, /search, /forget) in main README
  • #96 — feat(mcp) or docs: semantic delete / forget-by-query vs ID-only logosdb_delete

0.8.0 — minor — operations and durability

  • #88 — DB doctor/upgrade: compatibility checks and guided migrations
  • #83 — Snapshots and backup: consistent point-in-time export/restore
  • #82 — Metrics and observability: expose query/ingest/index health counters
  • #81 — Compaction/vacuum: reclaim space from tombstones and fragmented files

0.9.0 — minor — throughput and scale

  • #87 — Streaming import/export for very large corpora
  • #80 — Batch ingest v2: high-throughput put_batch with WAL-aware commit

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)

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

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 into a namespace via logosdb_index_file (commands/index.md; arbitrary text uses the logosdb_index tool in chat)
/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`** 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`** on affected paths so search stays aligned with the tree.

**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 an entire file
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.

(Report below was produced with an older logosdb-bench binary labeled 0.5.0; scaling and relative HNSW vs brute-force behavior are still representative of current builds.)

LogosDB:    version 0.5.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_basic.cpp          C++ unit tests
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   Root npm workspace (builds MCP for Claude Code)
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.7.8.tar.gz (2.8 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.7.8-cp313-cp313-musllinux_1_2_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

logosdb-0.7.8-cp313-cp313-musllinux_1_2_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

logosdb-0.7.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (436.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

logosdb-0.7.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (416.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

logosdb-0.7.8-cp313-cp313-macosx_11_0_x86_64.whl (257.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ x86-64

logosdb-0.7.8-cp313-cp313-macosx_11_0_arm64.whl (233.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

logosdb-0.7.8-cp312-cp312-musllinux_1_2_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

logosdb-0.7.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (436.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

logosdb-0.7.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (416.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

logosdb-0.7.8-cp312-cp312-macosx_11_0_x86_64.whl (257.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

logosdb-0.7.8-cp312-cp312-macosx_11_0_arm64.whl (233.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

logosdb-0.7.8-cp311-cp311-musllinux_1_2_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

logosdb-0.7.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (436.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

logosdb-0.7.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (415.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

logosdb-0.7.8-cp311-cp311-macosx_11_0_x86_64.whl (255.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

logosdb-0.7.8-cp311-cp311-macosx_11_0_arm64.whl (232.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

logosdb-0.7.8-cp310-cp310-musllinux_1_2_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

logosdb-0.7.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (434.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

logosdb-0.7.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (413.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

logosdb-0.7.8-cp310-cp310-macosx_11_0_x86_64.whl (254.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

logosdb-0.7.8-cp310-cp310-macosx_11_0_arm64.whl (231.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

logosdb-0.7.8-cp39-cp39-musllinux_1_2_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

logosdb-0.7.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (435.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

logosdb-0.7.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (413.6 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

logosdb-0.7.8-cp39-cp39-macosx_11_0_x86_64.whl (254.4 kB view details)

Uploaded CPython 3.9macOS 11.0+ x86-64

logosdb-0.7.8-cp39-cp39-macosx_11_0_arm64.whl (231.5 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for logosdb-0.7.8.tar.gz
Algorithm Hash digest
SHA256 a676012ae476f4c5beb4bee23ce9de184d9cbadd377356a726d6b43a1009cced
MD5 58884209ed56bab3c2a919d7f10cc96f
BLAKE2b-256 6a4d2a8041f266e3e383adc177cbe0051072db356e1cbeadc11b4f367e2439f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8.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.7.8-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f7d0549bdc3dccb31e20f8ed4c78ee24542851cac65212e98ce335f60254fc6a
MD5 139649e43cbb01bb7ed52f0e6f94a653
BLAKE2b-256 78468010c0926566f4744164d195304590385891e096eb1810c2e7448fdc5cc3

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d9a3a596b0e97d2c2457c7c4caefb93b4032c852e0a86397982232f792849d37
MD5 cbb324b4ed4b73aafa9e0297a0d4a629
BLAKE2b-256 d91b1b7743359e380da75c9056af2a7a312d55d51d15d08b5975acd841acc51a

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2bf3aad2efafdec74fd14a931cf235166d2244b1331dd65e2ff5dcc465842601
MD5 07dddda8a14042da744f798814885ff2
BLAKE2b-256 725f09c64a6cd9805a9d614322bff1bcb36121175d60658e4adfdbb616547c44

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 617900a21da8b502969ab6c6ae497566fdf4968b55b224cc58fcc6558bed4fe2
MD5 1bf98eeb24281e2ace1a00acb9ab3ec3
BLAKE2b-256 47ecf5e29a0e997f68d2eea5dce635acf63eabbe2d781554a795613b2b981d54

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp313-cp313-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 20e14c758cd84468e2062dd15abdd7d443bcd35ed9ea855309186b099dd688e7
MD5 62cc0fac2c489005eedebfb16592e18d
BLAKE2b-256 b0d8b26575f03724c0058ab626cecd8efc044e720c7e1dce9dc7e2cb617c657b

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fbb52b989605585d808d2403bdc3fe04f2206bf9316f0e0ab341af947276060c
MD5 1562067ef337f901e110f31d502f7536
BLAKE2b-256 5c9cc6c78ec072bcb236302b660b7383bca5e3059d830b99475ef3010a72f8d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 45a7d90d770f20c58db68da86a010b3b06e05aed97b5474ece49eec714cdd71c
MD5 a75770319b6788445be957954f52448a
BLAKE2b-256 c13613b18f9a889643a6c61cbed0e580d71e3f82816a68cf7b02be90b4a6092c

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e1af231df477aecc26be5ac51a381116ada4b0277639699974cfa81c58c91b15
MD5 b0b02e75277aa14f80c71793895cb8a0
BLAKE2b-256 7b2d62f068ad179d19bafa860da06a014aa0682e47666282ee4b856a20de0b6a

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d8b619a3c0df4e49a427d252361effc95020209431db636385d906379dd341ba
MD5 3ce1269ff53b3182f6d26b8c6d8a04fb
BLAKE2b-256 7825473101a014640a51c14974efd3388ceea46434362a51a0af959e6546d8b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c0570f956d2472c323f0f1cbcc62f89bd5098c2226e4a789f94f4120b0ab19ff
MD5 555cbd24db4f7f27d35bd4f4d04688f6
BLAKE2b-256 eb0950e4507b0d82be62f7b38a82c09e138de3038f6e3ed8738bbf0d9dd6c4d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp312-cp312-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 fd658e532df50163b31f337be8e435584943a5082654a1126de89eca44217ea1
MD5 66aed0d30b5ac1c061c2cada9a3cb073
BLAKE2b-256 fdda745ebd465c5bfc90397a13e0f567dd2725ff7c6b1a6b8bce444cf67652d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1e7976a2487cff42e90eb39fe2ea176d302a29804cc47a660180248eb19e4df3
MD5 dfeed80bba86520f43d912bba8b6d0e0
BLAKE2b-256 194404f2c2cc0ce8734c7ae8c05dab03d28cad6c9e42581e2cb0681896544d98

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 93ed07b51a3a86647fb755775e47bb8017c686f67257daa059e6aa68c8ee4372
MD5 3f3543f7d13f5dc39080d1d845f6f064
BLAKE2b-256 fe7148873996bb0a160d8a2370ac29cb435aeb6232dcf4520b307ff1daed2af7

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5ba5521b0e6f011df5d843238ebaa4e4d9d1e0b9cb0800801efe1045fb662693
MD5 2d3c01335174c2cef32afe4eed45bcee
BLAKE2b-256 eb21c608ba693bccb5153575faf39c0acf47a8146cbf05a6df6df0229ee10fae

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9dd8f4bfc82f77f95ecd697c67a1733beb5726b17e185ab6133e0c603bd767cf
MD5 a50640d1f83cd5db84c31f2d8ff87e35
BLAKE2b-256 913c21c79960143698845ede5b82a45f108663c0108250933dba54d0eabe4f8c

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 daaceaf4db6fd1f4806ca16346183f1ed2190ff8b37ff38775f718f4a6ff21b2
MD5 ed57d5208d7e134668bb24a3a1ac8551
BLAKE2b-256 8df616165b23b8180eb06392f731a678b65b54cf8f1315e4d4d82c0fcc0ea9eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp311-cp311-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 12dc212c088433ab2eb12632141cd6bd254530487ad0d2eaf7ada68ae06acfde
MD5 d0e640a796f4d9597f18734b6a2112af
BLAKE2b-256 a02ed97f26c9b6ec1a4ca8f1973f406cf1998357330d764798f433f5efef737a

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 30dfd36ee6e96493674f6dda2e45146b44e1fc13fb9c6423bd1138099200c993
MD5 7e546578f3700a0bc7627f77428c9953
BLAKE2b-256 2b9b89971947b9c2ba5ba9d078b91d26f200bde798ec4702c94cdc0b8bac7809

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4da532d6a88afd2c8f96c33c515e47a57e99509616050c97f725b2c0eb9f4c71
MD5 4e208706247dc2b3d5da089955f23b14
BLAKE2b-256 e36b6a2f198d24630b6ccba2505a7969df81c3ccdbb61d5fb9d39d51774dfb72

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f9a63d87bf807e55ed16ddcff45975b321d93d78f15f51eb3939f8c1e6263f3a
MD5 275c6c22efc99b70a43181420e73d8db
BLAKE2b-256 5d7327c8f9e45bbc4752282121cea5cf6f1ef5ad5d0aa6418641bc43d667bb9a

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7a070d2df7789a1d4a02dc095cbdd71cac4d3f8df0cf3addffe2075a5429dffc
MD5 c0b7ff369443cb24f8c67477b70ccbd3
BLAKE2b-256 33372c3e6e652a9a7e679a8931c85847c48f0dd39fc617faaec9fa1f9e8f457e

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6583d7c917ed515378bdbcf92d0826dca2d5c4deae31dc79cf6088efb65e25ab
MD5 2cd69000082c19f1e1a2a863e5a6b428
BLAKE2b-256 6051b51f4e79769f1cefb7b232cd4f96ddd36c924ecd0acafbcdc81349fb2bf1

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 947a8cd496832e467b0dd6227ea4ff1477201832991df83292c2230acc6ee4f8
MD5 5f66f4c1403dde513de8fa506fc61f36
BLAKE2b-256 e2b9c36c9538f420a21a67e713ebe22401c253acd84bf96eb24910a974010e63

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 52822bad93f6021845d6f43bb478ba6b19423336c91ebde4a53d63d5eab5559f
MD5 b161edac4f237a58c59f85bbfd77ad37
BLAKE2b-256 c208efe0406ee0503fbb68ac47a0b155665efc1c8460f42e5a1e550ffe09afff

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4938f6f61afe901a0cde33eae8be55fbd0434648a559cb0dffc8c76882f1560d
MD5 dc17fdedb9fe1a5e426273c95dfa6d80
BLAKE2b-256 7f5a3c4deb424ae0f90b18465856fefe7aca84fbe10b8af65ad3a16921e6bc67

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 31b97d710ac5a69f01b3ac4b33684a1e2f6d47e816aa41abb21fa8491388813b
MD5 845e81305fd0ac019ee9a7513705d463
BLAKE2b-256 06fe6493d101e46d0ed1d6d67c7ad784bbd910beb7069f72d333155c0ff4934d

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 32ae95808008009166f8e6b34d47e10c34db42537a643c78e7255493cc1449e3
MD5 3f80822446ae8aeb446b8e0810c37cae
BLAKE2b-256 579bf3390db2e63502d7e4f27193117187cffb564f4f0eb5ba5cfe3242173a15

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b7bf641e9dfe23618d7616b8454d22fe2175aa237d2876c47da0651bf88e7fe6
MD5 a7f965096157f8e0c3ac949a3bc8fe09
BLAKE2b-256 d5b3e8d18b9736dee589039dd14b2261b240e9489580ca04d6395f985dccb87d

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp39-cp39-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 f8c62c3c725d2fa55370164930b03dfa8dd19789f56b2de67d98f0d41004996a
MD5 4ea7f8e42a46c8c2384a5bbe946064f1
BLAKE2b-256 3ff5248879b381bc263283d6b1a0ca1c604c85e81ea23e6f0d140e7554081ec6

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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.7.8-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for logosdb-0.7.8-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 05209c74d1305aaf86fed47807d6922ac6ce074ab0437ff67f5dc9d4051d7060
MD5 37fce8d7f82ad39474dab972e30beb31
BLAKE2b-256 9ee63733d52124dbef740bac1cfe3d7d43303a3295399e8a075901d5c29ec10e

See more details on using hashes here.

Provenance

The following attestation bundles were made for logosdb-0.7.8-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