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

File metadata

  • Download URL: orion_v2_evaluator-2.1.7.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.7.tar.gz
Algorithm Hash digest
SHA256 4559e9595acaec4161060183a7214b43cc38f25b6d0da0880d2e1fdfda181be3
MD5 279ee46043d72b09f8383105e0589a7b
BLAKE2b-256 c501386e735b10cc2615116a6f17dec819216147e5c750ad998f2576e129afe2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for orion_v2_evaluator-2.1.7-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 a8f7c0c3a6c89684b18678da551ba0483c7ee7197deac87387639863839c6cdb
MD5 df42b1b4d6629fc1f10e5fbff2c712c8
BLAKE2b-256 1f38324ed1facc460c62f61de4f448027f5e64c42afe7b5d6a0f2b2b7d1eb8db

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for orion_v2_evaluator-2.1.7-py3-none-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 487433729fc74b0b5aebacb251c6eb92e52eced50fa09ad414f31cc911f45bcc
MD5 d338cbd7e3eb3edbccb7a8f48719f121
BLAKE2b-256 e421eb21eb96b1230afbe7709b3dae14315455a1c74f5d3ad229a3aa0921d976

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for orion_v2_evaluator-2.1.7-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 560a6c6922b1eedb4289406a3689a02aa091ce491ed749211715296bbdae9bcd
MD5 9e4e218428892c523a761036711a2adc
BLAKE2b-256 fbde9809cd609e565f9948c0c2b67b061df5b366b6d1f532ccb2d1235ffcda88

See more details on using hashes here.

Provenance

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