Skip to main content

KGLite — Knowledge graph for Python, built for LLM agents

PyPI version Python versions crates.io docs.rs License: MIT Docs

KGLite is an embedded, Cypher-queryable knowledge graph for Python and Rust, built so the same graph can serve an application, an analyst, or an LLM agent. The Python wheel has no required Python runtime dependencies; the graph engine runs in-process without an external database service. Every crate in the workspace ships under MIT — if you are embedding a graph engine in something you distribute, see Licensing and embedded distribution. The distribution also includes a CLI and MCP server, prompt-shaped describe() introspection, and structural validators that compose with Cypher.

Start here

Install → build one graph → query it:

pip install kglite
import kglite

graph = kglite.from_records({"nodes": [{
    "type": "Person", "id_field": "id", "title_field": "name",
    "records": [{"id": 1, "name": "Alice"}, {"id": 2, "name": "Bob"}],
}]})
print(graph.cypher("MATCH (p:Person) RETURN p.name ORDER BY p.name").to_dicts())

Choose the path that matches what you are doing:

Upgrading from 0.13? Convert pre-0.14 .kgl, .kgle, disk, and WAL artifacts with kglite 0.13.4 before installing the current Postcard-only release; the migration guide above has the exact paths.

For DataFrame loading, install the optional pandas integration with pip install "kglite[pandas]"; the complete walkthrough is in Quick Start.

kglite is a pure-Rust knowledge graph engine (crates/kglite) packaged for Python via pip install kglite. The interactive shell, Bolt-server, and MCP-server binaries are sibling Rust crates wrapping the same engine. If you want kglite as a Rust library — without the Python wheel in your build — see Use from Rust below.

Interactive shell. pip install kglite also gives you the kglite command — a sqlite3-style REPL: kglite app.kgl opens a Cypher prompt with .import, .dump, .schema, multi-line input, and tab-completion. For a standalone CLI-only install, use pip install kglite-cli or cargo install kglite-cli.

Ecosystem

kglite is the engine. Two companion projects build graphs it serves — each released and versioned on its own cadence:

  • kglite — the embedded Cypher knowledge-graph engine (this project): graph + Cypher + fluent API + bundled MCP server.
  • codingest — parses codebases into code graphs (14 languages, web-framework route detection). Build with it, query the .kgl here. Requires kglite ≥ 0.14.
  • kglite-datasets — fetch-build-cache loaders for public registries (SEC EDGAR, Wikidata, Sodir).
  • sonagram — turns a local music library into a kglite knowledge graph via sonara audio analysis (tempo, energy, mood, key); AI agents curate playlists over it through a simple bundled skill and CLI (pip install sonagram).

Upgrading from 0.13? The code-graph builder and dataset loaders moved out of the wheel, and pre-0.14 bincode persistence needs a 0.13.4 conversion — see the 0.13 → 0.14 migration guide. Pin back anytime with pip install "kglite<0.14".

One engine, seven doorways

Every wrapper drives the same engine over the same .kgl files with the same Cypher — pick the doorway that matches your stack, and a graph built through any of them is readable through all of them.

Doorway Get it Docs
Python — the primary binding: DataFrames in/out, fluent API, embeddings pip install kglite Getting started · Python track
Rust — embed the engine directly; sessions, CoW transactions cargo add kglite Rust track · docs.rs
Java — Panama/FFM binding, natives for 4 platforms bundled Maven Central io.github.kkollsga:kglite kglite-java README
C ABI — stable kglite.h for any other language (Go, JS, .NET, …) crates/kglite-c C ABI design · implementing a binding
CLI — shell/scripts/JSONL agent loops over a .kgl bundled in the wheel, or pip install kglite-cli / cargo install kglite-cli CLI guide
Bolt server — Bolt v5 front-end for Neo4j wire-compatible drivers cargo install kglite-bolt-server Bolt server
MCP server — serve a graph to AI agents as tools + skills bundled with the wheel: kglite-mcp-server --graph <graph>.kgl MCP config guide · operators page

The operators index has a decision table for the server-shaped doorways; the boundary rule for what lives in a wrapper vs the engine is in Design decisions.

