Skip to main content

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

Project description

image

CI Python PyPI Python versions

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

Authors: Jose (@jose-compu)

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

Features

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

Documentation

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

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

Guide to header files:

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

Limitations

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

Roadmap

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

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

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

Milestones → issues

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

SHIPPED 0.9.0 — minor — throughput and scale

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

SHIPPED 0.10.0 — minor — search and metadata

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

SHIPPED 0.11.0 — minor — multi-tenancy and tooling

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

0.12.0 — minor — integrations

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

0.13.0 — minor — platform

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

1.0.0 — stable release tag

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

Path to 1.0.0

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

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

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

Getting the Source

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

Building

This project supports CMake out of the box.

Quick start:

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

This builds:

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

Usage (C API)

#include <logosdb/logosdb.h>

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

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

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

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

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

Search with timestamp range filter

#include <logosdb/logosdb.h>

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

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

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

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

Using different distance metrics

#include <logosdb/logosdb.h>

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

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

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

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

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

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

logosdb_close(db);

Usage (C++ wrapper)

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

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

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

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

C++: Search with timestamp filter

#include <logosdb/logosdb.h>

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

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

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

C++: Using cosine or L2 distance

#include <logosdb/logosdb.h>

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

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

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

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

Python

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

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

pip install logosdb

Or build from source in a clone:

pip install .

Usage:

import logosdb
from sentence_transformers import SentenceTransformer

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

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

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

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

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

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

Python: Using cosine distance (no manual normalization needed)

import numpy as np
import logosdb

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

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

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

Python: Batch ingest and streaming NDJSON (0.9.0)

import numpy as np
import logosdb

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

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

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

Run the Python tests and examples:

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

python examples/python/basic_usage.py

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

Memory-Efficient On-Prem RAG

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

RAM Model

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

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

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

Quick RAG Example

import numpy as np
import logosdb
from sentence_transformers import SentenceTransformer

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

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

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

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

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

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

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

Run the memory-efficient RAG example:

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

Python: LlamaIndex VectorStore

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

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

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

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

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

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

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

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

CLI

# Database info
logosdb-cli info /tmp/mydb

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

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

Node.js

MCP Server — Claude Code integration

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

Claude Code: complete recipe

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

1. Prerequisites

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

2. Install the server (pick one)

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

npm install

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

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

npm install logosdb-mcp-server

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

3. Register the MCP server in Claude Code

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

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

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

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

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

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

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

4. Path rules for logosdb_index_file

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

5. Reload Claude Code and verify

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

6. Index, search, delete

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

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

7. Optional: agent instructions

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

8. Troubleshooting

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

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

Claude Code slash commands

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

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

Agent instructions (CLAUDE.md and similar)

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

## LogosDB (semantic memory via MCP)

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

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

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

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

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

Environment variables

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

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

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

Available tools

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

Installing locally (without npx)

Option A — global CLI on your machine

npm install -g logosdb-mcp-server

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

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

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

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

From your app repo:

npm install logosdb-mcp-server

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

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

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

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

Option C — development build from a LogosDB clone

cd mcp && npm install && npm run build

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

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

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

Performance

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

Setup

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

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

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

Write performance

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

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

Search performance

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

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

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

Benchmark vs ChromaDB

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

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

Repository contents

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

Contributing

We welcome contributions. See CONTRIBUTING.md for:

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

Please review our Code of Conduct and Security Policy.

License

MIT — see LICENSE for the full text.

Project details


Download files

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

Source Distribution

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

Uploaded Source

Built Distributions

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

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

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.10macOS 11.0+ x86-64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

