Skip to content

Commit

Permalink
Support for no false-positives (#161)
Browse files Browse the repository at this point in the history
* Add support for raw encrypted strings

* comments

* fix golang tests

* fix js tests

* rust

* rust tests

* fix golang

* fix go bench

* wip rust

* rust wip

* prep bench for refactor

* added back ts tests

* re-add unit tests

* normalize fpr in unit tests

* update version, changelog

* reduce c tests

* key tests in c

* simplify js tests

* more unification

* update changelog

* update js deps

* more deps

* update rollup

* typos

* golint
  • Loading branch information
s0l0ist authored Feb 14, 2023
1 parent 3769d77 commit 666b508
Show file tree
Hide file tree
Showing 68 changed files with 3,434 additions and 3,514 deletions.
49 changes: 45 additions & 4 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,37 @@
# Version 2.0.0

Breaking:

- The protobuf schema has changed to support additional enum variants for
backing datastructures. This means prior protobufs using earlier library
versions will not work with `2.0.0+`. We made this change to ensure additional
variants will not break the schema. In general, storing serialized protobufs
is not a pattern the protocol recommends since every intersection calculation
should be a new protocol exchange (setup, request, response, intersection).

Feat:

- A `Raw` datastructure enum variant has been added which when specified,
computes an intersection against 'raw' encrypted strings, but with zero
false-positives (`fpr` is ignored). It is intended for applications that
depend on 100% accuracy, but it may have a performance impact.

Bufgix:

- Previously, only the `CPP` bindings supported the datastructure enum to allow
the user to select which backing datastructure to use in the protocol (`GCS`,
`BloomFilter`, and now `Raw`). This meant we were not feature-compatible in
the languages that depended on the (incomplete) `C` bindings. In this release,
all languages support the same features, namely, we've updated the `C`
bindings which allowed us to get `Go` and `Rust` to be feature compatible.

Chore:

- All languages now have common integration tests and use unit tests where
relevant. We make a distinction between unit and integration tests. Unit tests
are for language-specific edge cases whereas the integration tests will test
the common APIs for correctness.

# Version 1.1.1

Chore:
Expand All @@ -17,13 +51,20 @@ Bugfix:

Bugfix:

- The Python builds were using the older `manylinux2014` tagging convention which was causing issues on systems that expected a specific glibc version (Ubuntu 20.04 uses [2.31](https://launchpad.net/ubuntu/+source/glibc)). We now use the latest `manylinux_x_y` tagging convention to accomodate different glibc versions across linux when building wheels. This means we must support `python 3.8.10+, 3.9.5+, 3.10.0+` and `pip >= 20.3` in accordance with [PEP 600](https://github.com/pypa/manylinux)
- The Python builds were using the older `manylinux2014` tagging convention
which was causing issues on systems that expected a specific glibc version
(Ubuntu 20.04 uses [2.31](https://launchpad.net/ubuntu/+source/glibc)). We now
use the latest `manylinux_x_y` tagging convention to accomodate different
glibc versions across linux when building wheels. This means we must support
`python 3.8.10+, 3.9.5+, 3.10.0+` and `pip >= 20.3` in accordance with [PEP
600](https://github.com/pypa/manylinux)

# Version 1.0.2

Feat:

- This patch version relaxes the Python requirement to allow for older `protobuf` libraries to work with the PSI library.
- This patch version relaxes the Python requirement to allow for older
`protobuf` libraries to work with the PSI library.

# Version 1.0.1

Expand All @@ -32,8 +73,8 @@ Feat:
- Update the Python bindings to take in an optional `DataStructure` argument for
`CreateSetupMessage`. This allows the user to customize the behavior of the
backing datastructure - i.e. to select between the default (`GCS`) or specify
`BLOOM_FILTER`. The previous behavior always selected `GCS` so if the parameter
is omitted, the behavior will remain the same.
`BLOOM_FILTER`. The previous behavior always selected `GCS` so if the
parameter is omitted, the behavior will remain the same.

Ex:

Expand Down
Loading

0 comments on commit 666b508

Please sign in to comment.