ktx2
Parser for the ktx2 texture container format
0.5.0
4.8M downloads/mo
#4616 most downloaded on crates.io
BVE-Reborn/ktx2
What this package is like to depend on
Last release 4 months ago
19 Apr 2026
Release timing varies
gaps range from 4 months to 3.1 years
Most releases are documented
notes for 3 of 4 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
4 releases · first in 2021
1 release in the last 12 months
see the full history below
Release timeline
4 releases · Oct 2021 to Apr 2026Releases
latest 4-
0.5.019 Apr 2026Release notes
Open source →-
Added missing
VkFormatvariants toFormat(#39). -
Added shorthand
Readeraccessors:color_primaries(),transfer_function(),color_model(),is_alpha_premultiplied(),writer(), andbasic_dfd()(#43). -
Added DFD generation:
dfd::Basic::from_format()anddfd::Basic::from_format_with()for constructing basic DFD blocks from aFormat. -
Moved all Data Format Descriptor (DFD) types into new submodule called
dfdand renamed them to be more understandable.DfdBlock->dfd::BlockDfdHeader->dfd::BlockHeaderDfdBlockBasic->dfd::BasicDfdBlockHeaderBasic->dfd::BasicHeader
The following types moved into the
dfdmodule unchanged.ChannelTypeQualifiersColorModelColorPrimariesDataFormatFlagsSampleInformationTransferFunction
-
Added
dfd::Blockserialization:serialized_length(),to_bytes(),to_vec(),parse() -
dfd::Blockis now an owned enum (Basic(Basic)|Unknown { header, data }) instead of a borrowed struct -
dfd::BasicHeadermerged intodfd::Basic, which now owns itssample_information: Vec<SampleInformation>instead of providing a lazy iterator.dfd::BasicHeader::LENGTHis nowdfd::Basic::FIXED_LENGTH -
Reader::dfd_blocks()returns&[dfd::Block]instead ofimpl Iterator<Item = dfd::Block<'_>>
Release notes
Open source →Released 2026-04-19
- Added missing
VkFormatvariants toFormat(#39). - Added shorthand
Readeraccessors:color_primaries(),transfer_function(),color_model(),is_alpha_premultiplied(),writer(), andbasic_dfd()(#43). - Added DFD generation:
dfd::Basic::from_format()anddfd::Basic::from_format_with()for constructing basic DFD blocks from aFormat. - Moved all Data Format Descriptor (DFD) types into new submodule called
dfdand renamed them to be more understandable.DfdBlock->dfd::BlockDfdHeader->dfd::BlockHeaderDfdBlockBasic->dfd::BasicDfdBlockHeaderBasic->dfd::BasicHeaderThe following types moved into thedfdmodule unchanged.ChannelTypeQualifiersColorModelColorPrimariesDataFormatFlagsSampleInformationTransferFunction
- Added
dfd::Blockserialization:serialized_length(),to_bytes(),to_vec(),parse() dfd::Blockis now an owned enum (Basic(Basic)|Unknown { header, data }) instead of a borrowed structdfd::BasicHeadermerged intodfd::Basic, which now owns itssample_information: Vec<SampleInformation>instead of providing a lazy iterator.dfd::BasicHeader::LENGTHis nowdfd::Basic::FIXED_LENGTHReader::dfd_blocks()returns&[dfd::Block]instead ofimpl Iterator<Item = dfd::Block<'_>>
-
-
0.4.024 Mar 2025Release notes
Open source →Released 2025-03-24
- Added a
key_value_datafunction to the reader that returns an iterator over key-value pairs (by @expenses). Reader::levelsnow returns an iterator overLevelstructs, which contain the bytes of the level as well as the uncompressed length (by @expenses).- Added
Header::from_bytes,Header::as_bytes,LevelIndex::from_bytesandLevelIndex::as_bytes(by @expenses). - Made the following fields public (by @expenses):
Header::LENGTHHeader::indexLevelIndex::LENGTHLevelIndex::byte_offsetLevelIndex::byte_lengthLevelIndex::uncompressed_byte_lengthLevel::dataLevel::uncompressed_byte_length
- Moved header data in
BasicDataFormatDescriptorintoBasicDataFormatDescriptorHeader. - Add
ASTC_n_SFLOAT_BLOCKvariants toFormat. - Rename Data Format Descriptor types to all start with
Dfd(by @cwfitzgerald):Reader::data_format_descriptors->Reader::dfd_blocksDataFormatDescriptor->DfdBlockDataFormatDescriptorHeader->DfdBlockHeaderBasicDataFormatDescriptor->DfdBlockBasicBasicDataFormatDescriptorHeader->DfdBlockHeaderBasic
Release notes
Open source →Released 2025-03-24
- Added a
key_value_datafunction to the reader that returns an iterator over key-value pairs (by @expenses). Reader::levelsnow returns an iterator overLevelstructs, which contain the bytes of the level as well as the uncompressed length (by @expenses).- Added
Header::from_bytes,Header::as_bytes,LevelIndex::from_bytesandLevelIndex::as_bytes(by @expenses). - Made the following fields public (by @expenses):
Header::LENGTHHeader::indexLevelIndex::LENGTHLevelIndex::byte_offsetLevelIndex::byte_lengthLevelIndex::uncompressed_byte_lengthLevel::dataLevel::uncompressed_byte_length
- Moved header data in
BasicDataFormatDescriptorintoBasicDataFormatDescriptorHeader. - Add
ASTC_n_SFLOAT_BLOCKvariants toFormat. - Rename Data Format Descriptor types to all start with
Dfd(by @cwfitzgerald):Reader::data_format_descriptors->Reader::dfd_blocksDataFormatDescriptor->DfdBlockDataFormatDescriptorHeader->DfdBlockHeaderBasicDataFormatDescriptor->DfdBlockBasicBasicDataFormatDescriptorHeader->DfdBlockHeaderBasic
- Added a
-
0.3.003 Feb 2022Release notes
Open source →Released 2022-02-03
Initial release under new ownership.
- Added support for Data Format Descriptor parsing (Rob Swain @superdump)
Changed
- Cleaned up a signifigant portion of the crate.
-
0.2.003 Oct 2021Nothing published for this version