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.5.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.5-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.5-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.5-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.5.tar.gz.

File metadata

  • Download URL: orion_v2_evaluator-2.1.5.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.5.tar.gz
Algorithm Hash digest
SHA256 2557cc01ab97f9e857ce49818c3ec52f6012acd5fcecfdae77a63addd57cc519
MD5 f9311eae14d462655bdc0242738a3a84
BLAKE2b-256 39ac1c6a7dc8f70f4bfc1baa5303987d43559ae9d51ac3aae081c2fa9607c9f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for orion_v2_evaluator-2.1.5.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.5-py3-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for orion_v2_evaluator-2.1.5-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 9a1e391b3852b8f9d01a8602136f22d1f5237d4a25ac6cdbfdb4d4ba6a703934
MD5 9da030d427c12e0322f931bc50aa8057
BLAKE2b-256 1fbf4b83d67f72a96d8e9b3b6893c4b4634af54cb656eb44c0b099d22be15ec7

See more details on using hashes here.

Provenance

The following attestation bundles were made for orion_v2_evaluator-2.1.5-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.5-py3-none-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for orion_v2_evaluator-2.1.5-py3-none-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 0dc751ac97217acd43a99891b5c7eaaee4a2029b3b88bb56ff130ebc96faccca
MD5 8625fedc67536a84521d17e82c5993ab
BLAKE2b-256 e7dadd9c5a4df8f05fb3f5bb0479e9fc5c762b0d43c94f5e0fe798297805594e

See more details on using hashes here.

Provenance

The following attestation bundles were made for orion_v2_evaluator-2.1.5-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.5-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for orion_v2_evaluator-2.1.5-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 97f750561b6fb6dc6b47d6892d8740ec615d5fa2cffabbcef37c3f3d14d64c9d
MD5 0404c8641dabef0daf087ab7686bd038
BLAKE2b-256 5bca8d55681c0d534c19b4f4775130ac8fc7c473fc7aa68e58c30af75572549c

See more details on using hashes here.

Provenance

The following attestation bundles were made for orion_v2_evaluator-2.1.5-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