Skip to main content

Crate okf_core

Crate okf_core 

Source
Expand description

§okf-core: the Open Knowledge Format, in pure Rust

A dependency-free implementation of the Open Knowledge Format (OKF) v0.2, Google’s open, human- and agent-friendly format for representing knowledge as a directory of markdown files with YAML frontmatter.

OKF is intentionally minimal (“if you can cat a file, you can read OKF; if you can git clone a repo, you can ship it”), so this crate implements it with the standard library alone: its own YAML-subset parser, a markdown link scanner, and a directory walker. There are no third-party dependencies. The companion okf crate re-exports this entire library and ships the okf command-line tool.

§Model

  • A Bundle is a directory tree of markdown files.
  • A Concept is one markdown Document = YAML Frontmatter + body.
  • A ConceptId is a concept’s path within the bundle, minus .md.
  • Concepts relate via markdown links; the bundle exposes the resulting graph and backlinks.
  • index.md directory listings are generated by index.
  • log.md histories are parsed by log.
  • Conformance checking and linting live in the companion okf-validator crate.

§What v0.2 adds

v0.2 makes provenance, trust, lifecycle, and attestation first-class. Every one of the new keys is optional, and absence is meaningful rather than invalid, so a v0.1 document is still a conformant v0.2 document.

ConcernFrontmatterModule
Provenancesources, usage_windowprovenance
Trustgenerated, verified, trust tierstrust
Lifecyclestatus, stale_aftertrust
Identitythe actor conventionactor
Attestationruntime, parameters, computation, executor, attestercomputation
Attribution[^label] footnotes keyed to sources[].idfootnotes

Two v0.1 constructs are superseded but still readable, since a v0.2 consumer is expected to handle v0.1 bundles: timestamp gives way to generated.at (see Frontmatter::content_changed_at), and the body # Citations list gives way to sources (see Document::citations).

§Example

use okf_core::{Bundle, ConceptId};

let bundle = Bundle::load("./my_bundle")?;
println!("{} concepts", bundle.len());

let id = ConceptId::parse("tables/orders")?;
for link in bundle.links_from(&id) {
    println!("{} -> {} (exists: {})", id, link.target, link.exists);
}

Reading a concept’s trust signals:

use okf_core::{Document, TrustTier};

