Skip to content

Releases: myl7/fss

Crate fss-rs v0.6.0

30 Jul 14:11
86bc0bb
Compare
Choose a tag to compare

[0.6.0] - 2024-07-30

Features

  • Impl from int for int&int_prime groups
  • Support stable Rust with features

Bug Fixes

  • Correct int_prime group neg
  • Fix from_bytes of int_prime group
  • Fix doc comment code block test

Refactor

  • [breaking] Rename bound state
  • [breaking] Update PRG new() arg types
  • Update generic param name
  • Use Neg for inverse element
  • Reduce required supertraits of group trait
  • Remove unused unstable features

Documentation

  • Fix dead link in readme
  • Enhance doc comments of dcf/dpf
  • Update doc comment of group trait
  • Update readme for support of stable Rust
  • Add correctness fix log to readme

Testing

  • Setup property-based tests
  • Add tests for group axioms

Miscellaneous Tasks

  • (ci) Update CI to test in stable Rust
  • Setup and migrate changelog

Crate fss-rs v0.5.0

28 Jun 15:25
0a4fe89
Compare
Choose a tag to compare

Changes

  • Refactor PRGs to let DCFs and DPFs share some same PRG implementations.
  • This refactoring gives around %8 performance improvement for some benchmarks.

Breaking changes

  • The PRG interface is updated.
    See the Migrate to v0.5 section in README for how to migrate from v0.4 to v0.5, which should be simple.

Crate fss-rs v0.4.4

19 Jun 14:10
718f4e3
Compare
Choose a tag to compare

New features

  • Add filter support to control the input domain size with bit-level accuracy instead of byte-level one

Crate fss-rs v0.4.3

10 Apr 18:19
51b213b
Compare
Choose a tag to compare

Bug Fixes

  • Fix crate::dcf::prg::Aes256HirosePrg wrong implementation. See the Deprecation section of README for details and please update to a version with the fix ASAP.

The fix causes about 50% (necessary) performance regression in bench dcf_batch_eval.
Only DCF performance is affected and DPF one is not.
No other functionality changes are made, so the change in the benchmark report should only reflect the performance impact of the fix.

Update: Please use the commit d97da02 for the version

Crate fss-rs v0.4.2

09 Apr 11:29
48c8086
Compare
Choose a tag to compare

New features

  • Optimize batch eval performance
  • Add full domain eval support, which is largely faster than batch eval with the same number of points

Caveat

Though the batch eval performance improved, the large lambda (aka large range of the function) performance regressed largely (10%, up to 20%).
It is due to the commit 6a3f815, which changes not to alloc a new place for every intermediate states.

We still kept the change because the change improves batch eval largely (10%), and meanwhile a 16KB range size should be rare, since then you need a so large vector to store all evaluated values. A 256B range size should be more common (even in papers).
Moreover, we plan to add no alloc support for the crate, and reusing memory for intermediate states should make it easier.

Crate fss-rs v0.4.1

28 Jan 13:54
200356d
Compare
Choose a tag to compare

New features

  • Add Matyas-Meyer-Oseas PRG
    • With it the performance of DPF improves. But not for DCF.

Crate fss-rs v0.4.0

27 Jan 04:38
52dde53
Compare
Choose a tag to compare

Changes

  • Rearrange workspace into a single crate
    • No functional changes. You only need to update import paths to migrate.

Benchmark checkpoint

02 Jan 13:13
354b48e
Compare
Choose a tag to compare
Benchmark checkpoint Pre-release
Pre-release

Versions

  • dcf v0.6.0
  • dpf-fss v0.6.0
  • group-math v0.2.2
  • fss-types v0.1.0

dcf v0.2.2

21 Jul 05:26
f75f742
Compare
Choose a tag to compare
dcf v0.2.2 Pre-release
Pre-release
  • Fix incorrect PRG write causing the output is empty
  • Remove cached PRG due to bad performance after re-evaluation
  • Add easy multithreading with rayon, together with a new feature multithread
  • Add a new benchmark for longer messages

dcf v0.2.1

15 Jul 01:11
d1d27e8
Compare
Choose a tag to compare
dcf v0.2.1 Pre-release
Pre-release
  • Change embedded PRG implementation from Matyas-Meyer-Oseas to Hirose to improve performance
  • Add simple hash map cached PRG wrapper to improve performance