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

File metadata

  • Download URL: orion_v2_evaluator-2.1.8.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.8.tar.gz
Algorithm Hash digest
SHA256 ef6cb2da5e84c89719fa3dc0f2fd5e110dd797ea26c89327ef60227e9f553fa5
MD5 0a0243da97a1cba5b5624ac073e98915
BLAKE2b-256 0f1a7cbe216275faf347a377e35969710315532ea1d7914f3514536e51309bb1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for orion_v2_evaluator-2.1.8-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 a295050430024bdd7edbf9fe229cd200e756f3b107eb51c37a18ac660cd9c136
MD5 ad85465e0459607c7c8c07194e67d355
BLAKE2b-256 83c19d58c2cd1ddf5f126c62788f2f6e29ae3efa6585845e36b89b7e7f64ffe7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for orion_v2_evaluator-2.1.8-py3-none-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 73fd9870d2b5839e4039becad85031e3f16b4c647befa426681519f716fcc046
MD5 19a2bfde531172b2866b5f3158b4a741
BLAKE2b-256 556fd242ed4d2d3b7301fd8f6c514799c6509782422daa7ae06fdefb571a06b7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for orion_v2_evaluator-2.1.8-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d799d05a726c6db8b54f5d884c8dae0bbebd8210537c434ff71d12dc5f2055ce
MD5 ed4a378e680aea50cd086b87c347a5e6
BLAKE2b-256 e27afc5c0ba81d681544c807296b2b4b1200de8afc32cb4b1aed6ac47cc98aae

See more details on using hashes here.

Provenance

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