API reference¶
The curated, documented surface — kglite::api::*. Items outside
this surface (kglite::graph::*, kglite::datatypes::*, etc.) are
implementation details and may move in any release. See
Stability policy for what pre-1.0 guarantees.
For per-symbol API docs (function signatures, struct fields, trait method docs), use docs.rs/kglite. This page is the curated inventory. If you’re building a library that produces kglite graphs, see Building on kglite.
Stability policy¶
kglite::api::* — and the kglite-mcp-server library surface — are
exact-baseline-locked in CI (cargo-public-api, pinned nightly): accidental
drift cannot merge, because the generated public-API listing is diffed against a
committed baseline on every PR. The include/kglite.h C header is drift-checked
the same way (cbindgen vs the committed header).
Pre-1.0, the policy is:
Any release, including a PATCH, may ship a documented breaking change. KGLite’s crates ship in lockstep and deliberately ship breaking engine changes in patch bumps; the version number is not a compatibility signal. Every intentional break ships with a
CHANGELOG.mdentry naming the removed items and their replacements — the changelog, not the bump size, is the migration contract. Embedders should pin an exact version (kglite = "=X.Y.Z") and upgrade against the changelog. (This paragraph previously promised “patch releases never break the API”; 0.15.9 removed public items in a patch, per the actual policy, and this page was the outlier.)New options land under 0.14’s options-struct convention (
*Optionsstructs,#[non_exhaustive]+Default), so adding an option is a non-breaking change rather than a signature break.
1.0 criterion: the 0.14 surface — after the options-struct pass on
api::algorithms — soaks across releases without needing a breaking correction.
When the curated facade proves stable in the field, we cut 1.0 and the pre-1.0
“any release may break” latitude ends.
Engine types¶
Item |
Path |
Purpose |
|---|---|---|
|
|
Core graph handle/storage wrapper spanning memory, mapped, and disk modes. |
|
|
Storage-independent read/mutation traits; |
Storage/config types |
|
Mode selection, construction, and lifecycle configuration. |
|
|
Every value Cypher can return: scalars, |
|
|
Per-variant carriers; pattern-match into them without deriving accessors. |
|
|
Typed errors with 17 stable codes including cancellation. Map code/message/status through the binding. |
|
|
Pluggable text-embedding backend for |
|
|
Rust-native ONNX embedder. |
|
|
Code-entity location lookup result types. |
|
|
Codebase exploration as a markdown report. |
I/O¶
Item |
Path |
Purpose |
|---|---|---|
|
|
Read a |
|
|
Load an in-memory graph from a |
|
|
Write an |
|
|
Atomic (temp+rename) + durable ( |
|
|
Serialize the |
DirGraph::copy_embeddings_from(&src) carries embedding stores across a rebuild
by node id (the core behind the Python copy_embeddings_from). The other new
0.11.0 methods — embedding_info / embedding_dim, replace_connections,
embed_texts(mode=…), freeze — are binding-surface (Python KnowledgeGraph)
methods, documented in the Python track, not raw kglite::api functions.
Schema introspection¶
Item |
Path |
Purpose |
|---|---|---|
|
|
XML schema description for agent system prompts. |
|
|
Structured |
|
|
Structured introspection types. |
Cypher pipeline (kglite::api::cypher)¶
For building custom pipelines. For the canonical pipeline, use
the session module instead.
Item |
Purpose |
|---|---|
|
Parse a query string → |
|
Schema-check a parsed query against a graph. |
|
Lower |
|
Mark queries eligible for streaming materialization. |
|
Run the optimizer passes; introspect the pipeline. |
|
Execute a planned query against a graph. |
|
Mutation execution path. |
|
Heuristic: does this query mutate? |
|
Build an EXPLAIN-style plan as a CypherResult. |
|
Data types. |
Session (canonical query + transaction surface)¶
The canonical query and transaction pipeline for Rust-side bindings.
Item |
Path |
Purpose |
|---|---|---|
|
|
Shared graph state with commit-swap semantics. |
|
|
Snapshot/working CoW transaction state. |
|
|
|
|
|
Params, deadline, row/work budget, lazy hint, disabled passes, embedder, value codecs, cancellation, write scope, and provenance. |
|
|
|
|
|
Run a read query. |
|
|
Run a mutation. |
Dataset loaders¶
The pre-packaged dataset loaders (SEC EDGAR, Sodir, Wikidata) are no
longer part of the kglite core API surface — they live in the
separate kglite-datasets project, and kglite::api::datasets::* (and
the sec / sodir / wikidata Cargo features) have been removed.
kglite loads the graphs those loaders produce via the ordinary
lifecycle API. To ingest RDF directly, use the kept RDF/N-Triples
loaders.
Semver¶
kglite::api::* items above are the documented surface: locked against
accidental drift by the CI API baseline, and every intentional break is
announced in CHANGELOG.md. Pre-1.0 that break may arrive in any release,
including a patch — see Stability policy. Anything outside
that surface — kglite::graph::*, kglite::datatypes::*, raw module paths —
is internal and may move freely in any release.
Change kind |
Bumps |
|---|---|
Additive item/options field in |
Patch or minor, with API baseline update |
Intentional breaking change before 1.0 |
Any release, patch included, plus changelog/migration guidance |
Internal rearrangement (non-api items) |
Patch |
The .kgl format is versioned separately from the source API. The current
writer emits RGF v6/Postcard and the reader accepts v6 and v5. RGF
v4/bincode and older containers are
rejected with a clear migration/rebuild path. Convert pre-0.14 artifacts with
kglite 0.13.4 before handing them to a current binding.
Where to find each item¶
kglite:: (the crate root)
├── api:: (this stable surface)
│ ├── cypher:: (parse / plan / execute primitives)
│ └── session:: (canonical Cypher pipeline + transactions)
├── datatypes:: (internal — use api::Value)
├── error (internal — use api::KgError)
├── graph:: (internal — engine submodules)