bit is a library that makes it easier to dynamically manipulate data buffers containing fields that do not have octet (byte) boundaries. An example is the IP header, which is generally dealt with at compile time via bit fields in a structure. A key feature of the bit library is support for loading data formats described in XML files and dynamically parsing those fields at run time. This library was initially created to support reading various kinds of robotic device I/O (IR sensors, motors), but it has also been used for run time parsing of IP, TCP, UDP, and RTP headers.
| Tags | Software Development Libraries Scientific/Engineering Visualization User Interfaces Widget Sets |
|---|---|
| Licenses | GPLv3 |
| Implementation | C++ |
Recent releases


Release Notes: A few minor changes and a few code cleanups, but mostly a stable pre-0.5 release.


Release Notes: This minor release makes all bit::Data comparison operators const methods, allowing for comparison of const data items.


Release Notes: bit::Data was moved to a deep allocation mechanism to allow for a more natural copy syntax.


Release Notes: This release now supports both boost and std::tr1 smart pointers. The Buffer and RecordBuffer classes have been restructured, and xml support has been added to the Field/Record hierarchy. This release also contains a new record layout DTD that supports type hints. Roughly 150 unit tests have been added to the testing suite, along with other small changes and bugfixes.


Release Notes: A potential type-punning issue when changing endianness for doubles and floats has been fixed. The documentation distribution has been cleaned up a bit.