Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

HEIR: Homomorphic Encryption Intermediate Representation

GitHub Workflow Status (with event) GitHub Contributors GitHub Discussions GitHub License OpenSSF Scorecard

An MLIR-based toolchain for homomorphic encryption compilers. Read the docs at the HEIR website.

For more information on MLIR, see the MLIR homepage.

Quickstart

There are currently three ways to use HEIR:

  • Use bazel and rules_heir with either the OpenFHE or Lattigo backends.
  • Install OpenFHE and use the heir_py Python package.
  • Install HEIR from source and invoke the heir-opt and heir-translate binaries directly, extracting the generated backend code and integrating it into your project manually.

See Getting Started for more details.

Building from source

This project uses bazel for its build system. Install bazelisk to manage the bazel version automatically. Then, with bazel on your path (pointing to bazelisk), run the following to build the main pass-running tool.

bazel build //tools:heir-opt

Or run an end-to-end test like

bazel test //tests/Examples/openfhe/ckks/halevi_shoup_matvec:all

HEIR depends on LLVM (from source) so a clean build may take 30 minutes depending on your machine. For faster builds, use BuildBuddy. Sign up for an account, create an API key, and add the following to .bazelrc.user in the root of the HEIR workspace:

common --remote_header=x-buildbuddy-api-key=<YOUR_API_KEY>
common --config=remote

This should reduce a clean build time to about 5 minutes.

See the bazel tips page for more example commands and tips on using bazel.

Supported backends and schemes

Backend Library BGV BFV CKKS CGGI
OpenFHE ✅ ✅ ✅ ❌
Lattigo ✅ ✅ ✅ ❌
tfhe-rs ❌ ❌ ❌ ✅
Jaxite ❌ ❌ ❌ ✅

Note some backends do not support all schemes.

Contributing

There are many ways to contribute to HEIR:

Citations

The HEIR project can be cited in academic work through the following entry:

@misc{ali2025heir,
      title={HEIR: A Universal Compiler for Homomorphic Encryption},
      author={Asra Ali and Jaeho Choi and Bryant Gipson and Shruthi Gorantala
              and Jeremy Kun and Wouter Legiest and Lawrence Lim and Alexander
              Viand and Meron Zerihun Demissie and Hongren Zheng},
      year={2025},
      eprint={2508.11095},
      archivePrefix={arXiv},
      primaryClass={cs.CR},
      url={https://arxiv.org/abs/2508.11095},
}

Support disclaimer

This is not an officially supported Google product.

Metadata

Release files for belfort-heir 2026.10.7.dev0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for belfort-heir 2026.10.7.dev0
File Size Uploaded
belfort_heir-2026.10.7.dev0.tar.gz 16.1 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for belfort-heir 2026.10.7.dev0
File Interpreter ABI Platform
belfort_heir-2026.10.7.dev0-cp310-abi3-manylinux_2_28_x86_64.whl CPython 3.10 abi3 Linux glibc 2.28+ x86-64 Details
belfort_heir-2026.10.7.dev0-cp310-abi3-manylinux_2_28_aarch64.whl CPython 3.10 abi3 Linux glibc 2.28+ ARM64 Details
belfort_heir-2026.10.7.dev0-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details

Total release size: 124.0 MB

Release files / belfort_heir-2026.10.7.dev0.tar.gz

Download URL belfort_heir-2026.10.7.dev0.tar.gz
Size 16.1 MB
Tags Source
SHA-256 checksum
How to use checksums
bd1ff73e74eb96145925044886e9b8f607e7e98ba1ba22ab576888c9232b87c5
BLAKE2b-256 checksum
How to use checksums
83ef3a3f3b46be924e18d157e8535fef38c8fcba08d9034f5e2b2f84a76df977
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / belfort_heir-2026.10.7.dev0-cp310-abi3-manylinux_2_28_x86_64.whl

Download URL belfort_heir-2026.10.7.dev0-cp310-abi3-manylinux_2_28_x86_64.whl
Size 35.3 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
c8d0cf4fbfc16073965c738fc6dc0c1636ca2c6dad445b26bac537f89083c3a7
BLAKE2b-256 checksum
How to use checksums
0d7fa40e2774dab39825248ed3243e30e6bea9ca0a8803bfd25c648064c3ae5b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / belfort_heir-2026.10.7.dev0-cp310-abi3-manylinux_2_28_aarch64.whl

Download URL belfort_heir-2026.10.7.dev0-cp310-abi3-manylinux_2_28_aarch64.whl
Size 33.3 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
2c69add9900cf0f1d2398fd29c577fad9647332dd8666954d9e3b2d2df0be7a6
BLAKE2b-256 checksum
How to use checksums
4148c9e6d465650aceda38f29165481df20e872252f6bbe799cb599a72f1d599
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / belfort_heir-2026.10.7.dev0-cp310-abi3-macosx_11_0_arm64.whl

Download URL belfort_heir-2026.10.7.dev0-cp310-abi3-macosx_11_0_arm64.whl
Size 39.3 MB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2ee003be2df85d5e16bb537c6d7d8f1f4606b2a20f807ad309f3c0dfc75eefb5
BLAKE2b-256 checksum
How to use checksums
84c5d842785853d104869a5f7caf93b4a6f47d90135d2f71291ba9ec1a71bbe8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page