Un analyseur statique pour explorer et comprendre les projets Rust avec une touche d'IA.
Un outil moderne pour analyser statiquement les dépôts Rust et générer des rapports détaillés compatibles avec les outils d'IA.
-
Analyse Complète du Code
- 📊 Détection des relations entre types
- 🔄 Analyse des dépendances transitives
- 🎯 Identification des traits implémentés
- 📝 Analyse des signatures de méthodes
-
Support Multi-Format
- 📦 Analyse de multiples systèmes de build
- 📋 Export en format JSON structuré
- 🤖 Génération de rapports compatibles IA
- 📑 Découpage intelligent des fichiers
-
Intégration GitHub
- 🔐 Support de l'authentification OAuth
- ⏱️ Gestion intelligente du rate limiting
- 🔄 Retry automatique des requêtes
- 📂 Navigation récursive des dépôts
# Installation
git clone https://github.com/LukaChassaing/rust-repo-analyzer.git
cd rust-repo-analyzer
cargo build --release
# Utilisation
cargo run https://github.com/utilisateur/repo
GITHUB_TOKEN=votre_token # Optionnel, augmente les limites d'API
graph TD
A[main.rs] --> B[analysis]
A --> C[api]
A --> D[export]
B --> E[file.rs]
B --> F[repository.rs]
C --> G[client.rs]
D --> H[project.rs]
// Analyse d'un dépôt avec export
let repo_url = "https://github.com/user/repo";
let analyzer = RepositoryAnalyzer::new();
let summary = analyzer.analyze(repo_url).await?;
// Export des résultats
let exporter = ProjectExporter::new(repo_url)?;
exporter.write_summary(&summary)?;
Les résultats sont exportés dans un format structuré :
output/repo_name/
├── analysis.json # Analyse complète en JSON
├── complete_analysis.txt # Fichier unique pour IA
└── chunks/ # Fichiers découpés
├── chunk_0.txt
└── ...
Les contributions sont les bienvenues ! Voici comment participer :
- Forkez le projet
- Créez une branche (
git checkout -b feature/amazing-feature
) - Committez vos changements (
git commit -m 'feat: ajout fonctionnalité'
) - Pushez (
git push origin feature/amazing-feature
) - Ouvrez une Pull Request
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.
- Reqwest pour les requêtes HTTP
- Serde pour la sérialisation
- Tokio pour l'async runtime
- La communauté Rust pour son soutien incroyable