Tibs - Binary Data Handling
tibs is a sleek Python library designed for creating, interpreting, and manipulating binary data. Written 100% in Rust for excellent performance, it provides efficient handling of bit sequences. The current version is 0.6.0. Releases appear to be event-driven rather than on a fixed cadence, with a focus on performance and robust binary data operations.
Warnings
- gotcha Instances of `Tibs` are immutable. Repeatedly concatenating or appending to a `Tibs` instance using operators like `+=` is an anti-pattern, as it creates a new instance in memory on each operation, leading to poor performance.
- gotcha When constructing `Tibs` instances directly with string representations of binary or hexadecimal values (e.g., `Tibs('0110')`), you must include the '0b' or '0x' prefixes. Methods like `Tibs.from_bin()` or `Tibs.from_hex()` handle this prefixing implicitly.
Install
-
pip install tibs
Imports
- Tibs
from tibs import Tibs
- Mutibs
from tibs import Mutibs
Quickstart
from tibs import Tibs, Mutibs
# Create immutable Tibs instances
a = Tibs.from_bin('0110')
b = Tibs('0xabc') # Constructor can infer from string/bytes
c = Tibs.from_bytes(b'\xff\x00')
print(f"Tibs from binary: {a.to_bin()}")
print(f"Tibs from hex: {b.to_hex()}")
print(f"Tibs from bytes: {c.to_hex()}")
# Create a mutable Mutibs instance
muti = Mutibs.from_bin('1010')
muti.append('01')
print(f"Mutable Tibs after append: {muti.to_bin()}")
# Combine multiple Tibs instances efficiently
data_parts = [Tibs('0b1'), Tibs('0b010'), Tibs('0b1100')]
combined_tibs = Tibs.from_joined(data_parts)
print(f"Combined Tibs: {combined_tibs.to_bin()}")