xpress8-python
May 11, 2026 ยท View on GitHub
Cython bindings for Microsoft's Xpress8 compression library, as shipped in the Extensible Storage Engine (ESE) source tree. Released under the MIT License.
This is a sibling of xpress9-python.
Xpress8 is the variant used by Power BI's .pbix file format and by various
Windows-internal data stores; it is not wire-compatible with Xpress9.
Install
pip install xpress8
Or from source:
pip install -e .
Usage
from xpress8 import Xpress8
x = Xpress8() # max_original_size=65536, level=9
# Single-buffer round trip
compressed = x.compress(b"hello world " * 64)
restored = x.decompress(compressed, len(b"hello world " * 64))
# PBIX-style chunked stream: each chunk has a 4-byte LE header
# (uncompressed_size: u16, compressed_size: u16).
plain = x.decompress_chunked(chunked_blob)
Layout
xpress8.pyx Cython wrapper class
xpress8.pxd C declarations
src/Xpress8Wrapper.c thin C shim over the ESE stream API
src/xencode.c vendored from ESE _xpress
src/xdecode.c vendored from ESE _xpress
src/xencode.i vendored
src/xdecode.i vendored
include/Xpress8Wrapper.h shim API
include/xpress.h vendored
include/xprs.h vendored
include/xpress_compat.h small portability header for non-MSVC builds
License
MIT. The vendored sources retain their original Microsoft copyright headers.