Contribuer - ceketrumdev/Zdefender GitHub Wiki
Développement et Contribution 🚀
Nous sommes ravis que vous souhaitiez contribuer à ZDefender ! Ce projet est open source et repose sur la collaboration de la communauté. Que vous soyez développeur, testeur, rédacteur ou simplement passionné, toute contribution est la bienvenue.
Avant de commencer, veuillez lire attentivement les instructions ci-dessous pour comprendre comment contribuer efficacement.
Table des matières
- Introduction
- Premiers pas
- Structure du projet
- Contribution
- Bonnes pratiques
- Tests et validation
- Support et assistance
Introduction
ZDefender est un système avancé de protection contre les attaques DDoS, développé en Rust. Le projet est conçu pour être modulaire, performant et facile à maintenir. Nous encourageons les contributions sous toutes leurs formes : code, documentation, tests, rapports de bugs, etc.
Premiers pas
Prérequis
Avant de contribuer, assurez-vous que votre environnement de développement répond aux prérequis suivants :
- Système d'exploitation : Linux (testé sur Ubuntu 20.04+, Debian 11+, CentOS 8+).
- Langage : Rust 1.56 ou supérieur (installation).
- Dépendances :
libpcap-dev
build-essential
Installez les dépendances nécessaires avec les commandes suivantes (pour Ubuntu/Debian) :
sudo apt update
sudo apt install libpcap-dev build-essential
Installation locale
-
Clonez le dépôt :
git clone https://github.com/ceketrumdev/Zdefender.git cd Zdefender
-
Compilez le projet :
cargo build --release
-
Installez le service localement (facultatif) :
sudo ./install.sh
Pour plus de détails sur l'installation, consultez la section Installation dans le README.
Structure du projet
Voici une vue d'ensemble de la structure du projet :
zdefender/
├── src/
│ ├── models.rs # Structures de données fondamentales
│ ├── log_mode.rs # Configuration des modes de journalisation
│ ├── logger.rs # Gestion de la journalisation
│ ├── config.rs # Configuration et paramètres
│ ├── protection.rs # Coordination des stratégies de protection
│ ├── analyzer.rs # Analyse du trafic
│ ├── packet_inspection.rs # Inspection profonde des paquets
│ ├── detect_attacks.rs # Algorithmes de détection
│ ├── defender.rs # Actions de défense
│ └── service.rs # Gestion du service
├── tests/ # Tests unitaires et d'intégration
├── config/ # Fichiers de configuration par défaut
└── ...
Pour plus de détails sur chaque module, consultez la documentation de l'API.
Contribution
Rapport de bugs
Si vous rencontrez un bug, veuillez ouvrir une issue sur GitHub en suivant ces étapes :
- Assurez-vous que le bug n'a pas déjà été signalé en consultant les issues existantes.
- Créez une nouvelle issue en fournissant les informations suivantes :
- Titre clair et concis.
- Description détaillée du problème.
- Étapes pour reproduire le bug.
- Versions utilisées (OS, Rust, etc.).
- Logs pertinents (si disponibles).
Exemple de titre : [BUG] Échec de détection SYN Flood sur Ubuntu 22.04
.
Proposition de fonctionnalités
Si vous avez une idée pour améliorer ZDefender, ouvrez une discussion ou une issue :
- Créez une nouvelle issue avec le label
enhancement
. - Décrivez la fonctionnalité proposée, son utilité et son impact potentiel.
- Si possible, incluez un plan d'implémentation ou un exemple de code.
Exemple de titre : [FEATURE] Ajouter un mode passif pour les audits réseau
.
Soumission de pull requests
Les pull requests (PR) sont le moyen principal de contribuer au code source. Voici les étapes à suivre :
- Fork le dépôt et clonez-le localement.
- Créez une branche pour vos modifications :
git checkout -b feature/nom-de-la-fonctionnalite
- Effectuez vos modifications et testez-les localement.
- Soumettez une PR en suivant ces règles :
- Titre clair et descriptif.
- Description détaillée des modifications apportées.
- Référencez les issues pertinentes (par exemple,
Fixes #123
).
Assurez-vous que votre code respecte les bonnes pratiques.
Bonnes pratiques
Pour garantir la qualité du projet, veuillez respecter les directives suivantes :
-
Code propre et documenté :
- Utilisez des noms de variables et de fonctions explicites.
- Ajoutez des commentaires pour expliquer les parties complexes du code.
-
Tests :
- Ajoutez des tests unitaires pour toute nouvelle fonctionnalité.
- Assurez-vous que tous les tests passent avant de soumettre une PR :
cargo test
-
Formatage :
- Formatez votre code avec
rustfmt
:cargo fmt
- Formatez votre code avec
-
Linter :
- Vérifiez votre code avec
clippy
pour détecter les problèmes courants :cargo clippy
- Vérifiez votre code avec
Tests et validation
ZDefender utilise des tests unitaires et d'intégration pour garantir la fiabilité du code. Voici comment exécuter les tests :
-
Tests unitaires :
cargo test
-
Tests d'intégration (si disponibles) :
cargo test --features integration-tests
Assurez-vous que tous les tests passent avant de soumettre une PR. Si un test échoue, corrigez le problème ou signalez-le dans la description de votre PR.
Support et assistance
Si vous avez des questions ou besoin d'aide pour contribuer, voici quelques ressources utiles :
- Discussions GitHub: Posez vos questions ou partagez vos idées ici.
- Issues GitHub: Consultez les discussions existantes ou créez une nouvelle issue.
- Documentation complète: Consultez le wiki pour des guides détaillés.
Merci pour votre contribution à ZDefender ! Ensemble, nous pouvons rendre ce projet encore meilleur. 🚀