Use cases

The same agent-facing surface works whether the graph holds legal precedents, a Wikidata slice, a SQL warehouse, a RAG corpus, or a parsed codebase.

  • 🏛️ Domain knowledge for agents. Legal precedents + citations, regulatory rules, medical ontologies, manufacturing BOMs, scientific catalogues — anything with structure becomes a queryable graph an MCP-capable agent can reason over. See the legal-graph example for a Norwegian-Supreme-Court walk-through (laws + decisions + citation edges + judge metadata).
  • 📊 Business data → queryable graph. Any tabular source — SQL, CSV, Parquet, REST API responses, pandas DataFrames — goes straight in via add_nodes(df, ...) and add_connections(df, ...). Layer a graph on top of your warehouse and the agent reasons over the relationships without you writing a server. Data Loading guide.
  • 🌐 Public datasets. Pre-packaged loaders for SEC EDGAR, Wikidata, and Sodir live in the companion kglite-datasets project — they handle the fetch + build + cache cycle and return a queryable KnowledgeGraph. kglite's mapped and disk storage then query graphs that don't fit in RAM — the 124M-node / 861M-edge Wikidata graph on a 16 GB laptop. → See Public datasets below.
  • 📚 RAG with structure. Documents, chunks, entities, and the edges between them in one graph. Combine text_score() vector similarity with Cypher traversal — "find court cases semantically similar to my fact pattern, then walk one hop to related precedents" — hybrid retrieval in one query, no second vector DB. Scale to large corpora with an opt-in HNSW index (build_vector_index()). Semantic Search guide.
  • 🔎 Keyword and meaning in one ranking. An opt-in BM25 lexical index (build_text_index() + text_bm25()) finds the exact term an embedding blurs away, and score_fuse() blends it with the vector lane in a single Cypher query — no second search service, no merge step in your code. Text Search & Hybrid Retrieval guide.
  • 📂 Codebase analysis. The codingest builder parses 14 languages into Function / Class / Module / Route nodes with web-framework route detection (Flask, FastAPI, Django). Build from any git revision, or merge several into one multi-revision graph for structural diffs (multi-rev builds). kglite serves and queries those graphs. The builder and the code → Claude Desktop workflow live in the codingest project.
  • 🤝 A shared graph as an agent contract. One .kgl can be the two-way contract between collaborating agents (e.g. a research agent that batch-rebuilds specs and coding agents that plan and mutate status live). The primitives that make this safe are first-class: ownership layers (define_schema(layer='managed'|'runtime') + add_nodes(managed_reload=True), which makes the rebuilding side declare itself: an add_nodes call that passes managed_reload=True skips any type declared layer='runtime' and reports the skip. Nothing stops a runtime writer from deleting managed nodes, an add_nodes call that omits the flag writes runtime types normally, and add_connections is not covered at all — the layer is a guard the batch writer opts into, not an enforced perimeter), role-scoped writes (cypher(..., write_scope=[...]) refuses every node write — CREATE, MERGE, SET, REMOVE, DELETE, DETACH DELETE, index/constraint DDL — whose node's stored type is outside the whitelist, and refuses a relationship write unless at least one endpoint's stored type is in it; relationship-constraint DDL, db.cdc.* and the bulk loaders add_nodes/add_connections are outside the perimeter), a verbatim instructions slot at the top of describe() (set_instructions(text)), native list properties, JSON-native ingestion (from_records(spec)), and a dependency frontier (CALL ready_set(...)) to find the next actionable work. Keep the graph general — these are small, opt-in building blocks, not a baked-in workflow.
  • 🧠 Markdown knowledge bases & agent memory. kglite.okf.build(dir) ingests an Open Knowledge Format bundle — or a Claude memory dir, skills folder, or Obsidian vault — into a graph: frontmatter → node properties, markdown links → typed edges. Then cluster it (CALL leiden), find orphaned or stale notes, and surface dangling references — the query engine OKF itself doesn't ship. OKF guide.

Why Cypher?

Questions over connected data — which insiders sold this stock, who sits on two boards, what cites this case — are pattern matches. In SQL they become multi-table joins; in Cypher the pattern is the query:

-- Insider sells, most recent first
MATCH (t:InsiderTransaction {direction: 'sale'})-[:BY_INSIDER]->(p:Person)
MATCH (t)-[:IN_COMPANY]->(c:Company)
RETURN p.title, c.title, t.shares, t.price_per_share
ORDER BY t.transaction_date DESC LIMIT 10

Cypher pays off most when the data has real structure and your questions traverse it.

How it compares

KGLite LadybugDB (formerly Kuzu) NetworkX rustworkx Neo4j Embedded
Install pip install kglite pip install ladybug pip install networkx pip install rustworkx JVM + Java deps
Query language Cypher (broad coverage) Cypher Python API Python API Cypher (full)
Storage in-mem · mmap · disk (tested to 861M edges) in-mem · disk (columnar) in-mem in-mem in-mem · disk (JVM)
Bulk-load from pandas one-liner via Arrow manual manual via driver
MCP server for LLM agents bundled in the kglite wheel separate mcp-server-ladybug install
describe() schema for LLM prompts
Embeddable in Rust (no Python in build) pure-Rust kglite crate lbug bindings to the C++ engine
License MIT MIT BSD-3 Apache-2 GPLv3

Pick KGLite when you want one embedded package that combines Python and pure-Rust Cypher APIs with a bundled MCP binary, prompt-shaped describe(), and agent-contract primitives: role-scoped writes (write_scope), ownership layers, set_instructions, and CALL ready_set(...) — with companion projects (codingest, kglite-datasets) that build code and public-registry graphs it serves. Pick LadybugDB when columnar analytical scans and its broader language ecosystem are the priority; it also provides Rust bindings and a separately installed MCP server. Pick NetworkX when you need its enormous graph-algorithm library and your data fits in RAM. Pick rustworkx when you want a Rust-backed Python graph API with no query language. Pick Neo4j Embedded when you've standardised on server-mode Cypher and want the in-process driver for tests.

📊 Benchmarks → — wall-to-wall time per topic (load, filter/aggregate, traversal, pathfinding, algorithms, mutations) against other embedded graph engines, NetworkX, rustworkx, igraph, and DuckDB on one shared synthetic graph. Reproduce with python benchmarks/benchmark.py.

Licensing and embedded distribution

If the graph engine ships inside something you distribute, the licence is a design constraint rather than a line item.

kglite is MIT-licensed throughout — every crate in the workspace ships under MIT. There is no separate commercial tier, no distinction between development and production use, and no copyleft obligation attached to shipping it: if you can use kglite, you can distribute it inside your own product.

One honest qualification, because it is a statement about the default build: the optional fastembed embedding backend is itself Apache-2.0 and is off by default in every crate that can enable it, so neither the published wheel nor the default MCP-server binary contains it. A build that opts into --features fastembed pulls one transitive MPL-2.0 crate (option-ext, four dependencies down); MPL-2.0 is file-level weak copyleft and kglite does not modify it. The reviewed dependency-licence policy is documented in dependency licences.

Primary store, or derived index?

Two shapes, both supported, with different guarantees. Knowing which one you are building saves a lot of argument later.

  • Derived index — the authoritative copy lives elsewhere (a warehouse, an API, a directory, a repo) and the graph is a rebuildable projection you query. This is what most kglite deployments are, and it is the cheapest correct answer. Derived index guide.
  • Primary store — the graph is the authoritative copy. open() is crash-safe by default for the in-memory and mapped backends (disk checkpoints on save() instead), statements are atomic, readers get snapshot isolation, UNIQUE / NOT NULL / node-key constraints are enforced on every write path including the bulk loaders, and for in-memory graphs the cost of a write scales with the size of the change rather than the size of the graph. One process owns the writes; the scope statement lists the limits rather than softening them. Primary store: scope and limits.

Quick Start

# Python (the headline distribution path)
pip install kglite

# Optional extras
pip install 'kglite[pandas]'   # DataFrame loading used in the walkthrough below
pip install fastembed            # (or sentence-transformers) embedding models for text_score() — bring your own
pip install 'kglite[neo4j]'      # Neo4j Python driver for Bolt-server tests
import pandas as pd
import kglite

