Crate scribe

Crate scribe 

Source
Expand description

Β§Scribe - Advanced Code Analysis Library

Scribe is a comprehensive Rust library for code analysis, repository exploration, and intelligent file processing. It provides powerful tools for understanding codebases through heuristic scoring, graph analysis, and AI-powered insights.

Β§Features

  • πŸ” Intelligent File Analysis: Multi-dimensional heuristic scoring system
  • πŸ“Š Dependency Graph Analysis: PageRank centrality for code importance
  • ⚑ High-Performance Scanning: Parallel file system traversal with git integration
  • 🎯 Advanced Pattern Matching: Flexible glob and gitignore pattern support
  • 🧠 Smart Code Selection: Context-aware code bundling and relevance scoring
  • πŸ› οΈ Extensible Architecture: Plugin system for custom analyzers and scorers

Β§Quick Start

Add this to your Cargo.toml:

[dependencies]
scribe = "0.1.0"

Β§Basic Usage

use scribe_analyzer::prelude::*;
use std::path::Path;

// Configure analysis
let config = Config::default();
let repo_path = Path::new(".");

// Quick analysis - get most important files
let important_files = scribe_analyzer::analyze_repository(repo_path, &config).await?;

println!("Top 10 most important files:");
for (file, score) in important_files.top_files(10) {
    println!("  {}: {:.3}", file, score);
}

Β§Feature-Specific Usage

// For minimal installations with selective features
use scribe_analyzer::core::{Config, FileInfo};
use scribe_analyzer::scanner::{Scanner, ScanOptions};

let scanner = Scanner::new();
let options = ScanOptions::default();
let files = scanner.scan(".", options).await?;
println!("Found {} files", files.len());

Β§Feature Flags

Scribe uses feature flags to allow selective compilation:

  • default: Includes core, analysis, graph, scanner, patterns, selection
  • core: Essential types, traits, and utilities (always recommended)
  • analysis: Heuristic scoring and code analysis algorithms
  • graph: PageRank centrality and dependency graph analysis
  • scanner: High-performance file system scanning with git integration
  • patterns: Flexible pattern matching (glob, gitignore)
  • selection: Intelligent code selection and context extraction

Β§Feature Groups

  • minimal: Just core functionality
  • fast: Core + scanning and patterns for quick file operations
  • comprehensive: All features (same as default)
  • full: Alias for default

Β§Selective Installation Examples

# Minimal installation
scribe = { version = "0.1.0", default-features = false, features = ["core"] }

# Fast file operations only
scribe = { version = "0.1.0", default-features = false, features = ["fast"] }

# Analysis without graph features
scribe = { version = "0.1.0", default-features = false, features = ["core", "analysis", "scanner"] }

Β§Architecture

Scribe is built with a modular architecture:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        scribe                               β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚ scribe-core β”‚ β”‚scribe-scannerβ”‚ β”‚    scribe-patterns     β”‚ β”‚
β”‚  β”‚   (types,   β”‚ β”‚(file system  β”‚ β”‚  (glob, gitignore,     β”‚ β”‚
β”‚  β”‚ traits,     β”‚ β”‚ traversal,   β”‚ β”‚   pattern matching)    β”‚ β”‚
β”‚  β”‚ utilities)  β”‚ β”‚ git support) β”‚ β”‚                        β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚scribe-analysisβ”‚ β”‚scribe-graph β”‚ β”‚   scribe-selection     β”‚ β”‚
β”‚  β”‚ (heuristic  β”‚ β”‚  (PageRank  β”‚ β”‚ (intelligent bundling, β”‚ β”‚
β”‚  β”‚  scoring,   β”‚ β”‚ centrality, β”‚ β”‚  context extraction,   β”‚ β”‚
β”‚  β”‚ code metrics)β”‚ β”‚ dependency  β”‚ β”‚   relevance scoring)   β”‚ β”‚
β”‚  β”‚             β”‚ β”‚  analysis)  β”‚ β”‚                        β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Re-exportsΒ§

