Crate scribe_graph

Crate scribe_graph 

Source
Expand description

§Scribe Graph - Advanced Code Dependency Analysis

High-performance graph-based code analysis with PageRank centrality computation. This crate provides sophisticated tools for understanding code structure, dependency relationships, and file importance through research-grade graph algorithms.

§Key Features

§PageRank Centrality Analysis

  • Research-grade PageRank implementation optimized for code dependency graphs
  • Reverse edge emphasis (importance flows to imported files)
  • Convergence detection with configurable precision
  • Multi-language import detection (Python, JavaScript, TypeScript, Rust, Go, Java)

§Graph Construction and Analysis

  • Efficient dependency graph representation with adjacency lists
  • Comprehensive statistics (degree distribution, connectivity, structural patterns)
  • Performance optimized for large codebases (10k+ files)
  • Concurrent processing support for multi-core systems

§Integration with FastPath Heuristics

  • Seamless V2 integration with existing heuristic scoring system
  • Configurable centrality weighting in final importance scores
  • Multiple normalization methods (min-max, z-score, rank-based)
  • Entrypoint boosting for main/index files

§Quick Start

use scribe_graph::{CentralityCalculator, PageRankConfig};
// Create centrality calculator optimized for code analysis
let calculator = CentralityCalculator::for_large_codebases()?;
 
// Example scan results (replace with actual scan results)
let scan_results = vec![
    MockScanResult { path: "main.rs".to_string(), relative_path: "main.rs".to_string() },
    MockScanResult { path: "lib.rs".to_string(), relative_path: "lib.rs".to_string() },
];
let heuristic_scores = HashMap::new();
 
// Calculate PageRank centrality for scan results
let centrality_results = calculator.calculate_centrality(&scan_results)?;
 
// Get top files by centrality
let top_files = centrality_results.top_files_by_centrality(10);
 
// Integrate with existing heuristic scores
let integrated_scores = calculator.integrate_with_heuristics(
    &centrality_results, 
    &heuristic_scores
)?;

§Performance Characteristics

  • Memory usage: ~2MB for 1000-file codebases, ~20MB for 10k+ files
  • Computation time: ~10ms for small projects, ~100ms for large codebases
  • Convergence: Typically 8-15 iterations for most dependency graphs
  • Parallel efficiency: Near-linear speedup on multi-core systems

Re-exports§

pub use centrality::CentralityCalculator;
pub use centrality::CentralityResults;
pub use centrality::CentralityConfig;
pub use centrality::ImportDetectionStats;
pub use centrality::IntegrationMetadata;
pub use centrality::IntegrationConfig;
pub use centrality::ImportResolutionConfig;
pub use centrality::NormalizationMethod;
pub use pagerank::PageRankComputer;
pub use pagerank::PageRankResults;
pub use pagerank::PageRankConfig;
pub use pagerank::PerformanceMetrics;
pub use pagerank::ScoreStatistics;
pub use graph::DependencyGraph;
pub use graph::ConcurrentDependencyGraph;
pub use graph::NodeMetadata;
pub use graph::DegreeInfo;
pub use graph::GraphStatistics;
pub use statistics::GraphStatisticsAnalyzer;
pub use statistics::GraphAnalysisResults;
pub use statistics::DegreeDistribution;
pub use statistics::ConnectivityAnalysis;
pub use statistics::StructuralPatterns;
pub use statistics::ImportInsights;
pub use statistics::PerformanceProfile;
pub use statistics::StatisticsConfig;
pub use graph::DependencyGraph as CodeGraph;
pub use builder::GraphBuilder;
pub use builder::BuildOptions;
pub use algorithms::GraphAlgorithms;
pub use algorithms::PathFinder;
pub use traversal::GraphTraversal;
pub use traversal::TraversalOrder;

Modules§

algorithms
Legacy Graph Algorithms (Stub Implementation)
builder
Legacy Graph Builder (Stub Implementation)
centrality
Centrality Calculator with Heuristics Integration
graph
Graph Data Structures for PageRank Centrality
pagerank
PageRank Algorithm Implementation for Code Dependency Analysis
statistics
Graph Statistics and Analysis for Dependency Graphs
traversal
Legacy Graph Traversal (Stub Implementation)
utils
Utility functions for PageRank analysis
visualization
Legacy Graph Visualization (Stub Implementation)

Structs§

GraphAnalysis
Legacy GraphAnalysis maintained for backward compatibility
PageRankAnalysis
Main entry point for PageRank centrality analysis