logosdb-0.12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (456.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.9macOS 11.0+ x86-64

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

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for logosdb-0.12.0.tar.gz
Algorithm Hash digest
SHA256 1854302ee2a6e1c62f93b9cd7a2db1c6f05942eec2a7c66f0a1f7a3e214a46de
MD5 165ecf1334650198d2dc8700d8ce8cc4
BLAKE2b-256 296c2edd9a67b44df860cedfd25ae3640cd5e985c4e675d28d705443df828e42

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c479ab7ed4f5735c5550ccb2d6f2db09737c03b13948b11b87d11ae2ddd23e5e
MD5 83900dea60dd6ce35ae5018864400949
BLAKE2b-256 8fbd46c26d661c4f2bda7aca8912c51d70b5263f5085c004294c0621a06e189d

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 38c639abbd01b43280bb90627d52ad9c2acc4ddaf1eda69fc4efe56ca25e8917
MD5 6a6928b0bae856955867f4e3fa84bc15
BLAKE2b-256 7780b5255f45870da338b949a06204437f26ce25f2c72e4520ad8e286a8e05a8

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 beb62b25abb1192235ee94bd65c955300da5450bb96d4ccfe2db0809731dceef
MD5 fc67cc016c21f378e2b4e5dd3bb5a6a2
BLAKE2b-256 d2d21837e357ad4bccca26864f71628f8db13431a847e6321c9da14a4367b6d6

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2d344a846c7eabad13e43afda5da951c1f9b1a78c5e8fe081e63328bf8e5b72b
MD5 3aa9eaf5e50021766b9ffc790b301b01
BLAKE2b-256 3c75f9e2e74442969932fb5a377222408b2f9594809524b5d4499ce2c14672a5

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 28f5ababb7f87f60b1d1072f96f67c1b7aa4ec2b24ed73c4923c9ec735a3c751
MD5 bfad2478ce6d3e6823cf9df1cb2218a8
BLAKE2b-256 7b189054018bcac5dfcf833897b4d3e0f5d68af31174ff66cea061c130c0905d

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5893a87e95059a86a434b11a17cf9d17629eab548b44d0ff26b4d9f3fa202a98
MD5 b5f74a6f4204c82fd8230f2b2fdba646
BLAKE2b-256 5e9437bbdc635a9bdbcc81e9dbd10f497cd67e0d785c8251eae011fda4dbc3a7

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 859d139400f2ea6b5724c0bb57113d59c174cc97c382c244ef36f14b1eba9adf
MD5 2c0a2b6bcff2ee9795440787c6b0462c
BLAKE2b-256 610c21cd2eeea712fc8e7b5050d9e96347a5138d4d85ec9d3b0677d61ee3adb1

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4ee3b0076d73177f90f14620e34dbc961a1cba10f4f60d61d234925b83fbdbc0
MD5 913b85ac7ffe2455af00a4548ac8e9c2
BLAKE2b-256 e3dcc59edd6a025cefa5d37921ae1947c3e5439c5a5989ac19b13162d90b30dd

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4edee070d4f67bf4c2835c0864a6563d7362af4085dd7472dcf5b125948add15
MD5 174f8f1f78e2a1696b846b01fdd94451
BLAKE2b-256 383906111c7c516a982ad1f689c0321347747b020e6064586642b2d1af3432db

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a3cbbf536909817fb0b806ebbf710ad17abb4bc197f8b56669ee2f1449a17627
MD5 7708c6773ebe22f4821b86377d575538
BLAKE2b-256 b0163ba1833c39519883b13df48aa38cfd9cccd58385b69d20b049e535f0c4d8

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 3dad4387d8c4bf78cf099fe069a488d716c627edd5ce257039084fbc863d67a9
MD5 c290b9d878c90d478d4ac498ee17a635
BLAKE2b-256 2af21c07ee20e61d6b95bb511df9208bd5a63dbb5dd8f7a5dcc65dbc1bd0899e

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 79581c0ad61b0fdfad8497f0deaeb2a45e2298ff3282d87f2cd8cac2f3506be8
MD5 53302e06e18778327fee2328a60bdb03
BLAKE2b-256 af027c5197a39a9771592d85c6508343a7c186c39bbe676898d40754349dfd91

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fdb83a60874c120dd4456a710bd96fe478305a215233ecb353b1f20f17c1c03b
MD5 39760965668193f2b38404d71c19f530
BLAKE2b-256 6bc6f4f807f0fee2f3c9f30b5218a2e48f2bb5a44aa1a7bb76e8f0be28783558

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 790be2822b6a616bf46a3826f02f94726f1152f8edff565cb148bc51f7bf7765
MD5 b5644062905b4c03f90e314e300f8451
BLAKE2b-256 e58a72f698a3ead21f2fc6f8ac1c1a3aa39d077666b87fa4aeb5d6b4a4470e87

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a3bba78041330dbb04cc3be8470224a0ccd84fbf382f75d13fe22c1d8ff4f50a
MD5 9e7ae281333f8b3333217f44be72ace5
BLAKE2b-256 80d606b387d65dfcbff76df9a058f406174612f5abd8ecc88abc925655663db6

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2fe5570e9728df20454755d1e5215c6324cda79f9b57bc50afc81ec14c806e55
MD5 15b263a28664f70c557e2bee57abd5d8
BLAKE2b-256 6f0e6e4d22c85b24111628c0c8eeac2c942cc7ccf1da3ef5e20d5967a5d89df6

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 7f6c468c609b2510e2619fcb969149785e0a06672fbc822fbd32986e41d45c10
MD5 0dc7690a9b6f6ca92be2bb2d05eb2093
BLAKE2b-256 5ef48c2e96afe3d088d61d3d2b9c22cba29a53a9ffe5341e1c9f5208b2871e9c

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4606f8bf72185c6b6903f7278d5d0d05eb04e3955923064c6723a69221b2d0e6
MD5 3f125b83a0a3c530170a4ebf7cff4a77
BLAKE2b-256 a5ea976e1d1ccdbd68cf5d6df8a7d2d6fbbdb99a15d91851142cbcb550b97e6f

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e2065b5976963c0cc6f8191c3c224b13bb21fa45b11d78baa2f045999468eded
MD5 4e011388abfd24c43125108f29a0a7d8
BLAKE2b-256 49b1306b52e50aed1876f89ad1ff8205878069b0516e7dc5d71a706b04d12c66

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 198c02fcdfbc09fc0e7469667ec35d6871a95456e5f2f4deaa06897dec755884
MD5 0da0ba9065580401caddcee43c12a69a
BLAKE2b-256 56c5eec4ec8f131a825ff6f096b6c32b52f14c2d173dfae395a94b305abd8ed2

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a6eeff63f86989ae662aabaf6e922616b52baf71fb400d1869a677ab09471f96
MD5 9be4f1e83d9d5fda433c6b334a5d9022
BLAKE2b-256 808c2d6284c26febc429f6d405b5a1eed5dfeeb05aad76a308b06fa05d035e2d

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 12c17961723e7cb0ba1ad528391cf43837ce62435bb71d4ba0edc9a6da853781
MD5 9c4eddcf84093fd8255c0a08ba1833eb
BLAKE2b-256 2b268c7bf731b219cc1c92b32f43e40297853868666859eaed904766c7f10b97

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 6411f5ea344eec8ce2cf3ba02397c9f987db4cedac5f2f26fb543c345eef6671
MD5 667b9ea32c45af3743dc48555b1c334c
BLAKE2b-256 8cbbd4d07b6fee00bc9a0461b92e8d70f3c9ed83364c7d1d7335ed65303c8fac

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 83fb8b3c89a51515baa0773a1f1f48f91c91257a05da64ebc1b9adabd3f20250
MD5 395d20547f55c0b425009ead2f0d3166
BLAKE2b-256 09ebe979116c8d0e08f573e86e85be167c58b2cd599847b2492fe5e56cb6ac1e

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b535aae8ed4cd54efe0408590654d2420e7c6248a0a4e2979501b822597d2a1d
MD5 557cb98866be70781d1f40f6086e2ff6
BLAKE2b-256 c4e267f52969f94b3eec68398a12c0871848e782b786c78d630bb758a6d88fb8

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5aeafcfa8ee9204477b9926ef13a736c56854f72cb436b052a224c898a6b2fb0
MD5 64599bfe5ecd3ccd81d61f7125d7a96c
BLAKE2b-256 f38623d08b73e4eea80bd1419152d1a8f5cf7ed53a6c773acf88ff418253cc5d

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c703dcc8cc9fdf66c0f2ba353401fc84d4ec63e9bde40341ddae0a5d1cc6c42b
MD5 468d42a403aa790e1631b82d79f466bc
BLAKE2b-256 228f8a5a075cf05eb75fa625ade2b0f37d405caba702d021544da74e8f3d8ec6

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b1a00da416e295a21120321645eb44954c8289e11ede81598258828d025f167b
MD5 4efcfff8f04ffd0b93205d2159dc9910
BLAKE2b-256 d318245851b737633c42ad235b0f3e44e3af9710f36c1107ec4917c84f588e71

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 01501a55895984f0a82726ea8ca8326fbb0ee126ed5e935eac8b1272b0efa90f
MD5 063e9c6b67e65621a186750ec0c39740
BLAKE2b-256 3f94876c6077aa73476cca5369b4511a11930e23eca9d55a5a182160c8740b49

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

File details

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

File metadata

File hashes

Hashes for logosdb-0.12.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3f7ca8e9c4f31874e569839f47951bc376593b25700bc9b5ccd05779dae2506e
MD5 3fc29c67760134a82e95a2cdd663483d
BLAKE2b-256 0c8b1c157ca22d0143747bd5c64ece84ecdbf879c890ec58676b18319c1dc812

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on jose-compu/logosdb

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page