Skip to main content

Crate rustbrain_core

Crate rustbrain_core 

Source
Expand description

§rustbrain-core

Project-scoped knowledge graph engine for software repositories: Markdown notes, optional Rust AST symbols, ranked full-text search, and graph-aware AI agent context.

§Quick start

use rustbrain_core::{Brain, ContextOptions, QueryOptions, Result};

fn main() -> Result<()> {
    let mut brain = Brain::open_or_create(".")?;
    brain.sync()?;
    let hits = brain.query_ranked("raft", &QueryOptions::human())?;
    let ctx = brain.context_for_prompt("explain raft", 1024)?;
    println!("{}", ctx.to_markdown());
    let _ = hits;
    Ok(())
}

§Published crates

PackageRole
rustbrain-coreThis library
rustbrainCLI (bootstrap, doctor, note, sync, …)

§Feature flags

FeatureDefaultPurpose
astyesTree-sitter Rust symbol extraction
obsidianyesWikiLinks, frontmatter, Canvas
mmapyesCSR graph.mmap
watchnoDebounced filesystem watcher
jshiftnoIn-place JSON helpers
fullnoAll optional features

Re-exports§

pub use bootstrap::bootstrap_noninteractive;
pub use bootstrap::bootstrap_workspace;
pub use bootstrap::BootstrapAction;
pub use bootstrap::BootstrapMode;
pub use bootstrap::BootstrapOptions;
pub use bootstrap::BootstrapReport;
pub use brain::Brain;
pub use context::ContextOptions;
pub use doctor::run_doctor;
pub use doctor::DoctorFinding;
pub use doctor::DoctorReport;
pub use doctor::DoctorSeverity;
pub use error::BrainError;
pub use error::Result;
pub use exporter::BrainExporter;
pub use exporter::BrainImporter;
pub use exporter::PortableBrainBundle;
pub use exporter::BUNDLE_VERSION;
pub use ignore::recommended_ignore_extras;
pub use ignore::write_rustbrainignore;
pub use ignore::IgnoreSet;
pub use indexer::WorkspaceIndexer;
pub use mmap::CsrCompiler;
pub use mmap::CsrMmapGraph;
pub use mmap::MMAP_VERSION;
pub use note::create_note;
pub use note::default_dir_for_type;
pub use note::slugify_title;
pub use note::NoteCreated;
pub use note::NoteNewOptions;
pub use query::QueryOptions;
pub use query::RankedHit;
pub use registry::GlobalRankedHit;
pub use registry::GlobalRegistry;
pub use storage::Database;
pub use storage::SCHEMA_VERSION;
pub use symbols::extract_symbol_refs;
pub use symbols::symbol_node_id;
pub use symbols::SymbolRef;
pub use types::xml_escape;
pub use types::ContextBundle;
pub use types::ContextNode;
pub use types::ContextRole;
pub use types::Edge;
pub use types::Node;
pub use types::NodeType;
pub use types::SyncStats;
pub use watch::WatchConfig;
pub use ast::compute_symbol_hash;
pub use ast::AstError;
pub use ast::CodeAstParser;
pub use ast::SymbolAnchor;
pub use obsidian::parse_frontmatter;
pub use obsidian::CanvasEdge;
pub use obsidian::CanvasNode;
pub use obsidian::Frontmatter;
pub use obsidian::ObsidianCanvas;
pub use mutator::extract_json_field_slice;
pub use mutator::update_json_field_inplace;
pub use watch::watch_workspace;

Modules§

ast
Tree-sitter Rust symbol extraction and BLAKE3 hashing.
bootstrap
Deterministic workspace bootstrap for mature repositories.
brain
Primary library façade: Brain.
context
Graph-aware AI context assembly with token budgeting.
doctor
Health checks for a project brain (rustbrain doctor).
error
Typed errors for the rustbrain library boundary.
exporter
Portable .brainbundle export and import (schema v1).
fts
FTS5 query helpers: escaping and safe MATCH construction.
id
Stable node ID scheme based on repository-relative path slugs.
ignore
Workspace ignore patterns for indexing (.rustbrainignore + optional .gitignore).
indexer
Workspace walker: Markdown notes, optional Canvas, optional Rust AST.
mmap
CSR graph mmap cache (format v1).
mutator
Optional jshift-backed in-place JSON field mutation helpers.
note
Create structured Markdown notes for the brain (note new).
obsidian
Obsidian-compatible WikiLink, frontmatter, and Canvas parsing.
query
Ranked hybrid query: FTS5 BM25 + tag / alias / title boosts.
registry
Global developer registry of rustbrain workspaces (XDG-aware).
storage
SQLite master store for rustbrain.
symbols
Symbol reference parsing and stable symbol node IDs.
types
Domain types for the rustbrain knowledge graph.
watch
Debounced filesystem watcher for live re-indexing.