Tous les changements notables du projet seront documentes dans ce fichier.
Le format suit l'esprit de Keep a Changelog, avec des sections simples par type de changement.
- Ajout de
METHODE_AJOUT_PROTOCOLE.md, qui documente la methode de travail pour ajouter un nouveau protocole. - Ajout d'une strategie zero-copy pour les nouveaux parseurs : payloads et champs variables en references, pas de copies inutiles dans le chemin de parsing.
- Ajout d'une exigence de rustdoc avec schema Mermaid
packet-betapour le type principal de chaque nouveau protocole. - Ajout d'erreurs applicatives dediees pour HTTP, DHCP, COTP et S7Comm.
- Ajout de modules
src/checks/application/*etsrc/checks/internet/profinet.rspour centraliser les validations des parseurs. - Ajout de modules d'erreurs dedies pour AMS, GIOP, Modbus/TCP, OPC UA, SRVLOC, TLS et Profinet.
- Ajout de checks dedies pour ARP, IPv4, IPv6, UDP, DHCPv6, QUIC, DNS, Bitcoin, MQTT, Modbus/TCP et SRVLOC.
- Alignement des parseurs HTTP, DHCP, COTP et S7Comm vers une interface
TryFrom<&[u8]>. - Remplacement des erreurs de parsing non typees (
bool,&'static str) par des erreurs dediees. - Conservation des fonctions helper existantes quand elles restent utiles, mais avec des types d'erreur explicites.
- Correction d'un commentaire Bitcoin obsolete qui mentionnait encore un retour
bool. - Deplacement des validations nommees
check_*,validate_*etensure_*hors desrc/parse. - Deplacement des enums d'erreur restantes hors des fichiers de parsing vers
src/errors. - Mise a jour des parseurs AMS, Bitcoin, COTP, DHCP, DNS, GIOP, HTTP, Modbus/TCP, MQTT, OPC UA, S7Comm, SRVLOC, TLS et Profinet pour utiliser les modules
checkseterrors. - Migration des validations inline prioritaires hors des parseurs Data Link, Internet, Transport, DNS, DHCPv6, QUIC, Bitcoin, MQTT, Modbus/TCP et SRVLOC.
- Deplacement de la validation
dns_flagsdepuis le module de parsing DNS verssrc/checks/application/dns.rs.
cargo fmtpasse.cargo testpasse avec 258 tests unitaires et 13 doctests.
Les versions precedentes n'etaient pas encore documentees dans un changelog dedie. Consulter l'historique Git pour les changements plus anciens.