tisonkun opened a new pull request, #208: URL: https://github.com/apache/datasketches-rust/pull/208
## Summary - add immutable `XorFilter` construction and lookup with 8- and 16-bit fingerprints behind the `xor` feature - support both ordinary Rust `Hash` values and precomputed 64-bit hashes, with duplicate removal and bounded seeded construction retries - add family 22 serialization, defensive deserialization, public API documentation, README/changelog entries, and dedicated behavior/serialization tests ## Design The implementation follows the three-partite peeling construction from Graf and Lemire's xor-filter paper directly, without adding a third-party runtime dependency. `XorFilterBuilder::build` returns `Result` because construction is deliberately bounded at 100 seed attempts instead of risking an unbounded loop. The default base construction seed is deterministic, and callers can provide another seed when needed. Serialization follows the 3-long family 22 layout proposed in apache/datasketches-java#740. Tests use images generated by that Java implementation and verify that Rust produces byte-for-byte identical images for the same values and explicit seed. The initial API intentionally exposes only the 8- and 16-bit variants defined by that portable format. Deserialization validates the family, version, fingerprint width, hash count, signed lengths, indexable capacity, item count, and payload length before constructing a filter. ## Testing - `cargo x check` - `cargo x test` - `cargo x lint` - byte-for-byte compatibility against 8- and 16-bit images generated from apache/datasketches-java#740 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
