Skip to main content

A Cognitive Memory Engine for Persistent AI Systems

Project description

YantrikDB — A Cognitive Memory Engine for Persistent AI Systems

The memory engine for AI that actually knows you.

PyPI Crates.io License: AGPL-3.0

Get Started in 60 Seconds

For AI agents (MCP — works with Claude, Cursor, Windsurf, Copilot)

pip install yantrikdb-mcp

Add to your MCP client config:

{
  "mcpServers": {
    "yantrikdb": {
      "command": "yantrikdb-mcp"
    }
  }
}

That's it. The agent auto-recalls context, auto-remembers decisions, and auto-detects contradictions — no prompting needed. See yantrikdb-mcp for full docs.

As a Python library

pip install yantrikdb

The engine ships a default embedder (potion-base-2M, ~7 MB, distilled from BGE-base-en-v1.5) — record_text() / recall_text() work out of the box. No sentence-transformers install. No first-run model download. No ONNX runtime. Just one pip install.

import yantrikdb

# Default: bundled embedder, dim=64. Just works.
db = yantrikdb.YantrikDB.with_default("memory.db")

db.record("Alice is the engineering lead", importance=0.8, domain="people")
db.record("Project deadline is March 30", importance=0.9, domain="work")
db.record("User prefers dark mode", importance=0.6, domain="preference")

results = db.recall("who leads the team?", top_k=3)
# → [{"text": "Alice is the engineering lead", "score": 1.0}, ...]

db.relate("Alice", "Engineering", "leads")
db.get_edges("Alice")

db.think()  # consolidate, detect conflicts, mine patterns

db.close()

Want higher-quality embeddings?

Three opt-in upgrade paths, in increasing weight:

# 1. Larger bundled variant — downloads on first call, caches under
#    your user data dir. Self-hosted from yantrikos/yantrikdb-models;
#    no HuggingFace dependency, no rate limits.
db = yantrikdb.YantrikDB("memory.db", embedding_dim=256)
db.set_embedder_named("potion-base-8M")   # ~28 MB, ~92% MiniLM
# or:  db.set_embedder_named("potion-base-32M")  # ~121 MB, ~95% MiniLM

# 2. Bring your own embedder (sentence-transformers, fastembed, custom).
from sentence_transformers import SentenceTransformer
db = yantrikdb.YantrikDB("memory.db", embedding_dim=384)
db.set_embedder(SentenceTransformer("all-MiniLM-L6-v2"))

# 3. Slim build (no bundled embedder, must set_embedder yourself).
#    For deployments where the ~7 MB bundle is intolerable.
#    Rust:  yantrikdb = { version = "0.7", default-features = false }
Path Quality vs MiniLM Size on disk Install network
Bundled default (with_default) ~89% ~7 MB (bundled) none
set_embedder_named("potion-base-8M") ~92% ~28 MB (cached) first call only
set_embedder_named("potion-base-32M") ~95% ~121 MB (cached) first call only
set_embedder(MiniLM) 100% (baseline) ~80 MB sentence-transformers' own download

As a Rust crate

[dependencies]
yantrikdb = "0.7"

# Want set_embedder_named() for runtime model upgrades?
# yantrikdb = { version = "0.7", features = ["embedder-download"] }

# Slim build (no bundled embedder, no network code path):
# yantrikdb = { version = "0.7", default-features = false }

The Problem

Current AI memory is:

Store everything → Embed → Retrieve top-k → Inject into context → Hope it helps.

That's not memory. That's a search engine with extra steps.

Real memory is hierarchical, compressed, contextual, self-updating, emotionally weighted, time-aware, and predictive. YantrikDB is built for that.

Why Not Existing Solutions?

Solution What it does What it lacks
Vector DBs (Pinecone, Weaviate) Nearest-neighbor lookup No decay, no causality, no self-organization
Knowledge Graphs (Neo4j) Structured relations Poor for fuzzy memory, not adaptive
Memory Frameworks (LangChain, Mem0) Retrieval wrappers Not a memory architecture — just middleware
File-based (CLAUDE.md, memory files) Dump everything into context O(n) token cost, no relevance filtering

