Read/write Compound File Binary (structured storage) files
Last release 6 months ago
13 Feb 2026
Release timing varies
gaps range from 2 weeks to 1.3 years
This project publishes no release notes
the list below is its commits, not an announcement
Nothing withdrawn
no release was ever pulled
9 years old
21 releases · first in 2017
Release timeline
21 releases since 2017Releases
- 0.14.013 Feb 2026
Release notes
This project publishes no release notes. Between
v0.13.0andv0.14.0there were 11 commits, 7 of them substantive:- perf: improve case-insensitive string compare
- perf: optimize MiniFAT free sector management
- feat: dynamic stream buffer
- feat: improve benchmark
- api cleanup, tried to stay close to initial api before I introduced stream options.
- Aggressively grow buffer on the read side.
- bench: add a 10000x0B case
- 0.13.027 Jan 2026
Release notes
This project publishes no release notes. Between
v0.12.1andv0.13.0there were 9 commits, 5 of them substantive:- feat: improve writing speed
- feat: use web_time instead of std::time to support wasm
- feat: allow specifying stream buffer size
- feat: stream option / create options
- feat: stream option / create options defaults
- 0.12.18 Nov 2025
Release notes
This project publishes no release notes. Between
v0.12.0andv0.12.1there were 12 commits, 9 of them substantive:- fix: clippy
- chore: run clippy on all targets
- fix: more compact debug printing by summarizing contiguous sections of same type
- fix: use Rust notation to clarify range includes endpoint
- refactor: use variable that is right there already
- fix: strip fat sectors beyond end of file
- refactor: split cfb fixes between validation.is_strict() and permissive
- fix: sync code comment with src
- chore: track Cargo.lock
- 0.12.014 Oct 2025
Release notes
This project publishes no release notes. Between
v0.11.0andv0.12.0there were 7 commits, 5 of them substantive:- deps: remove icu_casemap from dependencies
- clarify comment
- refactor: scope AsArray correctly
- deps: remove once_cell
- chore: add a MSRV to Cargo.toml
- 0.11.027 Jul 2025
Release notes
This project publishes no release notes. Between
v0.10.0andv0.11.0there were 40 commits, 29 of them substantive:- test for deterministic cfb files
- Introduce fn set_modified_time(), fn set_created_time() to override timestamps
- fmt
- Allow a DIFAT sector to be padded with zeroes
- Add test for zero-padded DIFAT sector
- Updated method for comparing directory entry names
- Refactored comparison so that new strings aren't allocated.
- Remove unnecessary byteorder dependency
- cargo fmt
- fix: clippy and warnings
- Derive more stdlib traits
- Add cross references to specification
- Fix red-black tree sorting function
- Apply suggestions from code review
- Adjusted formatting
- Update src/internal/path.rs
- test: synthesize FAT with inconsistent DIFAT_SECTOR entries
- fix: strip DIFAT_SECTOR that are beyond file end
- test: expand to cover additional sector allocations to inconsistent cfb
- feat: improved Header pretty printing
…and 9 more.
- 0.10.015 Apr 2024
Release notes
This project publishes no release notes. Between
v0.9.0andv0.10.0there were 16 commits, 11 of them substantive:- Make CompoundFile implement Send + Sync.
- Add tests for asserting Send + Sync in
- Allow DIFAT chains to end with FREESECT
- Remove test file
- Use latest runners for tests workflow
- fix: num_dir_sectors
- improve test
- Run linters after tests, instead of before
- Fix clippy warning
- fmt
- remove unused imports
- 0.9.024 Oct 2023
Release notes
This project publishes no release notes. Between
v0.8.1andv0.9.0there were 7 commits, 3 of them substantive:- Add
Debugimplementation toEntry - Add
Debugimplementation forCompoundFile - feat: upgraded clap in examples
- Add
- 0.8.120 Jun 2023
Release notes
This project publishes no release notes. Between
v0.8.0andv0.8.1there were 8 commits, 6 of them substantive:- Fix spec nonconformity, v3 must always have Number of Directory Sectors = 0, p.19
- Fix spec nonconformity that sets nonzero timestamps for streams
- Fix clippy warnings
- Forbid adjacent red nodes under strict validation
- Forbid non-zero stream creation/modified times under strict validation
- Forbid non-zero num_dir_sectors for V3 headers under strict validation
- 0.8.029 May 2023
Release notes
This project publishes no release notes. Between
v0.7.3andv0.8.0there were 12 commits, 8 of them substantive:- Allow strict or permissive validation (fixes #30)
- Refactor Stream struct into a separate submodule
- Add Timestamp struct to represent created/modified times internally
- Allow multiple open Streams at once (fixes #14)
- Fix clippy warning
- Update macOS test runner to macos-11
- Upgraded CI
- issues/34 Fixed validation in minialloc
- 0.7.35 Jul 2022
Nothing published for this version
- 0.7.227 Jun 2022
Nothing published for this version
- 0.7.120 Jun 2022
Nothing published for this version
- 0.7.08 May 2022
Nothing published for this version
- 0.6.129 Sept 2021
Nothing published for this version
- 0.6.08 Sept 2021
Nothing published for this version
- 0.5.021 Aug 2021
Nothing published for this version
- 0.4.023 Nov 2020
Nothing published for this version
- 0.3.125 Oct 2017
Nothing published for this version
- 0.3.07 Oct 2017
Nothing published for this version
- 0.2.028 Sept 2017
Nothing published for this version
- 0.1.020 Mar 2017
Nothing published for this version