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) SHIPPED

  • #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) SHIPPED

  • #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 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)
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   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.7.12.tar.gz (3.0 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.12-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.12-cp313-cp313-musllinux_1_2_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

logosdb-0.7.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (437.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

logosdb-0.7.12-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (416.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

logosdb-0.7.12-cp313-cp313-macosx_11_0_x86_64.whl (257.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ x86-64

logosdb-0.7.12-cp313-cp313-macosx_11_0_arm64.whl (234.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

logosdb-0.7.12-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.12-cp312-cp312-musllinux_1_2_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

logosdb-0.7.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (437.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

logosdb-0.7.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (416.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

logosdb-0.7.12-cp312-cp312-macosx_11_0_x86_64.whl (257.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

logosdb-0.7.12-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.12-cp311-cp311-musllinux_1_2_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

logosdb-0.7.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (436.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

logosdb-0.7.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (415.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

logosdb-0.7.12-cp311-cp311-macosx_11_0_x86_64.whl (255.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

logosdb-0.7.12-cp311-cp311-macosx_11_0_arm64.whl (232.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

logosdb-0.7.12-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.12-cp310-cp310-musllinux_1_2_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

logosdb-0.7.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (435.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

logosdb-0.7.12-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (413.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

logosdb-0.7.12-cp310-cp310-macosx_11_0_x86_64.whl (254.4 kB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

logosdb-0.7.12-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.12-cp39-cp39-musllinux_1_2_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

logosdb-0.7.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (435.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

logosdb-0.7.12-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (413.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

logosdb-0.7.12-cp39-cp39-macosx_11_0_x86_64.whl (254.5 kB view details)

Uploaded CPython 3.9macOS 11.0+ x86-64

logosdb-0.7.12-cp39-cp39-macosx_11_0_arm64.whl (231.6 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: logosdb-0.7.12.tar.gz
  • Upload date:
  • Size: 3.0 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.12.tar.gz
Algorithm Hash digest
SHA256 baeea64fefd84913c89e4ad04a5859d7b6e30631bb2796c125898d8e45231897
MD5 273ef18fd9ec575090244c8a713773c1
BLAKE2b-256 103d5c682979595853ff38034f234f0b3cd2b439b45ea8f2f2d0c411d9163daa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8bcdfadd440ac7c5c9eeb404900fcb1fba16bec03bba0e586fc92de3cb5a933e
MD5 355a86e2fd2b797a5314ee57f490c03c
BLAKE2b-256 a9aa3982a5fb3648338495a48d0d56d9de5997bb2ab62b4b9a53cc6c99e3463d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9f6790ab40eebc538a5757e7fb1455b21b4266c7cbf861d6507320a260d25dc2
MD5 e74991954b8b1173b665c93df80d150a
BLAKE2b-256 5bfa07b617a1801ae11f8b23f324541bb2dc6a1c757ec91a104ee0f8a467296c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c7ce014ecc3977ba4c2be6ff07d669344bc51f8430e2d67812e19d4a22e4514c
MD5 32267ac0701441923de9f8b893e2f50f
BLAKE2b-256 fcb84e98d898cbf3bb66bc5652e7614f63bae54ff6d8dd60affc8b3525c69d77

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9a013b566c198935b782d1745225cfa97f89695fd60ab4d8e6fec5537060b210
MD5 a1114688a33578e71e15cdee159ef2de
BLAKE2b-256 77fb05106e338a2d9535586000528ecca35d87e8658fc03618f201fdc2309d06

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 fc725d1728e036ae3607e62f3a725abd87f64a2ee9e3cbec8c828e8e480f0dd8
MD5 2394b968022f96f438451be1269483e2
BLAKE2b-256 6cd5b67c5f9094dc7d5df1e950752a18ee3c69d3635fe33290e2b5f4437f8a0f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4339cebcdb4daa3ebbe63bd2ccad44a5161d973526f4cbb01151229c8b8393e3
MD5 71ef4c22b24c0db7e74733a44a8dc66b
BLAKE2b-256 ffc291abed71accdef52e3395d0b80f606d2b5c49bb1b672f9619e2b3817b255

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 878b455895c7ae1f93bb430d5a9893bd7b887f257abf7fdeed076c504fec857f
MD5 809267fe1dd83709ad3e81b7525e7325
BLAKE2b-256 54d457a29a5bcf6c7b88b09b3ee10b3754d507894d8e46b90e794ad74abfd6c8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 67cc8010884cc3be5b010a8c13406c382b801f433d9c61cb1475ee425a910cdf
MD5 68ca1ad5565379a40aa40852604c0d61
BLAKE2b-256 1049188b92194a59a90c07f99a542733343137e5be9453fda4d62f25ebb6edd4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b205be28dd1750c18880062f7e9050deac564f9161e027f4c3c161f78a1e8890
MD5 dbf92dae9a79bfa0136be366aeda3e07
BLAKE2b-256 dada9ef52deea09015158797cb9ab583ccb8950ce45253a2e0d27f0796af9baa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3e714351fb6a13a3d49b8c21e38a02952853eab39350f7ebcbdf4f9c679cd28a
MD5 5ffeb0c000bc77623eb106380eb2ed5f
BLAKE2b-256 9bd96fe3c0e0a684c998a943eb99bbda009cc11cecdf1cc6e7cd6cbb48d97425

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 faeef170127b0594eefae883422687309319c905e7ba4343bfa77eeaa071822c
MD5 348c6137c4290585826666bb976e1101
BLAKE2b-256 26b785e84abc5eb21786b3e45d65d65a67d729b5dbb7c767bc53ba71114f4473

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bcac4ffbb604147ffe79c9dea3337a5edc10e41d40d8ee1ac37f2186b7e7ffdb
MD5 80f6d314e4e5f378981ce0dd0872c158
BLAKE2b-256 27d8ed08c77c59eba57b9b849958a18e9fcc798361149e19f1da0eeb2e03eaa6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4fd9be002f1851580439450f21d0784ca8449ec7e7143fa9f5e326270b21775d
MD5 3e6f263ee5fc07ca17a58baaf2d07f3c
BLAKE2b-256 8c47df2a37b3bf3644be383bda902208b4f076ffd70e01227398b03876161902

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b11dd1372897203f0c52fb83650df8ebcf7052f6731d88de51302184e59f9f2f
MD5 c87a69eb8d7903f85cf0b0e0a635ae69
BLAKE2b-256 2d5115ea0cb420c2ac416c3d610a8a90ef3ca1b1245f9ffb65ce52b70a567f23

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 abf18caa1b4d482198bda0a4bb5c6cdf990029b98315212e754a32af65a2cb3e
MD5 b447bcaaea0c9d6ebe832cef85808e86
BLAKE2b-256 1925587c1a03a4337d5ba4afc7361689500ab5c331e8953cc88fedea7f60852b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 de3e082bba2ea3c089714a26816428bddac73776b0dfbe681e8e08c04d133062
MD5 dcd9c77b0836b81829d82e3bf4a9d315
BLAKE2b-256 3d5b0da22f46a0783194997b325dae49f062697e3de42d618267fef9408fa899

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 41386d07799512ce6558cdaef81374093fe456ebc0d3c3ec15afbebf167bfae3
MD5 da98462c5f20590f09d92be0f47b9413
BLAKE2b-256 e439c19c7fdb8c4a3c17fcb42701601b320f2e0d89bd65823b65134c863d1a6f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3c2d8cb222fe30905bed5d0f0c105d378b18aa334cd4ef4acb0a9ba43ec97ac6
MD5 220019b437e3215143cc95a4740aed6c
BLAKE2b-256 abf71e18f333d61f827f05b9661a8f9122d139596a56c45c036eea2c24a3a6c5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3779c6efd54ad5714751d14198d520f06ac37e02a3c3911ead16d95f68e16138
MD5 7e0353d4a64b78a1022fdef59c6f2d48
BLAKE2b-256 d71c5dfb410da2dafa0007724b4f3e9efc95b8e6efce79ac132e1b686e703dfe

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7e7b69a6d5051ed4f849e08b9ee65f98f0bb9c0db120ea40f5d18c7d1492e580
MD5 9a9433fa95226ef8ace7cf983e048a23
BLAKE2b-256 7e8c5099c57393d80477ab0afde6a76f64b90b3cf445baa2f12dac1e1f6313b4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cb53c6f94a765bd6ec3ac4346768485d1a97d712fdcda9224fedbb8932279802
MD5 0c2185a6015308f14c8d2b6c02f82de5
BLAKE2b-256 03e96e479db03cd1fe02066eff0e0f0fe3252f601ac1d67f8dea6780b89c393a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e60df2d36d9fb22a3743028dac7fe34e9f4b40b41aa8649926b90ded22d282e1
MD5 8e707b56627c8ce8ff2e6e2c86e7cb01
BLAKE2b-256 5950ca977f0afdcb09a2bf92fb0f769166aeae0eea0ff48944927811fdb634c5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 f8129e801d53cd2a13fc9486dabb9400e7175c6e8a87a6a22ecd08f31fb33eb1
MD5 205d49146968061bea98e79e949177e1
BLAKE2b-256 bf8b804947cf656e69b64df1775e7601c45cc4bdc39e2657d90f2bbd19d72dde

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d08cacc7fc5b8f90d94ec00c146689ea2c57a4b9a184cb06935ee8f71bcc643f
MD5 77c14a914ed9b5119b0782fc23489b94
BLAKE2b-256 a5714a12cc22c9234815355ffb172d5c97a6dd406aca37d4cd8f8cdb16ab9f27

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2af993bc90d1f89c11cc95baf1b9137f94ee864d389ea47e47e55b1d469c89c0
MD5 430bff0b37d4abd70188fe9b78493f83
BLAKE2b-256 f2cc3396ef5f80e2a1dc1d17e84b39fe96b449a41b0daf293a51fa988a8578e9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 34c76e805bfad9df332b97929eb0bc35ede01d7002d6c4c491d5eecbf5f3c6f0
MD5 5ea0e3b572c98f1cd7a84d3f26e35ae3
BLAKE2b-256 8a92efc32d580a7fa909bfa2b453da62c2d1d7e28dabcf5031e6692d62604cca

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 72e7909499193dc340defef6610fbb9ab39eb41a6772b54d10838c6cf39c23aa
MD5 0ebb24857a2bc368aa5dda265395e05d
BLAKE2b-256 03addbb73f0873c2a1fe69d87eb884341461ab4a7b76efaf831afe14b6303d05

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a8b5a1bad299458f76c5c8672563beedb30cd85fee4a650be7718debb6ac1523
MD5 c9db01aae71874a2c2dea13295f47a47
BLAKE2b-256 7f3171e08e73191c4d02a94ac91bf3ab481dff03e281aa7614facf4d27f3209b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 68fba587cc33285f509c0f6c6c8014dc02757c7995787a6ba2d1e279aa425bbd
MD5 e158fa4ef0df58f9f73758cf249a55f4
BLAKE2b-256 4cfd211315311a78ef0ee06f617bf73167d1d22004d68ccbff8645f498a69a1f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for logosdb-0.7.12-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 593f95f7708f4bc5f46182872beed4054a93f05e9bc569f0ade5f50eda3aafe7
MD5 5481bd272c1297dc8bdde5a40a63adc1
BLAKE2b-256 af080ab51d66079c3172ca0652ca73a027e52056a23ad6a7df7bdedf911f7bb9

See more details on using hashes here.

Provenance

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