let doc = Document::parse(
    "---\n\
     type: Metric\n\
     title: Revenue\n\
     status: stable\n\
     generated: { by: reference_agent/gemini-2.5-pro, at: 2026-06-20T22:53:05Z }\n\
     verified: { by: human:ahormati, at: 2026-06-25T09:00:00Z }\n\
     stale_after: 2026-12-31\n\
     ---\n\n\
)
.unwrap();

// A bare `verified` mapping counts as a one-element list.
assert_eq!(doc.frontmatter.verified().len(), 1);
assert_eq!(doc.frontmatter.trust_tier(), TrustTier::HumanReviewed);
assert_eq!(doc.frontmatter.status().to_string(), "stable");

Modules§

actor
The actor convention: who or what performed an action.
bundle
Loading and traversing an OKF bundle: a directory tree of markdown files.
computation
Attested Computation concepts.
concept_id
Concept identifiers and their mapping to/from file paths.
date
Calendar dates and ISO-8601 datetimes for the trust and lifecycle families.
diff
Bundle-level diff: an OKF-semantics diff between two Bundles.
document
The OKF concept document: YAML frontmatter + markdown body.
error
Error types for the crate.
fix
Automated remediation and migrations for OKF concepts, bundles, and logs.
footnotes
Markdown footnotes, the carrier for per-claim attribution.
frontmatter
Typed, order-preserving access to a concept’s YAML frontmatter.
index
Generation of index.md directory listings.
links
Markdown link extraction, classification, and path-valued fields.
log
Parsing and building log.md update histories.
provenance
Provenance: the sources frontmatter family and per-claim attribution.
scaffold
Scaffolding and initialization utilities for OKF bundles and concept documents.
trust
Trust and lifecycle frontmatter: generated, verified, status, and stale_after.
yaml
A small, dependency-free YAML subset used for OKF frontmatter.

Structs§

Actor
A parsed actor string, retaining the text exactly as written.
AttestedComputation
The contract of an Attested Computation concept: its top-level frontmatter plus the computation itself.
Attester
The deterministic check.
Attribution
A body claim attributed to a source, produced by joining footnote labels to sources[].id.
Bundle
A loaded OKF bundle.
BundleDiff
A bundle-level diff.
BundleFixReport
Remediation report for a whole bundle.
BundleInitOptions
Options for initializing a new OKF bundle.
Citation
A numbered entry under a legacy v0.1 # Citations heading.
Concept
A single concept within a bundle (one markdown document).
ConceptId
A concept identifier: an ordered list of path segments (e.g. ["tables", "users"] for tables/users).
ConceptIdError
Error returned when a concept-id segment is malformed.
ConceptOptions
Options for creating a new concept document.
Date
A proleptic-Gregorian calendar date (YYYY-MM-DD).
DateField
A frontmatter date field: the scalar exactly as written, plus its parse.
DateTime
An ISO-8601 datetime: a Date, an optional time of day, and an optional UTC offset.
DateTimeField
A frontmatter datetime field: the scalar exactly as written, plus its parse.
Document
A parsed OKF concept document.
Executor
How the computation is run.
FileFixReport
Remediation report for a single file.
FixOptions
Options controlling automated remediation and migration.
FootnoteDef
A [^label]: text definition line.
FootnoteRef
A [^label] reference in the body prose.
Frontmatter
A concept’s frontmatter: an ordered key/value mapping with typed accessors for the well-known OKF fields.
FrontmatterChange
Frontmatter key changes for a concept present in both bundles.
Generated
How the current content was produced: generated: { by, at }.
InlineComputation
A computation held in the body under # Computation.
Link
A markdown link found in a concept body.
Log
A parsed log.md.
Mapping
An ordered YAML mapping (preserves insertion / source order, like the reference implementation which dumps with sort_keys=False).
Parameter
One typed, named hole an agent may fill.
Remediation
A single remediation action applied to a document or file.
Rename
A rename detected by matching content hash between a removed and an added concept.
ResolvedLink
A cross-link from one concept to another, after resolution.
ResolvedSource
A sources entry resolved against the bundle.
Source
One entry in the sources list: a material the concept derives from.
TrustChange
A trust tier or status change for a concept present in both bundles.
UsageWindow
The date/time range that frames usage_count.
Verification
A single verification event: { by, at }.

Enums§

ActorKind
The category an actor string falls into.
BundleError
Errors raised when loading or operating on a bundle on disk.
ComputationSource
Where the sanctioned computation lives.
DocumentError
Errors raised when parsing or validating a single OKF concept document.
LinkKind
How a link target is interpreted.
RemediationKind
What kind of remediation or migration was applied.
ResourceKind
What kind of thing a sources[].resource names.
Status
A concept’s lifecycle status. An absent key means Status::Stable.
TrustTier
A concept’s trust tier, derived from verified.
Value
A parsed YAML value.

Constants§

ATTESTED_COMPUTATION_TYPE
The type value that marks a concept as an Attested Computation.
KNOWN_FRONTMATTER_KEYS
Every frontmatter key the specification gives a meaning to, across all families. Anything else is a producer extension.
LEGACY_FRONTMATTER_KEYS
Keys v0.2 retired but consumers may still encounter in v0.1 documents. timestamp is superseded by generated.at.
OKF_VERSION
The OKF specification version this crate implements.
PREFERRED_KEY_ORDER
The key order the reference implementation writes documents in (its _PREFERRED_KEY_ORDER): identity first, then lifecycle, trust, and provenance.
RECOMMENDED_FRONTMATTER_KEYS
Keys a producer should fill in before publishing, in the order Document::missing_recommended reports them.
REQUIRED_FRONTMATTER_KEYS
The only frontmatter key OKF always requires: a concept carrying nothing but type is fully conformant.
RESERVED_FILENAMES
Reserved filenames with defined meaning at any level.
SUPPORTED_OKF_VERSIONS
Specification versions this crate can consume.

Functions§

bundle_diff
Computes the OKF-semantics diff between two bundles.
create_concept
Creates a new concept markdown file with proper frontmatter and heading.
default_author
Returns a default author actor string based on system user environment variables or "human:author".
init_bundle
Initializes a new OKF bundle at root with index.md, log.md, and optionally an initial concept.
remediate_bundle
Remediates an entire bundle directory tree.
remediate_document
Remediates and migrates a single Document.
remediate_file
Remediates a single file on disk.
remediate_log
Remediates a parsed log.md file (consolidating duplicate date headings).