# Three storage modes — pick by graph size:
#   default (in-memory)   — small/medium graphs, fastest queries
#   storage="mapped"      — mmap columns, RAM-friendly as you grow
#   storage="disk", path=…  — 100M+ nodes, Wikidata-scale, loaded lazily
graph = kglite.KnowledgeGraph()

# Bulk-load nodes from a DataFrame.
people = pd.DataFrame({
    "id":   ["alice", "bob", "eve"],
    "name": ["Alice", "Bob", "Eve"],
    "age":  [28, 35, 41],
    "city": ["Oslo", "Bergen", "Trondheim"],
})
graph.add_nodes(people, node_type="Person", unique_id_field="id", node_title_field="name")

# Bulk-load relationships the same way.
knows = pd.DataFrame({"src": ["alice", "bob"], "tgt": ["bob", "eve"]})
graph.add_connections(knows, connection_type="KNOWS",
                      source_type="Person", source_id_field="src",
                      target_type="Person", target_id_field="tgt")

# Query — returns a ResultView; eligible projections stay lazy until accessed.
for row in graph.cypher("""
    MATCH (p:Person) WHERE p.age > 30
    RETURN p.name AS name, p.city AS city
    ORDER BY p.age DESC
"""):
    print(row['name'], row['city'])

# Or get a pandas DataFrame directly.
df = graph.cypher("MATCH (p:Person) RETURN p.name, p.age ORDER BY p.age", to_df=True)

# Persist to disk and reload. save() is atomic + fsync by default (crash-safe —
# no torn file); load() raises a typed kglite.FileFormatError on a corrupt file.
graph.save("my_graph.kgl")
loaded = kglite.load("my_graph.kgl")

# Or serialize to/from bytes (no filesystem path):
blob = graph.to_bytes(); loaded = kglite.from_bytes(blob)

# Share read-only across threads with an immutable, lock-free snapshot:
snapshot = graph.freeze()        # concurrent snapshot.cypher(...) from many threads

# No data yet? Generate a realistic demo graph in one line (bundled, no extra deps):
demo = kglite.graphgen("medium")               # ~25k nodes, ready to query
# kglite.graphgen("huge", out="/tmp/g")        # stream millions of nodes to CSV, bounded memory

Getting Started guide · Cypher reference · API reference.

Prefer a runnable file? examples/csv_to_graph.py loads real CSVs end to end.

Serve it to an agent

Use the KGLite MCP server when you want a graph kept warm across many calls, with typed graph-query and lifecycle tools. Code-graph construction, repository cloning, and code-watch workflows belong to codingest-mcp, which embeds the same KGLite graph-serving surface.

One command — any current .kgl becomes an MCP server

kglite-mcp-server --graph path/to/graph.kgl

The server exposes cypher_query, graph_overview, schema introspection, and structural validators over MCP stdio. When a valid source_root is configured, it also exposes source-file read/search tools. Drop it into Claude Desktop, Cursor, or another MCP-capable client and any KGLite graph is queryable.

When you register it, point command at the absolute path to the binary (/abs/path/to/venv/bin/kglite-mcp-server), not a bare name — a bare command can silently launch an older PATH-shadowing install. Then confirm it with kglite-mcp-server --selftest --graph path/to/graph.kgl, which drives a real handshake and prints green/red per capability.

Two ready-made code-intelligence recipes ship in examples/ — both build code graphs, so run them under codingest-mcp (it embeds this same tool surface and injects the builder):

  • Clone-and-explore GitHub reposopen_source_workspace_mcp.yaml: the agent calls repo_management('org/repo') to clone and build a code graph on demand.
  • Review a local directorylocal_code_review_mcp.yaml: point it at a checked-out tree, set_root_dir(path) to swap roots, watch-mode auto-rebuild.

Customise with a YAML manifest

Drop <basename>_mcp.yaml next to the graph (e.g. wikidata_mcp.yaml beside wikidata.kgl) and the server auto-loads it at boot.

name: Wikidata Explorer
source_root: /path/to/related/source        # exposes read/grep/list
skills: true                                # load bundled + project tool guidance
trust:
  allow_embedder: true
