flavray / avro-rs

Avro client library implementation in Rust
MIT License
169 stars 95 forks source link

Implement the Rabin fingerprint algorithm #157

Closed jeffw-wherethebitsroam closed 4 years ago

jeffw-wherethebitsroam commented 4 years ago

This adds Rabin fingerprinting via Digest.

I haven't done too much rust, so let me know if anything needs changing.

poros commented 4 years ago

Uh, interesting. I honestly don't know how Rabin fingerprint works, but I'll have a look anyway 😉

jeffw-wherethebitsroam commented 4 years ago

I think I've done all of the docs and CHANGELOG updates now.

The algorithm is converted from the java version at https://github.com/apache/avro/blob/master/lang/java/avro/src/main/java/org/apache/avro/SchemaNormalization.java

So it should be correct. And like you say, should be verified by the shared tests from https://github.com/apache/avro/blob/master/share/test/data/schema-tests.txt