All Versions
Latest Version
Avg Release Cycle
45 days
Latest Release
1345 days ago

Changelog History

  • v0.6.0 Changes

    November 08, 2020
    • โž• Adding support for incremental initialization api.
      • A more space efficient way to use the library.
      • Warning : currently does not support deduplication.
    • ๐Ÿ›  Various bug fixes.
    • ๐Ÿ›  Fixing test macros.
  • v0.5.2 Changes

    October 24, 2020

    Fix nif compile on Erlang 23 by removing erl_interface from c_src Makefile.

  • v0.5.1 Changes

    October 24, 2020

    ๐Ÿ‘‰ Use of contains with a binary created from to_bin.

  • v0.5.0 Changes

    February 24, 2020

    โž• Addition of serialization / deserialization of the xor filters to get them in pure binary. Thanks to @Vagabond !

  • v0.4.2 Changes

    February 22, 2020

    ๐Ÿš€ Included in this release:

    Increased memory management, courtesy of @Vagabond

  • v0.4.1 Changes

    January 20, 2020

    ๐Ÿš€ Included in this release:

    • โฌ†๏ธ Upgraded xor_filter headerfile. Includes protections against dups.
    • Included fix in xor_filter header file found by cppcheck.
    • ๐Ÿ‘‰ Used cppcheck on nif code, looks clean.
    • ๐ŸŽ Performance increases
      • Using a custom tail-recursive over_10_thousand/1 instead of length/1 function for greater performance on large lists.
      • Removing dup key checking from erlang code, now found in underlying library.
    • โž• Address typo for freeing the wrong pointer
    • 0๏ธโƒฃ Using lists:map instead of lists:foldr, as it isn't tail recursive, for the default hash.
    • โœ‚ Removed raw interface, no longer has any speed benefits.
  • v0.3.0 Changes

    January 06, 2020

    ๐Ÿš€ This release is the 'production readiness' release.


    1. Error when duplicate keys are present in the hash function and pre-hashed options, there is no longer the risk of an infinite loop during initialization!
      • The default_hash squashes dupes, so that there is no risk of this happening here either.
    2. A 'raw' interface to avoid this, use with caution.
    3. Convenience modules xor8 and xor16. ๐Ÿ›  4. Dialyzer fixes โœ… 5. Moar tests ๐Ÿ“š 6. Documentation updates.
    4. Simplified C and erlang code
    5. Removal of fast_hash option, as duplication checking would have voided the usefulness.
  • v0.0.1 Changes

    December 26, 2019

    v0.0.1 CHANGELOG

    • Two hashing methods are provided
      • default_hash, which uses the erlang:phash2/1 function
      • fast_hash, which is faster but inconsistent across nodes.
    • A custom hash function may be provided
    • Pre-hashed data may be passed as well.
    • ๐ŸŽ‰ Initialization using a dirty nif is used if the passed list is greater than 10K elements. So it is 'safe' to load large amounts of data.
    • It takes 2 seconds to initialize a filter of 10M elements using the exor_filter:xor8_buffered/2 function with pre-hashed data.
      • Our example used keys that were generated sequentially ๐Ÿ˜›