Openmined-psi

Latest version: v2.0.5

Safety actively analyzes 685525 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 4

2.0.5

Feat:

- Add support for Python 3.12

Fix:

- There was a bug in the pybind11 bindings involving incorrect usage for
releasing the GIL lock which led to a segfault when using Python 3.12.
Previous versions remain unaffected.
- Pin the python `protobuf` version to match
[`rules_proto_grpc_python`](https://github.com/rules-proto-grpc/rules_proto_grpc/blob/master/modules/python/requirements.in#L3)
to remove runtime warnings.

Chore:

- Removed `macos-12` from the `CD` GHA as it was building with an incorrect
wheel name for the given OS. We're only building/publishing wheels for
`macos-14`.
- Removed unused pip deps from `requirements.in` and updated lock files
accordingly.

2.0.4

Chore:

- No changes, but some published python wheels may have the wrong wheel
specifications due to a potential publishing bug in the previous release.

2.0.3

Feat:

- Add support for python 3.11
- Add support for Mac ARM64 builds

Chore:

- Use Bazel 7.3.1 with `bzlmod`
- Updated all Bazel dependencies for all languages.
- Updated the fork of private_join_and_compute (PCJ) to use Bazel 7+
with`bzlmod` and updated all dependencies.
- Refactored CI/CD scripts to remove explicit python version in CI/CD as Bazel
can pick up the local python within the runner. Tests on Python are hermetic
so the local version is only important when publishing wheels.
- Minor fixes that the cpp linter was reporting and a fix in the python cpp
bindings to use absl::MakeSpan instead of passing a std::vector.

Breaking:

- The **python** package has been renamed to `openmined_psi` to comply with the
bazel toolchain naming conventions.

2.0.2

Chore:

- Update to use Bazel 6.4.0
- Updated some of the Bazel dependencies for Golang and Python
- Updated CI/CD to use python 3.10 for Bazel to work correctly.

2.0.1

Feat:

- The complexity of the underlying `Raw` intersection computation has improved
from `O(nmlog(m))` -> `O(nlog(n) + max(n, m))`; however, internal protobuf
deserialization remains as the dominant performance inhibitor for the
`client->GetIntersection*` methods.

Fix:

- The `go` integration tests were not using the datastructure param properly.
The fix did not result in any regression.

Chore:

- Update `C++` benchmarks to include the new `Raw` enum variant
- Misc fixes to tests which were not rounding correctly and causing CI to fail
randomly
- Update the main README to include a description of the protocol

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.

Bugfix:

- 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.

Page 1 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.