Les formats binaires ne sont généralement pas facile de spécifier; ils sont rarement spécifiées dans un langage marqué de haut niveau tels que ASN.1 (et ces spécifications ne peuvent pas être rétro-équipés aux formats binaires existants). Le projet BDEC est une tentative de spécifier les formats binaires arbitraires dans un langage de balisage, et de créer automatiquement un décodeur et un encodeur pour ce format binaire donné la spécification de haut niveau.
La spécification XML BDEC utilise constructions basées sur les constructions trouvés en ASN.1.
Utilisation:
La bibliothèque BDEC compose d'un décodage / bibliothèque de codage et décodage des commandes en ligne et les applications de codage. Compte tenu de la spécification, l'application en ligne de commande va créer une représentation XML des données contenues dans le fichier binaire, et peut (pour certaines représentations) convertir le xml retour à binaire.
La bibliothèque est capable de créer une telle sortie xml, ou éventuellement d'un objet python représentant les constructions figurant dans les données binaires.
Par exemple; la représentation d'un secteur d'amorçage FAT générée par la course xml:
dd if = / dev / sda1 bs = 512 count = 1 | décodage bootsector.xml
Caractéristiques :
- Il est facile d'écrire rapidement (et lire) une spécification
- Pas besoin d'écrire un décodeur personnalisé (toutes les conditions d'erreur sont traitées en interne; décodage soit réussi ou échoué) .
- L'application en ligne de commande permet l'inspection visuelle de fichiers problématiques.
- Unicode courant, little-endian / big-endian conscience
- Spécifier les champs jusqu'à la bit (par exemple: drapeaux à un seul bit)
Quoi de neuf dans cette version:.
- des structures de données de codage à binaire est maintenant supporté
- Ceci comprend l'encodage à partir d'instances de Python, XML, et les structures C.
- Spécifications peuvent maintenant être divisées en plusieurs fichiers en les passant simplement tous les fichiers de spécification à l'décodage / encodage / compiler des programmes.
Quoi de neuf dans la version 0.5.1:
- Cette version signale l'entrée correcte quand il ya un manquant entrée référencé.
- Il corrige un Mako compiler exception lors de l'exécution d'un œuf (ignore .pyc fichiers).
Ce qui est nouveau dans la version 0.5.0:
- accélérations de compilation (environ cinq fois) et Python décodage accélérations (jusqu'à 30 fois).
- choix compilées sont maintenant représentés par un «énumération» et une «union».
- Les expressions peuvent maintenant directement référence entrées choix de référencer l'option décodé.
- la section un nouveau «conseils de a été ajouté dans la documentation, qui inclut le ':'. Entrée soupçon caché
- entrées dont les valeurs sont passées à la fois dans et hors d'une entrée en raison d'expressions ont été fixés.
- champs de Little Endian d'une valeur prévue dans les spécifications compilées ont été fixés.
Quoi de neuf dans la version 0.4.1:
- Le projet peut être compilé pour un oeuf (y compris modèles).
- Le C généré peut être utilisé à partir des programmes de C (par exemple externe c).
- 'bdecode »et« bcompile' sont installés dans le cadre de l'œuf installer.
- les noms de type de langage généré C sont cohérentes sur pistes.
Quoi de neuf dans la version 0.4.0:
- Cette version permet des entrées communes à donner un autre nom .
- Il améliore la lisibilité du code C généré.
- Il ne sera pas inclure des structures de données inutiles dans les entêtes C.
- Il a changé à la LGPL.
- Il ya des mises à jour de documentation, diverses corrections dans C décodeurs, et un correctif pour la spécification de MP3.
Commentaires non trouvées