Nestačilo by standardní encoding/binary? (https://pkg.go.dev/encoding/binary)
Nebo to je jeden z těch, co toho moc neumí.? :) Kromě automatického zarovnání podle platformy tam imho nic nechybí.
Nejprve poděkování autorovi za článek (a nejen tento) a malá poznámka. Pokud máte v úmyslu používat "struct" pro dekódování binárních formátů, pak zvažte použití "netstruct".
Ve "struct" totiž reálně chybí (a nejspíše bude i vždy chybět - viz https://bugs.python.org/issue29328) podpora pro řetězce "proměnné" délky (ve smyslu "flexible array member") .
Místo struct.Struct("b").unpack(bytes) lze použít struct.unpack("b", bytes). Ale lepší je použít struct.unpack_from kterému lze dát offset od kterého číst data. Lze se tak vyhnout zbytečnému kopírování částí vstupního souboru. Také neháže výjimku pokud nejsou zkonzumovány všechny vstupní bajty.
Velmi dobré balíčky pro čtení binárních dat jsou https://construct.readthedocs.io a https://kaitai.io/.
5. 1. 2025, 13:13 editováno autorem komentáře