Skip to main content

Crate gcf

Crate gcf 

Source
Expand description

GCF (Graph Compact Format) encoder and decoder for Rust.

GCF is a compact, text-only, graph-native wire format designed for MCP tool responses. It exploits referential identity (local IDs), graph topology (edges as references), and hierarchical grouping (distance-based sections) to achieve significant token savings over JSON while remaining human-readable.

Specification: https://github.com/blackwell-systems/gcf

§Quick Start

use gcf::{Payload, Symbol, Edge, encode, decode};

let p = Payload {
    tool: "context_for_task".to_string(),
    token_budget: 5000,
    tokens_used: 1847,
    pack_root: String::new(),
    symbols: vec![
        Symbol {
            qualified_name: "pkg.AuthMiddleware".to_string(),
            kind: "function".to_string(),
            score: 0.78,
            provenance: "lsp_resolved".to_string(),
            distance: 0,
            signature: String::new(),
            components: Default::default(),
        },
    ],
    edges: vec![],
};

let output = encode(&p);
let decoded = decode(&output).unwrap();
assert_eq!(decoded.tool, "context_for_task");

Re-exports§

pub use decode::decode;
pub use decode::DecodeError;
pub use decode_generic::decode_generic;
pub use delta::decode_delta;
pub use delta::encode_delta;
pub use delta::verify_delta;
pub use encode::encode;
pub use generic::encode_generic;
pub use generic::encode_generic_with_options;
pub use generic::GenericOptions;
pub use generic_delta::canonical_cell;
pub use generic_delta::decode_generic_delta;
pub use generic_delta::decode_generic_full;
pub use generic_delta::diff_generic_sets;
pub use generic_delta::encode_generic_delta;
pub use generic_delta::encode_generic_full;
pub use generic_delta::generic_pack_root;
pub use generic_delta::verify_generic_delta;
pub use generic_delta::GenericDeltaPayload;
pub use generic_delta::GenericDeltaSession;
pub use generic_delta::GenericSet;
pub use generic_delta::ReanchorPolicy;
pub use generic_delta::DEFAULT_REANCHOR_N;
pub use packroot::pack_root;
pub use packroot::pack_root_canonical_bytes;
pub use session::encode_with_session;
pub use session::Session;
pub use stream::StreamEncoder;
pub use stream::StreamOptions;
pub use stream_generic::GenericStreamEncoder;
pub use types::Components;
pub use types::DeltaPayload;
pub use types::Edge;
pub use types::Payload;
pub use types::Symbol;

Modules§

decode
decode_generic
GCF generic decoder: parses GCF generic or graph profile text into serde_json::Value.
delta
encode
generic
GCF generic encoder: serializes serde_json::Value into GCF generic profile.
generic_delta
Generic-profile delta encoding (SPEC Section 10a).
packroot
Graph pack root: content-addressed SHA-256 hash of a graph snapshot.
scalar
Common scalar grammar for GCF v2.0.
session
stream
stream_generic
types

Functions§

kind_abbrev
Returns the GCF abbreviation for a kind, or the original string if no abbreviation exists.
kind_expand
Returns the expanded kind for a GCF abbreviation, or the original string if not recognized.