## 6.0.0 - Use LruCache instead of InversionTree for caching data decode matrices - See [PR #104](https://github.com/rust-rse/reed-solomon-erasure/pull/104) - Minor code duplication - See [PR #102](https://github.com/rust-rse/reed-solomon-erasure/pull/102) - Dependencies update - Updated `smallvec` from `0.6.1` to `1.8.0` ## 5.0.3 - Fixed cross build bug for aarch64 with simd-accel - See [PR #100](https://github.com/rust-rse/reed-solomon-erasure/pull/100) ## 5.0.2 * Add support for `RUST_REED_SOLOMON_ERASURE_ARCH` environment variable and stop using `native` architecture for SIMD code - See [PR #98](https://github.com/rust-rse/reed-solomon-erasure/pull/98) ## 5.0.1 - The `simd-accel` feature now builds on M1 Macs - See [PR #92](https://github.com/rust-rse/reed-solomon-erasure/pull/92) - Minor code cleanup ## 5.0.0 - Merged several PRs - Not fully reviewed as I am no longer maintaining this crate ## 4.0.2 - Updated build.rs to respect RUSTFLAGS's target-cpu if available - See [PR #75](https://github.com/darrenldl/reed-solomon-erasure/pull/75) - Added AVX512 support - See [PR #69](https://github.com/darrenldl/reed-solomon-erasure/pull/69) - Disabled SIMD acceleration when MSVC is being used to build the library - See [PR #67](https://github.com/darrenldl/reed-solomon-erasure/pull/67) - Dependencies update - Updated `smallvec` from `0.6` to `1.2` ## 4.0.1 - Updated SIMD C code for Windows compatibility - Removed include of `unistd.h` in `simd_c/reedsolomon.c` - Removed GCC `nonnull` attribute in `simd_c/reedsolomon.h` - See PR [#63](https://github.com/darrenldl/reed-solomon-erasure/pull/63) [#64](https://github.com/darrenldl/reed-solomon-erasure/pull/64) for details - Replaced use of `libc::uint8_t` in `src/galois_8.rs` with `u8` ## 4.0.0 - Major API restructure: removed `Shard` type in favor of generic functions - The logic of this crate is now generic over choice of finite field - The SIMD acceleration feature for GF(2^8) is now activated with the `simd-accel` Cargo feature. Pure-rust behavior is default. - Ran rustfmt - Adds a GF(2^16) implementation ## 3.1.2 (not published) - Doc fix - Added space before parantheses in code comments and documentation - Disabled SIMD C code for Android and iOS targets entirely ## 3.1.1 - Fixed `Matrix::augment` - The error checking code was incorrect - Since this method is used in internal code only, and the only use case is a correct use case, the error did not lead to any bugs - Fixed benchmark data - Previously used MB=10^6 bytes while I should have used MB=2^20 bytes - Table in README has been updated accordingly - The `>= 2.1.0` data is obtained by measuring again with the corrected `rse-benchmark` code - The `2.0.X` and `1.X.X` data are simply adjusted by mutiplying `10^6` then dividing by `2^20` - Dependencies update - Updated `rand` from `0.4` to `0.5.4` - Added special handling in `build.rs` for CC options on Android and iOS - `-march=native` is not available for GCC on Android, see issue #23 ## 3.1.0 - Impl'd `std::error::Error` for `reed_solomon_erasure::Error` and `reed_solomon_erasure::SBSError` - See issue [#17](https://github.com/darrenldl/reed-solomon-erasure/issues/17), suggested by [DrPeterVanNostrand](https://github.com/DrPeterVanNostrand) - Added fuzzing suite - No code changes due to this as no bugs were found - Upgraded InversionTree QuickCheck test - No code changes due to this as no bugs were found - Upgraded test suite for main codec methods (e.g. encode, reconstruct) - A lot of heavy QuickCheck tests were added - No code changes due to this as no bugs were found - Upgraded test suite for ShardByShard methods - A lot of heavy QuickCheck tests were added - No code changes due to this as no bugs were found - Minor code refactoring in `reconstruct_internal` method - This means `reconstruct` and related methods are slightly more optimized ## 3.0.3 - Added QuickCheck tests to the test suite - InversionTree is heavily tested now - No code changes as no bugs were found - Deps update - Updated rayon from 0.9 to 1.0 ## 3.0.2 - Same as 3.0.1, but 3.0.1 had unapplied changes ## 3.0.1 (yanked) - Updated doc for `with_buffer` variants of verifying methods - Stated explicitly that the buffer contains the correct parity shards after a successful call - Added tests for the above statement ## 3.0.0 - Added `with_buffer` variants for verifying methods - This gives user the option of reducing heap allocation(s) - Core code clean up, improvements, and review, added more AUDIT comments - Improved shard utils - Added code to remove leftover parity shards in `reconstruct_data_shards` - This means one fewer gotcha of using the methods - `ShardByShard` code review and overhaul - `InversionTree` code review and improvements ## 2.4.0 - Added more flexibility for `convert_2D_slices` macro - Now accepts expressions rather than just identifiers - The change requires change of syntax ## 2.3.3 - Replaced all slice splitting functions in `misc_utils` with std lib ones or rayon ones - This means there are fewer heap allocations in general ## 2.3.2 - Made `==`(`eq`) for `ReedSolomon` more reasonable - Previously `==` would compare - data shard count - parity shard count - total shard count - internal encoding matrix - internal `ParallelParam` - Now it only compares - data shard count - parity shard count ## 2.3.1 - Added info on encoding behaviour to doc ## 2.3.0 - Made Reed-Solomon codec creation methods return error instead of panic when shard numbers are not correct ## 2.2.0 - Fixed SBS error checking code - Documentation fixes and polishing - Renamed `Error::InvalidShardsIndicator` to `Error::InvalidShardFlags` - Added more details to documentation on error handling - Error handling code overhaul and checks for all method variants - Dead commented out code cleanup and indent fix ## 2.1.0 - Added Nicolas's SIMD C code files, gaining major speedup on supported CPUs - Added support for "shard by shard" encoding, allowing easier streamed encoding - Added functions for shard by shard encoding ## 2.0.0 - Complete rewrite of most code following Klaus Post's design - Added optimsations (parallelism, loop unrolling) - 4-5x faster than `1.X.X` ## 1.1.1 - Documentation polish - Added documentation badge to README - Optimised internal matrix related operations - This largely means `decode_missing` is faster ## 1.1.0 - Added more helper functions - Added more tests ## 1.0.1 - Added more tests - Fixed decode_missing - Previously may reconstruct the missing shards with incorrect length ## 1.0.0 - Added more tests - Added integration with Codecov (via kcov) - Code refactoring - Added integration with Coveralls (via kcov) ## 0.9.1 - Code restructuring - Added documentation ## 0.9.0 - Base version