Liens connexes

Dépêche modérée par

Dépêche éditée par

: Publication du projet Hachoir en version 1.0

Posté par Victor STINNER (Jabber id, page perso, ). Modéré le 13 juillet 2007.
0
Après un an et demi de développement, le projet Hachoir a abouti à une version 1.0 grâce à l'effort commun d'une trentaine de contributeurs. Ce projet est constitué d'une base de connaissance des 70 formats de fichiers les plus courants et d'une suite d'outils exploitant ces informations.

Hachoir est tolérant aux erreurs, ce qui permet de traiter des fichiers corrompus et/ou tronqués ; il est rapide parce qu'il ne lit que les informations nécessaires. Il est donc possible d'identifier le codec correspondant à un fichier vidéo dès que les premiers kilo-octets ont été téléchargés, ou d'accéder aux données stockées dans un fichier plus gros que la mémoire. Un cas d'utilisation est l'extraction des fichiers d'une archive (gzip, bz2, etc.) tronquée quand les outils standards refusent de la traiter.

De nombreux composants sont disponibles, notamment hachoir-metadata, dédié à l'extraction des méta-données (nom de l'auteur, durée d'une musique, taux de compression d'une image, etc) et servant d'alternative au programme file pour identifier le type d'un fichier; et hachoir-subfile, dédié à la récupération de fichiers depuis une partition disque corrompue ou une image de la mémoire.

> Lire la suite (9 commentaires, moyenne: 4,7).   [dépêche : 2918 caractères]

Pour l'installation, des paquets Debian, Gentoo, Mandriva, Arch et FreeBSD sont disponibles, mais toutes les distributions ne fournissent pas encore la version 1.0.

Le projet est constitué d'une flopée de composants bien distincts :
Pour les curieux, il existe également les projets expérimentaux : hachoir-grep, hachoir-strip et d'autres dans hachoir-tools (comme swf_extract.py : extraction des images et musiques d'un fichier SWF).

Le noyau, hachoir-core, offre une interface objet intuitive pour le développeur qui présente le fichier comme une arborescence de champs. La taille et la complexité du fichier ont peu d'impact sur les performances car la lecture est paresseuse : un champ n'est créé que lorsqu'il est demandé. Ceci permet d'ouvrir sans problème des fichiers de plusieurs dizaines de gigaoctets.

Hachoir est entièrement programmé en Python 2.4 et n'a aucune dépendance externe. La sécurité et la fiabilité sont améliorées d'une part par le choix du langage Python qui évite certaines classes de vulnérabilités comme les dépassements de tampon, d'autre part grâce à des tests automatisés intensifs. La base de code comporte de nombreux tests unitaires et fonctionnels, et une campagne de test par la technique du fuzzing a permis de corriger bon nombre de bugs garantissant une bonne robustesse de l'outil.

Les gens intéressés pour contribuer peuvent rapporter des bugs, c'est déjà une aide importante. Une meilleure intégration dans Windows et Linux (ex: mieux intégrer hachoir-metadata à Nautilus et Konqueror) serait appréciable. Enfin, maintenant que le noyau dur du projet est stable et parfaitement fonctionnel, il faudrait retravailler les interfaces utilisateurs. Exemple : écrire une interface graphique (Gtk et/ou Qt) pour hachoir-metadata, surement triviale à écrire.

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

Intégration au desktop

Posté par ptifeth (page perso, ) le 13/07/2007 à 15:12. (lien). Évalué à 4.

Pensez-vous qu'un ioslave basé sur hachoir-subfile puisse avoir des performances suffisantes pour une utilisation en desktop ? Quels seraient les goulots d'étranglement sinon ?

Je m'imagine déjà éditer les strings d'un programme en mémoire depuis mon explorateur de fichiers préféré...

Fichier Excel

Posté par PhE () le 13/07/2007 à 21:14. (lien). Évalué à 2.

Par curiosité, j'avais soumis à Hachoir un fichier Excel endommagé.
Il m'a indiqué être en présence d'un conteneur FAT avec tout un tas de blocs au contenu binaire.
Est-ce la vision qu'à Hachoir d'un objet OLE ?
Est-ce que mon fichier était trop endommagé pour être analysé correctement ?

Idéalement, je m'attendais à voir la structure du classeur, des modules de codes VBA, etc ...
Je rêve ou c'est moi qui ai loupé quelque chose ?

Féliciations Haypo !!

Posté par Anthony Dahanne (page perso, ) le 16/07/2007 à 09:15. (lien). Évalué à 4.

J'ai hate de tester çà dès que je reviens sur mon poste Linux (ce soir, ouf !)
Excellente idée que celle d'une interface Ajax !
Bon courage et bonne continuation sur Hachoir Victor !

Revenir en haut de page