Skip to content

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.

License

Notifications You must be signed in to change notification settings

LukaChassaing/rust_repo_analyzer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔍 Rust Repository Analyzer

Un analyseur statique pour explorer et comprendre les projets Rust avec une touche d'IA.

Rust License: MIT API

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.

✨ Fonctionnalités

  • 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

🚀 Pour Démarrer

# 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

Variables d'Environnement

GITHUB_TOKEN=votre_token  # Optionnel, augmente les limites d'API

📊 Structure du Projet

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]
Loading

💡 Utilisation Avancée

// 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)?;

📝 Format de Sortie

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
    └── ...

🤝 Contribution

Les contributions sont les bienvenues ! Voici comment participer :

  1. Forkez le projet
  2. Créez une branche (git checkout -b feature/amazing-feature)
  3. Committez vos changements (git commit -m 'feat: ajout fonctionnalité')
  4. Pushez (git push origin feature/amazing-feature)
  5. Ouvrez une Pull Request

📄 License

Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.

🙏 Remerciements

  • Reqwest pour les requêtes HTTP
  • Serde pour la sérialisation
  • Tokio pour l'async runtime
  • La communauté Rust pour son soutien incroyable

Made with ❤️ by Luka Chassaing

About

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.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages