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(
¢rality_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§
- Graph
Analysis - Legacy GraphAnalysis maintained for backward compatibility
- Page
Rank Analysis - Main entry point for PageRank centrality analysis