Metadata-Version: 2.4
Name: heir_py
Version: 0.0.1
Summary: The HEIR compiler
Author-email: Jeremy Kun <jkun@google.com>, Asra Ali <asraa@google.com>, Alexander Viand <alexander.viand@intel.com>
License-Expression: MIT AND Apache-2.0
Project-URL: Homepage, https://heir.dev
Project-URL: Issues, https://github.com/google/heir/issues
Classifier: Topic :: Security :: Cryptography
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Compilers
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numba>=0.61.0
Requires-Dist: numpy>=2.0.2
Requires-Dist: llvmlite>=0.44.0
Requires-Dist: pybind11>=2.13.6
Requires-Dist: pybind11_global>=2.13.6
Requires-Dist: colorama>=0.4.6
Requires-Dist: absl-py>=2.1.0
Dynamic: license-file

# HEIR: Homomorphic Encryption Intermediate Representation

![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/google/heir/build_and_test.yml)
![GitHub Contributors](https://img.shields.io/github/contributors/google/heir)
![GitHub Discussions](https://img.shields.io/github/discussions/google/heir)
![GitHub License](https://img.shields.io/github/license/google/heir)
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/google/heir/badge)](https://securityscorecards.dev/viewer/?uri=github.com/google/heir)

An MLIR-based toolchain for
[homomorphic encryption](https://en.wikipedia.org/wiki/Homomorphic_encryption)
compilers. Read the docs at [the HEIR website](https://heir.dev).

For more information on MLIR, see the [MLIR homepage](https://mlir.llvm.org/).

## Demo: HEIR Jupyter Playground

This is a way to start running [HEIR](https://heir.dev) compiler passes in a
Jupyter notebook or IPython notebook without having to build the entire HEIR
project from scratch.

Uses the
[nightly HEIR build](https://github.com/google/heir/releases/tag/nightly). In
this demo, we'll run locally in this github clone to access some external
dependencies (e.g. Yosys).

## Usage

Load Jupyter in the `scripts/jupyter` notebook:

```bash
cd scripts/jupyter
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
jupyter notebook
```

The demo is in [Demo.ipynb](scripts/jupyter/Demo.ipynb).

Then connect to your Jupyter runtime and start executing the demo!

## Contributing

There are many ways to contribute to HEIR:

- Come to our [twice-monthly meetings](https://heir.dev/community/) to discuss
  active work on HEIR and future project directions. The meetings are recorded
  and posted to our [blog](https://heir.dev/blog/)
- Work on an issue marked
  ["good first issue"](https://github.com/google/heir/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
  or browse issues [labeled by topic](https://github.com/google/heir/labels).
- Tell us about what you'd like to use HEIR for in an
  [offline discussion thread](https://github.com/google/heir/discussions).
- Help us understand new FHE research: either
  - Read a paper tagged under
    [research synthesis](https://github.com/google/heir/labels/research%20synthesis)
    and summarize the novel techniques that could be ported to HEIR.
  - File new issues under
    [research synthesis](https://github.com/google/heir/labels/research%20synthesis)
    to alert us of papers that should be investigated and incorporated into
    HEIR.

## Citations

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

```text
@Misc{HEIR,
  title={{HEIR: Homomorphic Encryption Intermediate Representation}},
  author={HEIR Contributors},
  year={2023},
  note={\url{https://github.com/google/heir}},
}
```

## Support disclaimer

This is not an officially supported Google product.
