formatos binários normalmente não são facilmente especificado; eles raramente são especificados em uma linguagem marcada alto nível, como ASN.1 (e tais especificações não pode ser retro-equipada para formatos binários já existentes). O projeto BDEC é uma tentativa de especificar os formatos binários arbitrários em uma linguagem de marcação, e criar um decodificador eo codificador automaticamente para esse formato binário dada a especificação de alto nível.
A especificação XML BDEC utiliza construções baseadas nas construções encontrados em ASN.1.
Uso:
A biblioteca BDEC consiste em uma biblioteca de decodificação e de comando / codificação de linha de decodificação e codificação de aplicações. Dada uma especificação, o aplicativo de linha de comando irá criar uma representação XML dos dados contidos no arquivo binário, e pode (para algumas representações) converter o XML de volta para binário.
A biblioteca é capaz de criar tais saída XML, ou, opcionalmente, um objecto que representa as construções do pitão contidos nos dados binários.
Por exemplo; a representação XML de um setor de inicialização FAT gerado pela execução:
dd if = / dev / sda1 bs = 512 count = 1 | decodificação bootsector.xml
Recursos :
- É fácil para escrever rapidamente (e ler) uma especificação
- Não há necessidade de escrever um decodificador personalizado (todas as condições de erro são tratadas internamente; decodificação ou passa ou falha) .
- O aplicativo de linha de comando permite a inspeção visual de arquivos problemáticos.
- Unicode ciente, little-endian / big-endian consciência
- Especifique campos para baixo para o bit (por exemplo: sinalizadores de bit individuais)
O que é novo nesta versão:.
- estruturas de dados de codificação para binária agora é suportado
- Isto inclui codificação de instâncias Python, XML e estruturas C.
- Especificações agora pode ser dividido em vários arquivos, simplesmente passando todos os arquivos de especificação para a decodificação / codificação / compilar programas.
O que é novo na versão 0.5.1:
- Esta versão relata a entrada correta quando há uma faltando entrada referenciado.
- Ela corrige um Mako compilar exceção ao executar a partir de um ovo (ignora .pyc arquivos).
O que é novo na versão 0.5.0:
- speedups Compilation (cerca de cinco vezes) e Python decodificação speedups (até 30 vezes).
- escolhas compiladas são agora representado por um 'enum' e uma 'união'.
- As expressões podem agora referenciar diretamente entradas de escolha para fazer referência a opção decodificado.
- Uma nova seção "dicas" foi adicionado na documentação, que inclui o ':'. Dica entrada escondida
- As entradas, cujos valores são passados dentro e fora de uma entrada devido a expressões foram corrigidos.
- endian campos pequenos com um valor esperado nas especificações compilados foram corrigidos.
O que é novo na versão 0.4.1:
- O projeto pode ser compilado para um ovo (incluindo templates).
- A C gerado pode ser usado a partir de programas em C ++ (por exemplo externo c).
- 'bdecode' e 'bcompile' são instalados como parte do ovo instalar.
- Os nomes dos tipos de linguagem C Criação são consistentes entre corridas.
O que é novo na versão 0.4.0:
- Esta versão permite que as entradas comuns a ser dado outro nome .
- Além disso, melhora a legibilidade do código C gerado.
- Não vai incluir estruturas de dados desnecessários em cabeçalhos C.
- Foi alterado para a LGPL.
- Não há atualizações de documentação, várias correções em decodificadores C, e uma correção para a especificação de MP3.
Comentários não encontrado