Skip to main content

Python bindings for the Orion FHE evaluator

Project description

orion-evaluator

Python bindings to the Orion Go evaluator. Runs FHE inference on compiled models.

Why keys are passed as bytes

The Evaluator constructor accepts serialized MemEvaluationKeySet bytes, not Go object handles:

evaluator = Evaluator(params_dict, keys_bytes)  # bytes, not handles

This looks weird if you're generating keys and running inference in the same Python process — you serialize a Go object to bytes just to deserialize it back into a Go object on the other side. The reason: Go has shitty FFI.

Each CGO shared library (.so) embeds its own Go runtime with its own GC, goroutine scheduler, and cgo.Handle table. The lattigo package (keygen, encrypt, decrypt) and orion-evaluator (inference) are separate .so files, so a cgo.Handle from one means nothing to the other. They are two isolated Go worlds in the same process. There is no way to share Go pointers across them.

So we serialize to bytes as the common language between the two runtimes. This is also the right interface for real deployments where keys come over the network from a remote client.

Usage

from orion_evaluator import Model, Evaluator

# Context manager support (recommended — auto-cleanup on block exit)
with Model.load(model_bytes) as model:
    params_dict, manifest, input_level = model.client_params()
    with Evaluator(params_dict, keys_bytes) as evaluator:
        result_ct_bytes = evaluator.forward(model, input_ct_bytes)

# Or explicit close()
model = Model.load(model_bytes)
evaluator = Evaluator(params_dict, keys_bytes)
result_ct_bytes = evaluator.forward(model, input_ct_bytes)
evaluator.close()
model.close()

Errors

All errors raise from orion_evaluator.errors:

  • EvaluatorError — base class for all evaluator errors
  • ModelLoadError(EvaluatorError) — raised by Model.load() on invalid data

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

orion_v2_evaluator-2.1.6.tar.gz (6.3 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

orion_v2_evaluator-2.1.6-py3-none-manylinux_2_17_x86_64.whl (6.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

orion_v2_evaluator-2.1.6-py3-none-macosx_11_0_x86_64.whl (3.4 MB view details)

Uploaded Python 3macOS 11.0+ x86-64

orion_v2_evaluator-2.1.6-py3-none-macosx_11_0_arm64.whl (3.2 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

Details for the file orion_v2_evaluator-2.1.6.tar.gz.

File metadata

  • Download URL: orion_v2_evaluator-2.1.6.tar.gz
  • Upload date:
  • Size: 6.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for orion_v2_evaluator-2.1.6.tar.gz
Algorithm Hash digest
SHA256 e53b24c02d37b2b2b8064ea0a7b367eaa63af889c08441a82bbdb23151de4d62
MD5 f7863fde15b04e3d0d033f5f2e8e7ea9
BLAKE2b-256 9f4ebbce44dff8494041f78e4253da81150dff8f5ccc8caba6b021667406decd

See more details on using hashes here.

Provenance

The following attestation bundles were made for orion_v2_evaluator-2.1.6.tar.gz:

Publisher: release.yml on butvinm/orion

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file orion_v2_evaluator-2.1.6-py3-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for orion_v2_evaluator-2.1.6-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 22fb5652aa279331d0ffcbd163a6f0ad100aa9dd4637e6223d5fdde4a56406f1
MD5 ea5d1ac33e8acd484a27d1415550567c
BLAKE2b-256 9a94696e0b5744e55020b3f9955b20232ee3d3783a920449fa56931cce63b641

See more details on using hashes here.

Provenance

The following attestation bundles were made for orion_v2_evaluator-2.1.6-py3-none-manylinux_2_17_x86_64.whl:

Publisher: release.yml on butvinm/orion

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file orion_v2_evaluator-2.1.6-py3-none-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for orion_v2_evaluator-2.1.6-py3-none-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 4e4137e6acd37a67b2ddeeefa3ed3c1f2a7eb577c69ee777bbc09798409ab74f
MD5 653a837557b7f6ab0de98e58eed4a8a8
BLAKE2b-256 4e08a3e706e2bb1379218facaddd15f702ee1bd31ec85d7bc85f433641c4c394

See more details on using hashes here.

Provenance

The following attestation bundles were made for orion_v2_evaluator-2.1.6-py3-none-macosx_11_0_x86_64.whl:

Publisher: release.yml on butvinm/orion

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file orion_v2_evaluator-2.1.6-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for orion_v2_evaluator-2.1.6-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 63969a1c1debbb6f01aef26392fce4907bcd064555213a9c0bd50c47806310a2
MD5 956887e5237a2be36e34db5b023484b5
BLAKE2b-256 3ada2adf7441c223f31383679d453fe443e193bd7eae217b78a39a7967b9108f

See more details on using hashes here.

Provenance

The following attestation bundles were made for orion_v2_evaluator-2.1.6-py3-none-macosx_11_0_arm64.whl:

Publisher: release.yml on butvinm/orion

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page