|
2 | 2 |
|
3 | 3 | All notable changes to this project will be documented in this file. |
4 | 4 |
|
| 5 | +## v0.18.1 -- 2025-05-31 |
| 6 | + |
| 7 | +### ✨ Added |
| 8 | + |
| 9 | +- **New build script**: Added `build.rs` to enforce that at least one TLS backend (`rustls` or `native-tls`) is enabled |
| 10 | + if any of the remote features (`http`, `ftp`, or `remote`) are enabled. |
| 11 | +- **Module documentation**: Added detailed Rust doc comments to the compression modules (gzip, bzip2, lz4, xz, zstd) and |
| 12 | + `utils.rs` for improved usability and understanding. |
| 13 | +- **`get_protocol` function**: Utility for extracting protocol from file paths, now used across remote file access |
| 14 | + functions. |
| 15 | + |
| 16 | +### 🛠️ Changed |
| 17 | + |
| 18 | +- **Feature dependencies**: The `ftp` feature now explicitly depends on the `http` feature in `Cargo.toml`. |
| 19 | +- **Error handling**: Updated `OneIoError` enum to more accurately gate error variants with corresponding features ( |
| 20 | + `http`, `ftp`). |
| 21 | +- **Module structure**: |
| 22 | + - `compressions` is now a public module. |
| 23 | + - Refactored how the crate distinguishes between local and remote file access, using `get_protocol`. |
| 24 | + - `get_reader_raw` and related functions now determine protocol and select the appropriate file reader accordingly. |
| 25 | +- **Compression interface**: |
| 26 | + - Added a unified trait `OneIOCompression` and `get_compression_reader`/`get_compression_writer` utilities for |
| 27 | + consistent handling of all supported compression algorithms. |
| 28 | + - Updated file open logic to use these helpers based on file suffix. |
| 29 | + |
| 30 | +### 🧹 Cleaned up and Improved |
| 31 | + |
| 32 | +- Removed legacy or redundant code paths (e.g., `get_reader_raw_remote`, old error gates). |
| 33 | +- Moved protocol detection and remote file reading logic into more modular and maintainable forms. |
| 34 | +- Several function signatures and internal APIs have been updated for clarity and maintainability. |
| 35 | + |
| 36 | +--- |
| 37 | + |
| 38 | +### 📝 Developer Notes |
| 39 | + |
| 40 | +- All compression modules (`gzip`, `bzip2`, `lz4`, `xz`, `zstd`) now include clear documentation and consistent |
| 41 | + interfaces for reading and writing compressed files. |
| 42 | +- Users enabling remote protocol features must ensure at least one TLS backend is also enabled. |
| 43 | + |
5 | 44 | ## v0.18.0 -- 2025-05-30 |
6 | 45 |
|
7 | 46 | ### Highlights |
|
0 commit comments