# CHANGES
## [Unreleased] - ReleaseDate
## [0.15.1] - 2024-07-16
* Bugfix: unsafe precondition(s) violated: slice::from_raw_parts requires the pointer to be aligned and non-null, and the total size of the slice not to exceed isize::MAX [#129]
[#129] https://github.com/OSSystems/compress-tools-rs/pull/129
## [0.15.0] - 2024-07-02
* Raise MSRV to 1.65.0
* Add next_header() to ArchiveIterator [#122]
* Fix use slice::from_raw_parts only if size > 0 [#126]
* Add feature "static" to allow static linkage for unix/macos [#127]
[#122]: https://github.com/OSSystems/compress-tools-rs/pull/122
[#126]: https://github.com/OSSystems/compress-tools-rs/pull/126
[#127]: https://github.com/OSSystems/compress-tools-rs/pull/127
## [0.14.3] - 2023-05-26
* Allow passing a closure for `ArchiveIterator::filter` [#115]
[#115]: https://github.com/OSSystems/compress-tools-rs/pull/115
## [0.14.2] - 2023-05-23
* Fix call stack runtime error on filter from `ArchiveIterator` [#113]
[#113]: https://github.com/OSSystems/compress-tools-rs/pull/113
## [0.14.1] - 2023-03-21
* Add illumos compilation support [#99]
* Fix segmentation when failing to decode entry [#100]
* Wrap return value of `archive_write_data_block(3)` [#108]
* Allow to filter ArchiveIterator entries [#109]
* Add debug asserts to ArchiveIterator::next() [#110]
* examples: add example using ArchiveIterator [#111]
* tests: port from unmaintained crate encoding to encoding_rs [#112]
[#99]: https://github.com/OSSystems/compress-tools-rs/pull/99
[#100]: https://github.com/OSSystems/compress-tools-rs/issues/100
[#108]: https://github.com/OSSystems/compress-tools-rs/pull/108
[#109]: https://github.com/OSSystems/compress-tools-rs/pull/109
[#110]: https://github.com/OSSystems/compress-tools-rs/pull/110
[#111]: https://github.com/OSSystems/compress-tools-rs/pull/111
[#112]: https://github.com/OSSystems/compress-tools-rs/pull/112
## [0.14.0] - 2022-11-20
* Raise MSRV to 1.59.0
* Change to 2021 edition
* Drop lifetime annotations of reader parameter in `ArchiveIterator::from_read`
and `ArchiveIterator::from_read_with_encoding` [#90]
* Forward name decode failures in `ArchiveIterator::from_read` and
`ArchiveIterator::from_read_with_encoding` instead of panicking [#91]
* Increase internal used buffersize [#93], fixing sub-directories as file
names. [#89]
[#89]: https://github.com/OSSystems/compress-tools-rs/issues/89
[#90]: https://github.com/OSSystems/compress-tools-rs/pull/90
[#91]: https://github.com/OSSystems/compress-tools-rs/pull/91
[#93]: https://github.com/OSSystems/compress-tools-rs/pull/93
## [0.13.0] - 2022-08-03
* Add `libc::stat` information to `ArchiveContents::StartOfEntry` [#88]
[#88]: https://github.com/OSSystems/compress-tools-rs/pull/88
## [0.12.4] - 2022-08-01
* Avoid failing uncompressing files in case of ARCHIVE_WARN returns [#85]
* Add `_with_encoding` suffix method. [#59]
[#59]: https://github.com/OSSystems/compress-tools-rs/pull/59
[#85]: https://github.com/OSSystems/compress-tools-rs/issues/85
## [0.12.3] - 2022-06-22
* ci: windows: Use pre-installed vcpkg and fix build [#81]
* Raise MSRV to 1.49.0
* Upgrade tokio-util to 0.7.0
* Fix absolute paths being extracted outside of destination directory [#83]
[#81]: https://github.com/OSSystems/compress-tools-rs/issues/81
[#83]: https://github.com/OSSystems/compress-tools-rs/issues/83
## [0.12.2] - 2021-09-23
* Fix locale drop causing crash on a system without locale [#71]
[#71]: https://github.com/OSSystems/compress-tools-rs/issues/71
## [0.12.1] - 2021-09-03
## [0.12.0] - 2021-08-03
* Use "lossy" strings for invalid filenames. [#59]
* Fix zip-slip vulnerability. [#63]
* Fix memory leak when dropping locale guard. [#64]
* Add `ArchiveIterator` type. [#65]
[#59]: https://github.com/OSSystems/compress-tools-rs/issues/59
[#63]: https://github.com/OSSystems/compress-tools-rs/issues/63
[#64]: https://github.com/OSSystems/compress-tools-rs/issues/64
[#65]: https://github.com/OSSystems/compress-tools-rs/issues/65
## [0.11.2] - 2021-05-29
* Bump MSRV to 1.46. [#54]
* Install VcPkg/Pkg-Config depending on target env. [#56]
* Fix invalid display attribute causing build error [#58]
[#54]: https://github.com/OSSystems/compress-tools-rs/issues/54
[#56]: https://github.com/OSSystems/compress-tools-rs/pull/56
[#58]: https://github.com/OSSystems/compress-tools-rs/pull/58
## [0.11.1] - 2021-03-07
* Fix when uncompressing 7z archive to a directory. [#53]
[#53]: https://github.com/OSSystems/compress-tools-rs/issues/53
## [0.11.0] - 2021-03-03
### Fixed
* Fix unpacking of filenames with contains UTF-8 characters. [#52]
* Fixed the build script so it enforce the use of `libarchive` 3.2.0 or newer.
[#52]: https://github.com/OSSystems/compress-tools-rs/pull/52
## [0.10.0] - 2021-02-11
### Changed
* Update MSRV to 1.44.0.
### Fixed
* Fix error when uncompressing specific files from 7z archives. [#48]
[#48]: https://github.com/OSSystems/compress-tools-rs/pull/48
## [0.9.0] - 2020-12-25
* Upgrade `tokio` to 1.0.0 release.
## [0.8.0] - 2020-10-19
### Changed
* Upgrade `tokio` to 0.3.0 release.
## [0.7.1] - 2020-09-15
### Fixed
* Fix two memory leaks related to entry pathname and hardlink handling. [#33]
* Fix a memory leak found in the error handling code path. [#33]
[#33]: https://github.com/OSSystems/compress-tools-rs/pull/33
## [0.7.0] - 2020-09-05
### Added
* Optional async support
* Uncompress service example and its async-std and Tokio counterparts
### Removed
* Removed `Error::NullEntry` as it is unused.
### Changed
* Replaced `Error::FileNotFound` with `std::io::Error` using the
`std::io::ErrorKind::NotFound`.
* Change error enum names to more meaninful ones. The following errors were
renamed as:
- `ExtractionError` to `Extraction`
- `ArchiveNull` to `NullArchive`
- `EntryNull` to `NullEntry`
* Change MSRV to 1.42.0
## [0.6.0] - 2020-06-28
### Added
* `list_archive_file` allow for getting the list of files included in an archive. [#22]
### Changed
* Change MSRV to 1.40.0
[#22]: https://github.com/OSSystems/compress-tools-rs/issues/22
## [0.5.1] - 2020-05-12
### Changed
* Lower required version of libarchive to 3 instead of 3.2.2 [#21]
[#21]: https://github.com/OSSystems/compress-tools-rs/pull/21
## [0.5.0] - 2020-04-30
### Added
* Support for windows build through `vcpkg` [#19]
[#19]: https://github.com/OSSystems/compress-tools-rs/pull/19
## [0.4.0] - 2020-04-17
### Added
* `uncompress_data` (previously `uncompress_file`) and `uncompress_archive_file`, on success, now return the ammount of bytes they have uncompressed [#16]
[#16]: https://github.com/OSSystems/compress-tools-rs/pull/16
### Changed
* More generic read/write api (should not be a breaking change) [#14]
* `Read` and `Write` arguments are no longer required to be a mutable reference,
which allows for more tyes to be used, as `&mut [u8]`
* Renamed `uncompress_file` function to `uncompress_data` [#17]
[#14]: https://github.com/OSSystems/compress-tools-rs/pull/14
[#17]: https://github.com/OSSystems/compress-tools-rs/pull/17
## [0.3.1] - 2020-04-14
### Fixed
* Fixed outdated README
## [0.3.0] - 2020-04-14
### Added
* Add crate level error type [#4]
### Changed
* API fully Reworked [#6]
* Archive and uncompression is now handled with ffi calls to libarchive [#6]
* Improved documentation, tests and examples
[#4]: https://github.com/OSSystems/compress-tools-rs/pull/4
[#6]: https://github.com/OSSystems/compress-tools-rs/pull/6
## [0.2.0] - 2019-04-29
### Added
* Add support for Zip compressed archives [#3]
[#3]: https://github.com/OSSystems/compress-tools-rs/pull/3
## [0.1.2] - 2019-04-29
### Changed
* Add flags to tar command to perserve file permissions
* Use BusyBox compatible commands for uncompression
## [0.1.0] - 2019-04-25
* First release