This content was automatically converted from the project's wiki Markdown to HTML. See the Basis Universal GitHub wiki for the latest content.
We gratefully acknowledge the Sponsors and Supporters of this software. Without their help, this project would not exist.
Unless otherwise explicitly indicated, all documents here are Copyright © 2016–2026 Binomial LLC. All rights reserved except as granted under the Apache 2.0 license.
Here are the Release Notes.
-peek command line
optionThe library and transcoder module is written in C++, but we do support a plain C-API that exposes all key functionality. The C API is FFI-friendly and also designed for WASM use (i.e. when the encoder library or transcoder is compiled as a WASM WASI module). This is the API we use for native Python and in our WASI WASM modules, but it's also callable from any language that supports plain C API's. Also see the pure C API example.
The C++ API offers direct access to all compressor functionality in the encoder library and the single .cpp source file transcoder module.
Python support is layered on top of our C API, which is documented above. We support calling this API from Python either via the libraries compiled as WASM WASI modules (single threaded only, so compression is slow, but transcoding is fast), or via native .so or .pyd files (which internally supports multithreaded compression). We've so far tested Python support under Windows and Ubuntu Linux with Python v3.12.3. More info is here, or see the Windows build instructions. The module first tries to load native .so's or .pyd's, and if this fails it'll try falling back to our WASM WASI modules via the wasmtime package. The native code's C API is completely made available to Python using pybind11.
The higher level Python API's are not stable yet (we are new to Python), but the lower level C API it depends on is quite stable. Several low-level tests, higher-level LDR/HDR compression and transcoding tests, and a simple example explode_ktx2 command line tool written entirely in Python are in the python directory.
btx command line tool, used for validation and
interoperability testing of .KTX2 container files containing Basis
Universal codec data.