Skip to content

Commit

Permalink
Merge pull request #51 from AndersTrier/AndersTrier/3.0.0
Browse files Browse the repository at this point in the history
v3.0.0
  • Loading branch information
AndersTrier authored Oct 7, 2024
2 parents ad20d00 + 5bf17d9 commit bde55e3
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 18 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,9 @@
## 2.2.2 - 2024-04-22
- Make DefaultEngine Send + Sync.
- Slightly faster `eval_poly()` (used in decoding).

## 3.0.0 - 2024-10-07
- Require shard length to be divisible by 2 instead of 64. Note regarding compatibility between versions: Shards of a length divisible by 64 are compatible across versions.
- Improved types for internal data structures. This raises the Minimum Supported Rust Version (MSRV) to 1.80.
- Faster `NoSimd` engine.
- Removed dependencies: bytemuck and once\_cell.
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "reed-solomon-simd"
version = "2.2.2"
version = "3.0.0"
license = "MIT AND BSD-3-Clause"
description = "Reed-Solomon coding with O(n log n) complexity. Leverages SIMD instructions on x86(-64) and AArch64."
repository = "https://github.com/AndersTrier/reed-solomon-simd"
Expand Down
38 changes: 21 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,10 @@ Use `cargo test -- --ignored` to run those.

The only use of `unsafe` in this crate is to allow for target specific optimizations in [`Ssse3`], [`Avx2`] and [`Neon`].

## Compatibility

Starting from version 3.0.0, shard sizes that are not multiples of 64 are supported. However, if your shard size is a multiple of 64, it remains compatible across all versions.

## Credits

This crate is a fork Markus Laire's [`reed-solomon-16`] crate, which in turn
Expand All @@ -199,25 +203,25 @@ is based on [Leopard-RS] by Christopher A. Taylor.
[Leopard-RS]: https://github.com/catid/leopard
[reed-solomon-simd]: https://github.com/AndersTrier/reed-solomon-simd

[`Naive`]: https://docs.rs/reed-solomon-simd/2.2.2/reed_solomon_simd/engine/struct.Naive.html
[`NoSimd`]: https://docs.rs/reed-solomon-simd/2.2.2/reed_solomon_simd/engine/struct.NoSimd.html
[`Ssse3`]: https://docs.rs/reed-solomon-simd/2.2.2/reed_solomon_simd/engine/struct.Ssse3.html
[`Avx2`]: https://docs.rs/reed-solomon-simd/2.2.2/reed_solomon_simd/engine/struct.Avx2.html
[`Neon`]: https://docs.rs/reed-solomon-simd/2.2.2/reed_solomon_simd/engine/struct.Neon.html
[`Naive`]: https://docs.rs/reed-solomon-simd/3.0.0/reed_solomon_simd/engine/struct.Naive.html
[`NoSimd`]: https://docs.rs/reed-solomon-simd/3.0.0/reed_solomon_simd/engine/struct.NoSimd.html
[`Ssse3`]: https://docs.rs/reed-solomon-simd/3.0.0/reed_solomon_simd/engine/struct.Ssse3.html
[`Avx2`]: https://docs.rs/reed-solomon-simd/3.0.0/reed_solomon_simd/engine/struct.Avx2.html
[`Neon`]: https://docs.rs/reed-solomon-simd/3.0.0/reed_solomon_simd/engine/struct.Neon.html

[`ReedSolomonEncoder`]: https://docs.rs/reed-solomon-simd/2.2.2/reed_solomon_simd/struct.ReedSolomonEncoder.html
[RSE::add_original_shard]: https://docs.rs/reed-solomon-simd/2.2.2/reed_solomon_simd/struct.ReedSolomonEncoder.html#method.add_original_shard
[RSE::encode]: https://docs.rs/reed-solomon-simd/2.2.2/reed_solomon_simd/struct.ReedSolomonEncoder.html#method.encode
[`ReedSolomonEncoder`]: https://docs.rs/reed-solomon-simd/3.0.0/reed_solomon_simd/struct.ReedSolomonEncoder.html
[RSE::add_original_shard]: https://docs.rs/reed-solomon-simd/3.0.0/reed_solomon_simd/struct.ReedSolomonEncoder.html#method.add_original_shard
[RSE::encode]: https://docs.rs/reed-solomon-simd/3.0.0/reed_solomon_simd/struct.ReedSolomonEncoder.html#method.encode

[`ReedSolomonDecoder`]: https://docs.rs/reed-solomon-simd/2.2.2/reed_solomon_simd/struct.ReedSolomonDecoder.html
[RSD::add_original_shard]: https://docs.rs/reed-solomon-simd/2.2.2/reed_solomon_simd/struct.ReedSolomonDecoder.html#method.add_original_shard
[RSD::add_recovery_shard]: https://docs.rs/reed-solomon-simd/2.2.2/reed_solomon_simd/struct.ReedSolomonDecoder.html#method.add_recovery_shard
[RSD::decode]: https://docs.rs/reed-solomon-simd/2.2.2/reed_solomon_simd/struct.ReedSolomonDecoder.html#method.decode
[`ReedSolomonDecoder`]: https://docs.rs/reed-solomon-simd/3.0.0/reed_solomon_simd/struct.ReedSolomonDecoder.html
[RSD::add_original_shard]: https://docs.rs/reed-solomon-simd/3.0.0/reed_solomon_simd/struct.ReedSolomonDecoder.html#method.add_original_shard
[RSD::add_recovery_shard]: https://docs.rs/reed-solomon-simd/3.0.0/reed_solomon_simd/struct.ReedSolomonDecoder.html#method.add_recovery_shard
[RSD::decode]: https://docs.rs/reed-solomon-simd/3.0.0/reed_solomon_simd/struct.ReedSolomonDecoder.html#method.decode

[`Engine`]: https://docs.rs/reed-solomon-simd/2.2.2/reed_solomon_simd/engine/trait.Engine.html
[`Rate`]: https://docs.rs/reed-solomon-simd/2.2.2/reed_solomon_simd/rate/trait.Rate.html
[`Engine`]: https://docs.rs/reed-solomon-simd/3.0.0/reed_solomon_simd/engine/trait.Engine.html
[`Rate`]: https://docs.rs/reed-solomon-simd/3.0.0/reed_solomon_simd/rate/trait.Rate.html

[mod:rate]: https://docs.rs/reed-solomon-simd/2.2.2/reed_solomon_simd/rate/index.html
[mod:rate]: https://docs.rs/reed-solomon-simd/3.0.0/reed_solomon_simd/rate/index.html

[`reed_solomon_simd::encode`]: https://docs.rs/reed-solomon-simd/2.2.2/reed_solomon_simd/fn.encode.html
[`reed_solomon_simd::decode`]: https://docs.rs/reed-solomon-simd/2.2.2/reed_solomon_simd/fn.decode.html
[`reed_solomon_simd::encode`]: https://docs.rs/reed-solomon-simd/3.0.0/reed_solomon_simd/fn.encode.html
[`reed_solomon_simd::decode`]: https://docs.rs/reed-solomon-simd/3.0.0/reed_solomon_simd/fn.decode.html

0 comments on commit bde55e3

Please sign in to comment.