Benchmark: Selective Recall vs. File-Based Memory

Memories File-Based YantrikDB Token Savings Precision
100 1,770 tokens 69 tokens 96% 66%
500 9,807 tokens 72 tokens 99.3% 77%
1,000 19,988 tokens 72 tokens 99.6% 84%
5,000 101,739 tokens 53 tokens 99.9% 88%

At 500 memories, file-based exceeds 32K context windows. At 5,000, it doesn't fit in any context window — not even 200K. YantrikDB stays at ~70 tokens per query. Precision improves with more data — the opposite of context stuffing.

Architecture

Design Principles

  • Embedded, not client-server — single file, no server process (like SQLite)
  • Local-first, sync-native — works offline, syncs when connected
  • Cognitive operations, not SQLrecord(), recall(), relate(), not SELECT
  • Living system, not passive store — does work between conversations
  • Thread-safeSend + Sync with internal Mutex/RwLock, safe for concurrent access

Five Indexes, One Engine

┌──────────────────────────────────────────────────────┐
│                   YantrikDB Engine                    │
│                                                      │
│  ┌──────────┬──────────┬──────────┬──────────┐       │
│  │  Vector  │  Graph   │ Temporal │  Decay   │       │
│  │  (HNSW)  │(Entities)│ (Events) │  (Heap)  │       │
│  └──────────┴──────────┴──────────┴──────────┘       │
│  ┌──────────┐                                        │
│  │ Key-Value│  WAL + Replication Log (CRDT)          │
│  └──────────┘                                        │
└──────────────────────────────────────────────────────┘
  1. Vector Index (HNSW) — semantic similarity search across memories
  2. Graph Index — entity relationships, profile aggregation, bridge detection
  3. Temporal Index — time-aware queries ("what happened Tuesday", "upcoming deadlines")
  4. Decay Heap — importance scores that degrade over time, like human memory
  5. Key-Value Store — fast facts, session state, scoring weights

Decoupled Write Path (v0.6.6+)

The vector index is structured as a two-tier LSM: a small mutable delta and an immutable HNSW cold tier swapped atomically via ArcSwap. Foreground writes only touch the delta (brief lock, O(1) push); HNSW work amortizes on a dedicated compactor thread. This is what eliminated the production wedge where sustained writes starved readers — see CONCURRENCY.md and docs/decoupled_write_path_rfc.md.

flowchart LR
    subgraph CLIENT["Caller"]
        C1["record / record_with_rid"]
        C2["recall / recall_with_seq"]
    end

    subgraph FG["Foreground — P1, brief locks only"]
        F1["assign_seq<br/>vec_seq.fetch_add<br/>(or fetch_max for cluster seq)"]
        F2["DeltaIndex.append<br/>brief RwLock&lt;Vec&gt; push"]
        F3["bump_visible_seq<br/>DashMap + AtomicU64<br/>(lock-free)"]
        F4["log_op → SQLite WAL"]
    end

    subgraph IDX["DeltaIndex (per engine)"]
        D1[("delta<br/>RwLock&lt;Vec&lt;DeltaEntry&gt;&gt;<br/>cap = delta_max (256)")]
        D2[("cold<br/>ArcSwap&lt;HnswIndex&gt;<br/>lock-free read")]
    end

    subgraph BG["Background — P3, dedicated threads"]
        B1["Compactor (1s tick)<br/>fires when delta past half-cap<br/>OR oldest entry > max_dirty_age"]
        B2["Materializer pool<br/>N = cores / 2<br/>drains pending oplog ops"]
    end

    subgraph STORE["SQLite (WAL mode, single file)"]
        S1["memories"]
        S2["oplog"]
        S3["entity_edges, sessions, ..."]
    end

    C1 --> F1
    F1 --> F2
    F2 --> D1
    F1 --> F3
    F1 --> F4
    F4 --> S2

    C2 -.->|"optional<br/>wait_for_visible_seq"| F3
    C2 --> D1
    C2 --> D2

    B1 -->|"seal + clone + ArcSwap.store"| D1
    B1 --> D2
    B2 --> S2
    B2 --> S1
    B2 --> S3