pub use pipeline::analyze_and_select;
pub use pipeline::select_from_analysis;
pub use pipeline::AnalysisOutcome;
pub use pipeline::SelectionOptions;
pub use pipeline::SelectionOutcome;
pub use report::format_bytes;
pub use report::format_number;
pub use report::format_timestamp;
pub use report::generate_cxml_output;
pub use report::generate_html_output;
pub use report::generate_json_output;
pub use report::generate_markdown_output;
pub use report::generate_repomix_output;
pub use report::generate_report;
pub use report::generate_text_output;
pub use report::generate_xml_output;
pub use report::get_file_icon;
pub use report::ReportFile;
pub use report::ReportFormat;
pub use report::SelectionMetrics;
pub use scribe_core as core;
pub use scribe_analysis as analysis;
pub use scribe_graph as graph;
pub use scribe_scanner as scanner;
pub use scribe_patterns as patterns;
pub use scribe_selection as selection;

ModulesΒ§

meta
Library metadata and build information
pipeline
prelude
Prelude module for convenient imports
presets
Pre-configured pattern matchers for common use cases
report
utils
Utility functions for common operations

StructsΒ§

AnalysisMetadata
Metadata about the analysis process
CentralityCalculator
Main centrality calculator with heuristics integration
CentralityResults
Complete centrality calculation results with comprehensive metadata
CodeBundle
CodeBundler
CodeContext
CodeSelector
Config
Main configuration structure for Scribe
ContextExtractor
ContextFile
DependencyGraph
Efficient dependency graph representation optimized for PageRank computation Uses integer-based internal representation for massive performance improvements
DocumentAnalysis
Document analysis results for scoring
FileInfo
Comprehensive file metadata structure
FileScanner
High-level scanner facade providing convenient access to all scanning functionality
GitignoreMatcher
Gitignore pattern matcher with full syntax support
GlobMatcher
High-performance glob pattern matcher with compilation caching
GraphAnalysis
Main entry point for PageRank centrality analysis
GraphStatistics
Graph statistics computed lazily and cached
HeuristicScorer
Main heuristic scorer that coordinates all scoring components
HeuristicSystem
Main entry point for the heuristic scoring system
HeuristicWeights
Configurable weights for different scoring components
ImportGraph
Dependency graph for centrality calculation
ImportGraphBuilder
Builder for constructing import graphs from scan results
LanguageDetector
High-performance language detector with multiple strategies
PageRankAnalysis
Main entry point for PageRank centrality analysis
PageRankResults
PageRank computation results with comprehensive metadata
PatternBuilder
Pattern matching builder for fluent API construction
PatternMatcher
Combined pattern matcher that integrates glob and gitignore patterns
PatternMatcherBuilder
Builder for creating pattern matchers with a fluent API
QuickMatcher
Quick pattern matching utility for simple use cases
QuotaManager
Manages budget quotas and density-greedy selection
RepositoryAnalysis
High-level repository analysis results
ScanOptions
Configuration options for scanning operations
ScanResult
Result of a scanning operation
Scanner
High-performance file system scanner with parallel processing
ScannerStats
Statistics about the scanning process
ScoreComponents
Individual components of the heuristic scoring system
SelectionEngine
Main entry point for intelligent code selection
TemplateDetector
Advanced template detection engine
TwoPassSelector
Main two-pass selection engine

EnumsΒ§

FileType
File type classification for analysis purposes
Language
Programming language classification
ScribeError
Comprehensive error type for all Scribe operations

ConstantsΒ§

CORE_VERSION
Current version of the Scribe library
VERSION
Current version of the main Scribe library

FunctionsΒ§

analyze_repository
Convenience function for quick repository analysis
apply_token_budget_selection
Apply the library’s tiered token budget selection to a set of files.
scan_repository
Convenience function for fast file scanning without deep analysis

Type AliasesΒ§

Result
Type alias for Results using ScribeError