extensions:
  embedder: { library: fastembed, model: BAAI/bge-small-en-v1.5 }  # enables text_score()
  csv_http_server: true                              # bulk CSV exports
tools:                                               # inline parameterised Cypher
  - name: who_invented
    cypher: |
      MATCH (i:Q5)-[:P61]->(t {label:$thing})
      RETURN i.label LIMIT 5

No fork required for most customisation. MCP server guide.

Teach the MCP agent with bundled tool skills

With skills: true, Markdown skill files (<basename>.skills/*.md) provide methodology for each tool. The agent reads cypher_query.md to learn your schema conventions, read_code_source.md to know when to drill into source vs. query the graph, etc. Three layers compose: kglite-bundled defaults + your project's .skills/ overrides + operator-declared domain packs. Skills with applies_when: predicates only activate when the graph contains the relevant node types — so a non-code graph never sees read_code_source methodology.

Net effect: the agent comes pre-loaded with how to use your graph, rather than discovering it through trial-and-error. AI Agents guide.

Public datasets

Pre-packaged loaders that turn well-known public sources into queryable graphs — SEC EDGAR filings (insider transactions, institutional holdings, board composition, XBRL financials), Wikidata (the full latest-truthy RDF dump, parallel-decoded and built into a 124M-node / 861M-edge graph), and Sodir (Norwegian Offshore Directorate petroleum data) — live in the companion kglite-datasets project. Install it separately with pip install kglite-datasets; its Python package supplies the dataset-specific loaders while KGLite supplies the graph:

import kglite_datasets  # choose a loader from the companion documentation

Each loader handles the fetch + build + cache cycle and returns a KnowledgeGraph you can cypher() against; kglite serves and queries the graphs they produce. The core graph engine does not require network access; fetching public data is an explicit companion-project operation.

Recipes

Short patterns for the most-common shapes. Each is self-contained.

Hybrid semantic + structural retrieval

Combine vector similarity (text_score()) with Cypher pattern matching in one query:

graph.cypher("""
    MATCH (c:Chunk)-[:IN_DOC]->(d:Document)
    RETURN c.text, d.title,
           text_score(c.embedding, $query_vec) AS score
    ORDER BY score DESC LIMIT 5
""", params={"query_vec": query_embedding})

Vector embeddings via a bring-your-own embedder — pip install fastembed (or sentence-transformers) and pass it to g.set_embedder(...). Semantic Search guide.

Structural validators — surface data-integrity gaps

Fourteen built-in CALL procedures find the gaps that aren't visible from normal queries: orphan nodes, missing-required-edge violations, two-step cycles, duplicate titles, parallel edges, cardinality violations, more. They compose with the rest of Cypher.

# Wellbores in our sodir graph that lack a production licence
graph.cypher("""
    CALL missing_required_edge({type: 'Wellbore', edge: 'IN_LICENCE'}) YIELD node
    RETURN node.id, node.title
""")

missing_required_edge and missing_inbound_edge validate the (type, edge) direction against the graph's actual schema and refuse to execute when misused. → Full procedure list in the Cypher reference.

Graph algorithms

Shortest path (BFS or Dijkstra), centrality, community detection, clustering — all in Cypher:

graph.cypher("""
    MATCH path = shortestPath((a:User {name:'Alice'})-[*]-(b:User {name:'Eve'}))
    RETURN path
""")

Graph algorithms guide · Traversal patterns · Recipes index.

Use from Rust

The same engine is available as a pure-Rust crate — embed it in a Rust binary without the Python wheel in your build:

# Cargo.toml
[dependencies]
kglite = "0.14"
use kglite::api::{io::load_file, session, Value};
use std::collections::HashMap;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let graph = load_file("my_graph.kgl")?;     // same .kgl as Python writes
    let params = HashMap::new();
    let opts = session::ExecuteOptions::eager(&params);
    let outcome = session::execute_read(
        &graph,
        "MATCH (p:Person) RETURN p.name LIMIT 5",
        &opts,
    )?;
    for row in &outcome.result.rows {
        if let Some(Value::String(name)) = row.first() {
            println!("{}", name);
        }
    }
    Ok(())
}

Zero PyO3 in the dependency tree: cargo tree -p your-crate | rg pyo3 → empty.

The Bolt server (crates/kglite-bolt-server) and the Rust MCP server (crates/kglite-mcp-server) are standalone binaries built on the same engine — see the Operators guide for deployment.

For Java, an official binding is on Maven Central: io.github.kkollsga:kglite (Panama/FFM over the C ABI, natives bundled — see kglite-java/README.md). For other non-Rust language bindings (Go via cgo, JavaScript via napi, .NET via P/Invoke), the crates/kglite-c crate exposes the engine through a stable C ABI covering lifecycle, sessions, Cypher, results, persistence, and embedders, plus a cbindgen-generated kglite.h. See docs/rust/c-abi.md for the design and docs/rust/implementing-a-binding.md for cgo / napi / JNI worked examples.

Examples

The examples/ directory has runnable, self-contained artifacts:

  • open_source_workspace_mcp.yaml — annotated workspace-mode manifest for the github-clone-tracker pattern. Walked through in the workspace manifest example.
  • csv_to_graph.py — minimal pd.read_csvadd_nodes / add_connections walkthrough on a tiny org chart, with a few Cypher queries. The fastest way in.
  • incremental_update.py — merge a second data snapshot into an existing graph with add_nodes(conflict_handling='update').
  • legal_graph.py — end-to-end add_nodes / add_connections from pandas DataFrames, covering laws, regulations, court decisions with citation edges.
  • spatial_graph.py — declarative CSV→graph loading via a JSON blueprint; lat/lon coordinates and pipeline-path traversal queries.
  • crates/kglite-mcp-server/ — Rust-native single-binary MCP server (built on rmcp + the mcp-methods framework). Reach for it when the manifest doesn't express what you need; the binary is the reference for layering domain-specific tools on top of the generic surface.

Benchmarks

Reproducible, versioned comparisons live in BENCHMARKS.md. Run the public harness with python benchmarks/benchmark.py; maintainer-only storage and release-regression probes live under tests/benchmarks/.

Key Features

Quick reference. Each links into the appropriate guide.

Feature Description
Cypher MATCH, CREATE, SET, DELETE, MERGE, UNION/INTERSECT/EXCEPT, aggregations (incl. median, percentile_cont, variance), reduce(), ORDER BY, LIMIT, SKIP
Label model One immutable primary type per node plus optional secondary labels — CREATE (n:A:B), SET n:B, REMOVE n:B, labels(n) returns the list (primary first). Details in the Cypher reference callout.
Semantic search Vector embeddings + text_score() for similarity ranking. Bring your own embedder (pip install fastembed or sentence-transformers).
Text predicates text_edit_distance, text_normalize, text_jaccard, text_ngrams, text_contains_any / text_starts_with_any
Graph algorithms Shortest path (BFS or Dijkstra), centrality, community detection, clustering
Ontology Declared semantic layer: is_a class forest + relationship semantics (define_ontology), SHOW ONTOLOGY, no-arg validators, CALL ontology_audit() scorecard, blueprint data-quality gate, opt-in materialization. Annotations, not axioms — SKOS in spirit, never OWL.
Structured data DataFrame table properties (set_table_property/get_table_property), declared list<map{...}> shapes with indexed error paths, atomic nested SET o.items[2].qty = 8, table.upsert/table.delete, attach_rows.
Structural validators 14 CALL procedures: orphan_node, missing_required_edge, cycle_2step, inverse_violation, cardinality_violation, parallel_edges, null_property, more — agent-discoverable integrity checks composable with Cypher
Spatial Coordinates, WKT geometry, distance + containment, kg_knn k-nearest-neighbour. Pragmatic primitives, not a full GIS stack.
Timeseries Time-indexed values with ts_*() Cypher functions. For graphs whose nodes carry value-over-time series.
Bulk loading add_nodes / add_connections for DataFrames
Blueprints Declarative CSV-to-graph loading via JSON config
Import/Export Save/load snapshots (.kgl), GraphML, CSV export
AI integration describe() introspection, MCP server, agent prompts
Code analysis serve + query 14-language code graphs built by the codingest project — functions, classes, calls, imports, web-framework routes
OKF ingestion Markdown + YAML-frontmatter bundles (kglite.okf) — Open Knowledge Format, Claude memory dirs, skills, Obsidian vaults → frontmatter as properties, links as typed edges
Public dataset loaders Fetch-build-cache loaders for public sources — SEC EDGAR filings, Wikidata, Sodir (Norwegian Offshore Directorate) — live in the companion kglite-datasets project; each returns a queryable KnowledgeGraph kglite serves

Documentation

Full docs at kglite.readthedocs.io — five tracks by audience.

Python trackpip install kglite

Rust trackcargo add kglite

Operators — running the protocol servers

  • Bolt server — Bolt v5 front-end for Neo4j wire-compatible drivers

Reference — cross-binding

Concepts — architecture + contributor docs

Requirements

CPython 3.10+ | macOS (arm64/x86_64), Linux (glibc/musl; x86_64 and best-effort aarch64), Windows (x86_64). The base wheel has no Python runtime dependencies; integrations install their named extras. See the artifact support policy for the tested/build-only tiers, libc floors, PyPy status, and source-build fallback.

Stability

KGLite is beta software and remains pre-1.0. Patch releases preserve public source APIs; a 0.x minor release may make an intentional breaking source-API change when it is documented with a migration path. Saved graph files have a separate format lifecycle: a release either reads an older format or refuses it with an explicit rebuild/migration error. See the current 0.13 → 0.14 migration guide and CHANGELOG.md. Storage parity and differential Cypher oracles run on every change.

License

MIT — see LICENSE for details. Every crate in the workspace ships under MIT; Licensing and embedded distribution covers what that means when kglite ships inside a product you distribute.

Download files

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

Source Distribution

kglite-0.16.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.

kglite-0.16.12-cp310-abi3-win_amd64.whl (11.8 MB view details)

Uploaded CPython 3.10+Windows x86-64

kglite-0.16.12-cp310-abi3-musllinux_1_2_x86_64.whl (11.9 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ x86-64

kglite-0.16.12-cp310-abi3-musllinux_1_2_aarch64.whl (11.0 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

kglite-0.16.12-cp310-abi3-manylinux_2_28_aarch64.whl (10.8 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ ARM64

kglite-0.16.12-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.7 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

kglite-0.16.12-cp310-abi3-macosx_11_0_arm64.whl (10.4 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

kglite-0.16.12-cp310-abi3-macosx_10_12_x86_64.whl (11.2 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file kglite-0.16.12.tar.gz.

File metadata

  • Download URL: kglite-0.16.12.tar.gz
  • Upload date:
  • Size: 3.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for kglite-0.16.12.tar.gz
Algorithm Hash digest
SHA256 b5e1a4fb1943b627d14150c07b4b3800d277fbb15f98e241fb5f6b3b704e5071
MD5 0af92868afab761c3c222ed176b06cc0
BLAKE2b-256 c5217e88e9ba6eae90463ff9fb12910082e98c7b940acf73f9e4876adc158ce7

See more details on using hashes here.

File details

Details for the file kglite-0.16.12-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: kglite-0.16.12-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 11.8 MB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for kglite-0.16.12-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 a3eab26f0d4b2d8c67cafe2108aa986f9f24738dc736644738151a954e8c36d5
MD5 ae521c0877dc9000ab282456f7dd5d06
BLAKE2b-256 1d0595107186247cc15ff45a37805603ea58106cd8cc9d94a9cbaa34b35844bb

See more details on using hashes here.

File details

Details for the file kglite-0.16.12-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for kglite-0.16.12-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fd1e41531c9b5ca94bf36cae48189b151e463ea03a7a4bafba7f89752f249b2f
MD5 2b95d176d43cbc1849dc0786ba6b53e2
BLAKE2b-256 2e718b3db1a978f65a35ff218dcfde0033f92fb386c2bd171358ac98749177e9

See more details on using hashes here.

File details

Details for the file kglite-0.16.12-cp310-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for kglite-0.16.12-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1461c139c7897d1c6036b114f4630538b5be614f4acd4f41cc28dc763d7ab29f
MD5 73130c9072e67376f80fcfdc15552196
BLAKE2b-256 959e4681fad8d515caccfd508a2ba2c439dd15a4cb9b22e42b05c748eaf20e82

See more details on using hashes here.

File details

Details for the file kglite-0.16.12-cp310-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kglite-0.16.12-cp310-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c50f179807c4352f6176716d3b404f1e8c35b2af887543f16635ec83407a536e
MD5 fd9e9827cc581a618af4dd7b34425c58
BLAKE2b-256 9d52e7139f523cbdc3b639177933b632e00c54417a701eca3b19af602f613ef3

See more details on using hashes here.

File details

Details for the file kglite-0.16.12-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for kglite-0.16.12-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e3876fbb9978b05f1bd1b6d49b47ce40278f2de95375161029b1595410c6af8d
MD5 0958b7a6c29b3f3cbdfde513c0149b31
BLAKE2b-256 b456976831b46dbe08cefae7fc207622ca1b7db43a5b4614236cbe176052a81a

See more details on using hashes here.

File details

Details for the file kglite-0.16.12-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for kglite-0.16.12-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ba386e4a135475e94ee8520fb765ffe51e5a66c8d4c90bcae25821d93b534028
MD5 ebf440858f8cccd8b73175a6429a8ced
BLAKE2b-256 631c82279729be2ab20d51a17a9a4fb1822cfdd9453f17df7f64624c59436275

See more details on using hashes here.

File details

Details for the file kglite-0.16.12-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for kglite-0.16.12-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 9b0b4c2d0326ec522b4c46ac9dc426181cb38afc020f5cdb2723a3949bc803df
MD5 4636a3cb771adb07d4f25964b884c2e9
BLAKE2b-256 2dbefe7455c1fc25b07bfc06c4618a2c8832adbc04a1280558f1a8bf5b5e3635

See more details on using hashes here.

Release history Release notifications | RSS feed

0.16.23

8 files

0.16.22

8 files

0.16.21

8 files

0.16.20

8 files

0.16.19

8 files

0.16.18

8 files

0.16.17

8 files

0.16.16

8 files

0.16.15

8 files

0.16.14

8 files

0.16.13

8 files

This release

0.16.12 This release

8 files

0.16.11

8 files

0.16.10

8 files

0.16.9

8 files

0.16.8

8 files

0.16.7

8 files

0.16.6

8 files

0.16.5

8 files

0.16.4

8 files

0.16.3

8 files

0.16.2

8 files

0.16.1

8 files

0.16.0

8 files

0.15.14

8 files

0.15.13

8 files

0.15.12

8 files

0.15.11

8 files

0.15.10

8 files

0.15.9

8 files

0.15.8

8 files

0.15.7

8 files

0.15.6

8 files

0.15.5

8 files

0.15.4

8 files

0.15.3

8 files

0.15.2

7 files

0.15.1

7 files

0.15.0

7 files

0.14.5

7 files

0.14.4

7 files

0.14.3

7 files

0.14.2

7 files

0.14.1

7 files

0.14.0

7 files

0.13.4

7 files

0.13.3

7 files

0.13.2

7 files

0.13.1

7 files

0.13.0

7 files

0.12.14

7 files

0.12.13

7 files

0.12.12

7 files

0.12.11

7 files

0.12.10

7 files

0.12.9

7 files

0.12.8

7 files

0.12.7

7 files

0.12.6

7 files

0.12.5

7 files

0.12.4

6 files

0.12.3

7 files

0.12.2

7 files

0.12.1

7 files

0.12.0

7 files

0.11.16

7 files

0.11.15

7 files

0.11.14

7 files

0.11.13

7 files

0.11.12

7 files

0.11.11

7 files

0.11.10

7 files

0.11.9

7 files

0.11.8

7 files

0.11.7

7 files

0.11.6

7 files

0.11.5

7 files

0.11.3

6 files

0.11.2

6 files

0.11.1

6 files

0.11.0

6 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page