The structural invariant. Foreground (P1) and background (P3) do not share a lock primitive that holds for non-O(1) work. The cold tier is read lock-free via ArcSwap; the delta's RwLock is held for the O(1) push only. This is what makes "no single background task can wedge reads, writes, or recovery" enforceable — see CONCURRENCY.md Rules 2 and 3 for the names and failure modes if violated.

Cluster Mode (RFC 010 + Phase 6 RYW)

For multi-node deployments, yantrikdb-server wraps the engine with openraft for leader-elected replication. The four cluster-mutation primitives take the openraft commit-log index as their seq, so all nodes agree on a single global monotonic sequence — read-your-writes works across the cluster, not just within a node.

flowchart LR
    L["Leader<br/>HTTP request"]
    LR["Leader engine<br/>record_with_rid(seq=Some(log_idx))"]
    OR["openraft<br/>commit log"]
    F1["Follower 1 applier<br/>record_with_rid(seq=Some(log_idx))"]
    F2["Follower 2 applier<br/>record_with_rid(seq=Some(log_idx))"]
    R["Reader on any node<br/>recall_with_seq(min_seq=log_idx)"]

    L --> LR
    LR --> OR
    OR -->|replicate + apply| F1
    OR -->|replicate + apply| F2
    F1 -.->|"visible_seq[ns] reaches log_idx"| R
    F2 -.->|"visible_seq[ns] reaches log_idx"| R
    LR -.->|"visible_seq[ns] reaches log_idx"| R

Each record_with_rid / tombstone_with_rid / upsert_entity_edge_with_id / delete_entity_edge_with_id accepts an optional seq: Option<u64>. Single-node callers pass None and the engine allocates; cluster appliers pass Some(commit_log_index) and the engine ratchets vec_seq up to at least that value via fetch_max. After apply, visible_seq[namespace] reaches the log index, so any subsequent recall_with_seq(min_seq=N) blocks just long enough for the local node to have applied through index N — and no longer.

