mrhooray / crc-rs

Rust implementation of CRC(16, 32, 64) with support of various standards
Apache License 2.0
191 stars 49 forks source link

Latest master commits not on crates.io #43

Closed zachmse closed 5 years ago

zachmse commented 5 years ago

Hello and thank you for the hard work you have put into this crate!

I noticed that the latest commits to the master branch are 8 months old and have not yet been released on crates.io. The new_custom() method has been added to the various digests since the last release, and I think it would be useful to have this method available via downloads from crates.io.

Would it be possible to create a new release? I would be more than happy to help out in anyway possible if there are outstanding issues that need to be resolved first.

On a related note, would you be okay with me opening a pull request to address clippy lint warnings? The changes necessary to resolve the warnings are very minimal and shouldn't require much effort to review.

mrhooray commented 5 years ago

Thanks for the note. I'm looking into getting #42 merged. Please feel free to help review or open PR for the warnings. Look forward to making a release afterwards.

jacobrosenthal commented 5 years ago

Excited to release a crate using new_custom and am also eagerly awaiting a release. Thanks for the excellent crate.

mrhooray commented 5 years ago

42 landed in a state that requires major version bump and some v2 API changes are still in discussion. Released the commit before as v1.9.0 which includes some new APIs. Sorry for the delay and hope it's still useful.

jacobrosenthal commented 5 years ago

Sorry to see 1.9 yanked but obviously understand. Any chance of a 1.8.2 with new_custom?

mrhooray commented 5 years ago

Unfortunately the change that adds new_custom contains a breaking change on update func. Maybe your use case could pin to git & sha instead of cargo release?

akhilles commented 5 years ago

@mrhooray, is it worth pushing the new_custom and #42 changes as 2.0.0?

The v2 API being discussed in #48 will probably take quite a bit of time to materialize. Also, I think it's better to wait for const generics and const fns to land in stable Rust before considering significant API changes.

akhilles commented 5 years ago

Or let's identify a subset of the v2 API changes that can easily be implemented (such as using core::hash::Hasher trait, separating Algorithm and Crc).

A generics-based API can be pushed to v3.

mrhooray commented 5 years ago

Or let's identify a subset of the v2 API changes that can easily be implemented (such as using core::hash::Hasher trait, separating Algorithm and Crc).

Great idea to enable full customization sooner.

A generics-based API can be pushed to v3.

Is that mainly due to const fn/generics considerations? If so, would you consider developing Algorithm and Crc based API with generics first, and then add support for it when required language features stablize?

akhilles commented 5 years ago

If so, would you consider developing Algorithm and Crc based API with generics first, and then add support for it when required language features stabilize?

That could work. I'll open a [WIP] PR in a couple days.