kaitaistruct
Kaitai Struct declarative parser generator for binary data: runtime library for Python
0.11
8.5M downloads/mo
#1621 most downloaded on PyPI
kaitai-io/kaitai_struct_python_runtime
What this package is like to depend on
Last release 11 months ago
08 Sep 2025
Release timing varies
gaps range from 2 months to 3.2 years
This project publishes no release notes
the list below is its commits, not an announcement
Nothing withdrawn
no release was ever pulled
10 years old
9 releases · first in 2016
1 release in the last 12 months
see the full history below
Release timeline
9 releases · Nov 2016 to Sep 2025Releases
latest 9-
0.1108 Sep 2025Commits, not release notes
This project publishes no release notes. Between
0.10andv0.11there were 49 commits, 44 of them substantive:- Remove redundant wheel dep
- setup.cfg: add
metadata.project_urls(#71) - Convert section title comments to code-folding regions
- Add write methods and classes (bit ints not implemented yet)
- Add write_bits_int_{be,le}() and write_align_to_byte()
- Invoke {,write_}align_to_byte() in all byte-aligned operations
- Emulate fixed-length stream when writing
- close(): flush unwritten bits before closing
- Update pos() and is_eof() for {read,write}bits_int*() parity
- LICENSE: bump copyright year
- Bump package version and API version to 0.11
- Bump package version to 0.11.dev1
- Add Python 3.11 tag to setup.cfg (#74)
- size(): fix returning
Nonein Python 2 for 'file' objects - Support writing to 'file' objects in Python 2
- is_eof(): fix for write-only streams
- write_bits_int_{be,le}(): raise EOF errors proactively
- write_align_to_byte(): clear bit buffer even if the write fails
- _write_bytes_not_aligned(): use
self._io.tell()in EOF check - Validation*Error: only include "at pos X: " if
iois notNone
…and 24 more.
-
0.1009 Jul 2022Commits, not release notes
This project publishes no release notes. Between
0.9and0.10there were 30 commits, 28 of them substantive:- Simplify bytes_strip_right and bytes_terminate implementations
- Fix pycodestyle violation
- Extend user-defined exception from Exception instead of BaseException to follow Python oficial docummentation and make it possible to catch it using a generic Exception
- Convert README markup to Markdown
- Rename README.{rst => md}
- Add PyPI package version badge
- Add more PyPI badges
- Delete badges "format", "wheel" and "implementation"
- README: cancel link of the "Python versions" badge
- Readme: remove "downloads", "python versions" link
- Minor improvements of int_from_byte() and byte_from_int()
- Rewrite read_bits_int_{be,le}()
- Fix "pycodestyle" violations from previous commit 427ea191
- Add Python 3.8 through 3.10 classifiers to metadata
- Deleted MANIFEST.in (#66)
- read_bytes(): check if the request is satisfiable, change error msg
- Add API_VERSION constant storing the runtime version as a tuple of ints (#49)
- Fix read_bytes() in Python 2 on 'file' objects
- read_bytes(): suppress PyCharm "Unbound local variable" inspection
- Fixed pylint warnings (#56)
…and 8 more.
-
0.915 Oct 2020Commits, not release notes
This project publishes no release notes. Between
0.8and0.9there were 36 commits, 24 of them substantive:- pypi manifesto, adds Construct to keywords for mutual promotion
- replaced struct.unpack with struct.Struct().unpack
- Added .editorconfig
- Fix whitespace
- Now we store the metadata in setup.cfg.
- Remove unused import (struct.unpack)
- relative seek(-1,CUR) instead of seek(tell()-1)
- Added resolve_enum, akin to Ruby implementation
- Fix EOF check to ensure that we have no bits left in temporary storage too; bumped version and copyright year
- Added system of exception
- Add LICENSE file
- Added ValidationLessThanError/ValidationGreaterThanError
- Use io.open() instead of open() for consistency
- Fix byte array operations
- Added pycodestyle check using GH Actions
- Fix style violations
- Installation and usage instructions now live only in Python notes
- Restrict compatible Python versions, as per https://github.com/kaitai-io/kaitai_struct/issues/695
- Add ValidationNotAnyOfError
- Add method read_bits_int_le
…and 4 more.
-
0.807 Feb 2018Commits, not release notes
This project publishes no release notes. Between
0.7and0.8there were 16 commits, 10 of them substantive:- Note explicit support for Python 3.6
- Fix blatant out-of-range iteration
- More helper methods -
from_bytesandfrom_io - cStringIO is ancient, modern python hides it
- raising errors cleanup
- read_bytes min amount is 0
- KaitaiStream code cleanup (#18)
- README converted into reST and updated
- Bump copyright year
- Reverting change that broken ~13 tests
-
0.722 Mar 2017Commits, not release notes
This project publishes no release notes. Between
0.6and0.7there were 8 commits, 8 of them substantive:- Removed string handling methods, added readBytesTerm
- Implemented bytes_strip_right and bytes_terminate
- Stop redefining built-in "bytes" thing
- Added PEP-0396-style version
- Fix code style: extra blank line required here
- Pumped year
- Derive version programmatically from kaitaistruct.py using version const
- Refreshed links to point to actual resources
-
0.604 Feb 2017Commits, not release notes
This project publishes no release notes. Between
0.5and0.6there were 9 commits, 7 of them substantive:- ensure_fixed_contents: removed unnecessary len, we would use expected length now
- Explicitly inherit object (Py2 compat)
- Fixed string formatting in exception messages
- Added simple implementation of read_bits_int
- Style fix: use isinstance() instead of type() for type check
- Implemented align_to_byte
- Pumped version
-
0.509 Nov 2016Nothing published for this version
-
0.4.1103 Nov 2016Nothing published for this version
-
0.4.1003 Nov 2016Nothing published for this version