Memory Types (Tulving's Taxonomy)

Type What it stores Example
Semantic Facts, knowledge "User is a software engineer at Meta"
Episodic Events with context "Had a rough day at work on Feb 20"
Procedural Strategies, what worked "Deploy with blue-green, not rolling update"

All memories carry importance, valence (emotional tone), domain, source, certainty, and timestamps — used in a multi-signal scoring function that goes far beyond cosine similarity.

Key Capabilities

Relevance-Conditioned Scoring

Not just vector similarity. Every recall combines:

  • Semantic similarity (HNSW) — what's topically related
  • Temporal decay — recent memories score higher
  • Importance weighting — critical decisions beat trivia
  • Graph proximity — entity relationships boost connected memories
  • Retrieval feedback — learns from past recall quality

Weights are tuned automatically from usage patterns.

Conflict Detection & Resolution

When memories contradict, YantrikDB doesn't guess — it creates a conflict segment:

"works at Google" (recorded Jan 15) vs. "works at Meta" (recorded Mar 1)
→ Conflict: identity_fact, priority: high, strategy: ask_user

Resolution is conversational: the AI asks naturally, not programmatically.

Semantic Consolidation

After many conversations, memories pile up. think() runs:

  1. Consolidation — merge similar memories, extract patterns
  2. Conflict scan — find contradictions across the knowledge base
  3. Pattern mining — cross-domain discovery ("work stress correlates with health entries")
  4. Trigger evaluation — proactive insights worth surfacing

Proactive Triggers

The engine generates triggers when it detects something worth reaching out about:

  • Memory conflicts needing resolution
  • Approaching deadlines (temporal awareness)
  • Patterns detected across domains
  • High-importance memories about to decay
  • Goal tracking ("how's the marathon training?")

Every trigger is grounded in real memory data — not engagement farming.

Multi-Device Sync (CRDT)

Local-first with append-only replication log:

  • CRDT merging — graph edges, memories, and metadata merge without conflicts
  • Vector indexes rebuild locally — raw memories sync, each device rebuilds HNSW
  • Forget propagation — tombstones ensure forgotten memories stay forgotten
  • Conflict detection — contradictions across devices are flagged for resolution

Sessions & Temporal Awareness

sid = db.session_start("default", "claude-code")
db.record("decided to use PostgreSQL")  # auto-linked to session
db.record("Alice suggested Redis for caching")
db.session_end(sid)
# → computes: memory_count, avg_valence, topics, duration

db.stale(days=14)    # high-importance memories not accessed recently
db.upcoming(days=7)  # memories with approaching deadlines

Full API

Operation Methods
Core record, record_batch, recall, recall_with_response, recall_refine, forget, correct
Knowledge Graph relate, get_edges, search_entities, entity_profile, relationship_depth, link_memory_entity
Cognition think, get_patterns, scan_conflicts, resolve_conflict, derive_personality
Triggers get_pending_triggers, acknowledge_trigger, deliver_trigger, act_on_trigger, dismiss_trigger
Sessions session_start, session_end, session_history, active_session, session_abandon_stale
Temporal stale, upcoming
Procedural record_procedural, surface_procedural, reinforce_procedural
Lifecycle archive, hydrate, decay, evict, list_memories, stats
Sync extract_ops_since, apply_ops, get_peer_watermark, set_peer_watermark
Maintenance rebuild_vec_index, rebuild_graph_index, learned_weights

Technical Decisions

Decision Choice Rationale
Core language Rust Memory safety, no GC, ideal for embedded engines
Architecture Embedded (like SQLite) No server overhead, sub-ms reads, single-tenant
Bindings Python (PyO3), TypeScript Agent/AI layer integration
Storage Single file per user Portable, backupable, no infrastructure
Sync CRDTs + append-only log Conflict-free for most operations, deterministic
Thread safety Mutex/RwLock, Send+Sync Safe concurrent access from multiple threads
Query interface Cognitive operations API Not SQL — designed for how agents think

Ecosystem

Package What Install
yantrikdb Rust engine cargo add yantrikdb
yantrikdb Python bindings (PyO3) pip install yantrikdb
yantrikdb-mcp MCP server for AI agents pip install yantrikdb-mcp

Roadmap

  • V0 — Embedded engine, core memory model (record, recall, relate, consolidate, decay)
  • V1 — Replication log, CRDT-based sync between devices
  • V2 — Conflict resolution with human-in-the-loop
  • V3 — Proactive cognition loop, pattern detection, trigger system
  • V4 — Sessions, temporal awareness, cross-domain pattern mining, entity profiles
  • V5 — Multi-agent shared memory, federated learning across users

Worked example: Wirecard (RFC 008 substrate — with honest limits)

For nearly a decade, Wirecard's filings and EY's audit attested to €1.9B in Philippine escrow accounts. In June 2020 both banks and the central bank formally denied the accounts existed.

When the source_lineage fields are hand-populated — EY as [wirecard, ey] to capture audit dependence on Wirecard-provided documents, BSP as [bsp, bpi, bdo] to capture restatement of the commercial banks — RFC 008's discounts the dependent claims, and the contest operator's temporal split distinguishes present-tense contradictions from historical state changes. On this hand-populated data, the substrate produces useful annotations.

Honest limits (surfaced by Phase 2 empirical testing, Apr 2026):

  • On naturalistic evidence where a real agent populates the fields, the substrate's gates don't reliably fire. Cases B and C of the Phase 2 eval need an extractor/canonicalizer (not yet built) to work; Case A exposed that is mathematically incapable of flipping decisions at realistic N, regardless of coefficient tuning.
  • Current claim: structured schema for evidence provenance/temporal/conflict annotation, useful for audit and inspection. The dependence-discount operator works on curated inputs but needs replacement before it can drive decisions.
  • Not a current claim: "decision-improvement substrate for AGI-capable agents." That framing is withdrawn pending RFC 009.

See docs/showcase/wirecard.md for the full walkthrough including the Phase 2 negative result and the gold-state ablation that partitioned operator failure from extraction failure. Run the hand-populated demonstration directly:

cargo run --example showcase_wirecard

Research & Publications

📄 Skill as Memory, Not Document (May 2026)

Sarkar, P. (2026). Skill as Memory, Not Document: A Database-Native Substrate for Agent Skill Catalogs. Zenodo.

A measurement paper at 5K-skill scale: token cost vs filesystem catalogs (with the honest 1.49× ablation), retrieval latency (87.3 ms p50), and invalid-skill admission (0% YantrikDB vs 97% document-only baseline). Reproducible scripts + raw CSVs at yantrikdb-server/benchmarks/skill_recall/. Companion blog: yantrikdb.com/papers/skill-substrate.

Earlier work

Author

Pranab SarkarORCID · LinkedIn · developer@pranab.co.in

License

AGPL-3.0. See LICENSE for the full text.

The MCP server is MIT-licensed — using the engine via the MCP server does not trigger AGPL obligations on your code.

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

yantrikdb-0.7.10.tar.gz (8.2 MB view details)

Uploaded Source

Built Distributions

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

yantrikdb-0.7.10-cp313-cp313-win_amd64.whl (12.3 MB view details)

Uploaded CPython 3.13Windows x86-64

yantrikdb-0.7.10-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

yantrikdb-0.7.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (13.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

yantrikdb-0.7.10-cp313-cp313-macosx_11_0_arm64.whl (12.7 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

yantrikdb-0.7.10-cp313-cp313-macosx_10_12_x86_64.whl (12.9 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

yantrikdb-0.7.10-cp312-cp312-win_amd64.whl (12.3 MB view details)

Uploaded CPython 3.12Windows x86-64

yantrikdb-0.7.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

yantrikdb-0.7.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (13.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

yantrikdb-0.7.10-cp312-cp312-macosx_11_0_arm64.whl (12.7 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

yantrikdb-0.7.10-cp312-cp312-macosx_10_12_x86_64.whl (12.9 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

yantrikdb-0.7.10-cp311-cp311-win_amd64.whl (12.3 MB view details)

Uploaded CPython 3.11Windows x86-64

yantrikdb-0.7.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

yantrikdb-0.7.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (13.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

yantrikdb-0.7.10-cp311-cp311-macosx_11_0_arm64.whl (12.7 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

yantrikdb-0.7.10-cp311-cp311-macosx_10_12_x86_64.whl (13.0 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

yantrikdb-0.7.10-cp310-cp310-win_amd64.whl (12.3 MB view details)

Uploaded CPython 3.10Windows x86-64

yantrikdb-0.7.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

yantrikdb-0.7.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (13.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

yantrikdb-0.7.10-cp310-cp310-macosx_11_0_arm64.whl (12.7 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

yantrikdb-0.7.10-cp310-cp310-macosx_10_12_x86_64.whl (13.0 MB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

Details for the file yantrikdb-0.7.10.tar.gz.

File metadata

  • Download URL: yantrikdb-0.7.10.tar.gz
  • Upload date:
  • Size: 8.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.13.3

File hashes

Hashes for yantrikdb-0.7.10.tar.gz
Algorithm Hash digest
SHA256 23925cdd903df5ee11391094ccfcecc2e6c30c63b0b26bb7de4919ab37d78642
MD5 9555b8fb9bdbf696d836899e79eaa046
BLAKE2b-256 d62bb2c889a563bc6d64d5be00e43eb4e5ec25507bbb34e8a49e795d89fa46ed

See more details on using hashes here.

File details

Details for the file yantrikdb-0.7.10-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for yantrikdb-0.7.10-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f842a01e355e035e856d072027e628b121cc57ddda414de99b28bf9462a84923
MD5 a96a4d99013f3bf07d069937bc1c3ec3
BLAKE2b-256 321153146df1a637e1be1a15979c403820a0e0242cd5265ffaf5bdaa448f1aff

See more details on using hashes here.

File details

Details for the file yantrikdb-0.7.10-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for yantrikdb-0.7.10-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d1d9164bda8e45a76abcef65d96fca7690ef29b47e3e5044c296414037de3e55
MD5 066bf4f000b480e1cde6aa8ce6497bb9
BLAKE2b-256 0c17f16c7dda0e7a5066686770e421421411079d0c1eab53619a933530449a54

See more details on using hashes here.

File details

Details for the file yantrikdb-0.7.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for yantrikdb-0.7.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 460dc77c2d965185450c31082955b83b6e1e483075000ecdafad248d18bc8f39
MD5 3ff152768615670a85084df7b3932283
BLAKE2b-256 8b68a0af2520bc13398fdd74556675b86946d9a3d4bd7f11a32bb9a6bf971a23

See more details on using hashes here.

File details

Details for the file yantrikdb-0.7.10-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for yantrikdb-0.7.10-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 47829f84e82a95a3040040c776eede63a02ef7e3a39eeaea06c3ac91e6659b8e
MD5 9f2802a2392aa2b682502b9edabc32bd
BLAKE2b-256 ba80ee810ba123ff176cb01989b1bd989bc472717eb9a236e413f4115e3f795f

See more details on using hashes here.

File details

Details for the file yantrikdb-0.7.10-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for yantrikdb-0.7.10-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b50cf5e11e1a85499b94a39b653d5b0e29eb341e55eb0735738dff32d6541c9b
MD5 f6b3f53d1b358afae6c319106039fff3
BLAKE2b-256 164a66eb4ba8c9e095e937425bdb47dd4db31fee589ec84e991529f9b006a216

See more details on using hashes here.

File details

Details for the file yantrikdb-0.7.10-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for yantrikdb-0.7.10-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 98e13af61ef56df165b9d84b59e183e92c1e438932a9d3690606c3c88b9e0264
MD5 6edba47407254524ee707ec88758fb82
BLAKE2b-256 647b95339e5395a6ec15a4a37d2e26b22bf6187b5029741cfbe04e3079d0bd82

See more details on using hashes here.

File details

Details for the file yantrikdb-0.7.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for yantrikdb-0.7.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 99166b3d7cd602c642e7a3391053641f2515f6d16861f025d4601393d70c72e7
MD5 c21be3065744706cd27335785e5bf1a3
BLAKE2b-256 516aafcff76b5755f54c38a96eeab150a163a26878be3af92db330e7501693ad

See more details on using hashes here.

File details

Details for the file yantrikdb-0.7.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for yantrikdb-0.7.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 abbab1fa3711fd64cd2c4387126b61b9b4c1e2ffa2022a88271b75e97450c274
MD5 3147605643640db011f63696f9292333
BLAKE2b-256 a53b979c85c8afac4b409913cd5d93e474557c4595573effa1f50d8d0e9f3a14

See more details on using hashes here.

File details

Details for the file yantrikdb-0.7.10-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for yantrikdb-0.7.10-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e4fc3c16c63b92a5870188cc9e3787ace2ca165723652676cc305bf34b18c3e1
MD5 9a9ecf54badc56f9299523b766444f6c
BLAKE2b-256 9449df9da282e01d725ec59d592b368ce3d89797f7a03857659a3dc5c7ffa231

See more details on using hashes here.

File details

Details for the file yantrikdb-0.7.10-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for yantrikdb-0.7.10-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5513a805a69ce2bd6f33cceee070207d4d460b27a708b0d26246b7bba542b589
MD5 1ed316c61fa7023ce485bbe1731401ac
BLAKE2b-256 0a7cdfff8903c4fd61fcd35035d4ebc8656a0b9804e03e3c48f82f14ff185f06

See more details on using hashes here.

File details

Details for the file yantrikdb-0.7.10-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for yantrikdb-0.7.10-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0fa1a1bab0ad0b376975894474d4fcef334c3c1991b62b60ced9307dc4930c6f
MD5 503c02cb8d1b2cb15bf1a094af5825ff
BLAKE2b-256 0f79e6a63a9b25aaf724f0c9616be320408afefd4f42687adc5e85ea3c21d949

See more details on using hashes here.

File details

Details for the file yantrikdb-0.7.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for yantrikdb-0.7.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 be44d987a8ada98715b282c017c751b43b59fee71dc0572050522be054d622cb
MD5 15deb7984870ed6be3d4e60b628a2e41
BLAKE2b-256 4a4e150cffc7340b5950868d169b74e2dc8dd973675106e3246819c3e9889c34

See more details on using hashes here.

File details

Details for the file yantrikdb-0.7.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for yantrikdb-0.7.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dc26650c40325e0132e9afc38980e195de1d8dbbab254a46aa96411f79119c7b
MD5 093d643a4519b97063fe3fcf1e8c76bb
BLAKE2b-256 1f3d6f75af7595030a0dcab208cb1af5bea5d981d349f6d8bf92b9e96a0461cf

See more details on using hashes here.

File details

Details for the file yantrikdb-0.7.10-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for yantrikdb-0.7.10-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f795cd5aa9f02a6c3a3ea6d4aa11df859b31a8b4bad2b7985210c9104648ffcc
MD5 50f42b92ca57cdf9c2889e3088455efd
BLAKE2b-256 99e14a54812d4b002ca386fcb81a1db9eceb6a518f30a4c916d45720ac098d3a

See more details on using hashes here.

File details

Details for the file yantrikdb-0.7.10-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for yantrikdb-0.7.10-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d3e61eee6c8dd6c78baf2b2a9f14067c86551e8c25ee90482bfe2a2540da9f2d
MD5 ce82874cd2bba39ca6bf693801088947
BLAKE2b-256 0070a0d6a59fc00c02e18e6903a4ea12243505ab215deba318e9286ef9cd6025

See more details on using hashes here.

File details

Details for the file yantrikdb-0.7.10-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for yantrikdb-0.7.10-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 38c228d5941c1411746a147f843af08c6dd5bef264ccbf13ddf99284ce0c8752
MD5 5cadcc1de2913687ffea9ee733f51f72
BLAKE2b-256 3c6e2f91b5bbf54aaefdded91d4cd24e5d2e90269b0a1810ac629e069a472c37

See more details on using hashes here.

File details

Details for the file yantrikdb-0.7.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for yantrikdb-0.7.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cba8622a9ce0088fc9b21b518d1e863f1157ceb4c1a6edd97f27f97b15383de8
MD5 f8f0f92fe0565b70361c82e3fdddb4c7
BLAKE2b-256 04fd8ad97af8d25a14bbd3b3a383bc7cfc789a44810644d4139e19e139807043

See more details on using hashes here.

File details

Details for the file yantrikdb-0.7.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for yantrikdb-0.7.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 769da22df276e6aba82c3f76974d80d96d77efaa253b9ec2ecea666ba56fbc2d
MD5 efd969288957274a8211c744de6ac191
BLAKE2b-256 aed899cb4cdbca3edeeac4a43e5fd2fd19faec87a8da10bb0e7ab5e6132c8d49

See more details on using hashes here.

File details

Details for the file yantrikdb-0.7.10-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for yantrikdb-0.7.10-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cfb891dfb1bf4c0e4a260527c8869e4c0792b6cbe749409727a2552e355d5a07
MD5 6301f3ea06e2644dfcfe03a7d4979874
BLAKE2b-256 fb2469a42041fa60365e41d62fbd89ee5108c4d6f734a7522b83d99a2eb558a4

See more details on using hashes here.

File details

Details for the file yantrikdb-0.7.10-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for yantrikdb-0.7.10-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4b50833fc9637824cd62bb289353f871da1c09f10ea938e4099b984ee433bb4e
MD5 b2aec995c485958eb358f02064ce905f
BLAKE2b-256 7891c2f13ada89980140362e4c9b0f24e6e24fe68cf31035e43624008c01e6b1

See more details on using hashes here.

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