# Find a type or operation.

> Choose a 0.9.0 crate reference, or build the API for the pinned source guide.

- Canonical page: https://www.poulpy.dev/docs/api-reference/
- Poulpy version: 0.9.0
- Source revision: [`7dd13e6aa9808982f5355fb6acb70ca434de4e35`](https://github.com/poulpy-fhe/poulpy/tree/7dd13e6aa9808982f5355fb6acb70ca434de4e35)
- Documentation reviewed: 2026-10-08

## Scheme APIs

| Crate | Use it for |
| --- | --- |
| [poulpy-ckks](https://docs.rs/poulpy-ckks/0.9.0/poulpy_ckks/) | Encoding, encrypted numerical arithmetic, polynomial evaluation, and bootstrapping |
| [poulpy-bin-fhe](https://docs.rs/poulpy-bin-fhe/0.9.0/poulpy_bin_fhe/) | Blind rotation, circuit bootstrapping, and encrypted integer arithmetic |
| [poulpy-mhe](https://docs.rs/poulpy-mhe/0.9.0/poulpy_mhe/) | Multiparty key generation, key switching, and share conversions |

Start with the [CKKS](https://www.poulpy.dev/docs/ckks/) or [Binary FHE](https://www.poulpy.dev/docs/binary-fhe/) guide if you are looking for a runnable example.

## Core and hardware abstraction

| Crate | Use it for |
| --- | --- |
| [poulpy-core](https://docs.rs/poulpy-core/0.9.0/poulpy_core/) | Ciphertexts, keys, encryption, and scheme-independent operations |
| [poulpy-hal](https://docs.rs/poulpy-hal/0.9.0/poulpy_hal/) | Backend layouts, operation traits, and scratch memory |

The [codebase overview](https://www.poulpy.dev/docs/getting-started/) explains the dependency direction and extension points.

## Backend APIs

These links cover the available published CPU backend APIs. Poulpy's backend interface is hardware-independent, and a GPU backend is in active development. See [Hardware targets](https://www.poulpy.dev/docs/backends/#hardware-targets) for the broader scope.

- [Portable](https://docs.rs/poulpy-cpu-portable/0.9.0/poulpy_cpu_portable/)
- [AVX2 / FMA source](https://github.com/poulpy-fhe/poulpy/tree/7dd13e6aa9808982f5355fb6acb70ca434de4e35/poulpy-cpu-avx/) — the docs.rs build failed at 0.8.3 and is not yet rechecked for 0.9.0; generate the pinned reference locally with the command below
- [AVX-512 / IFMA](https://docs.rs/poulpy-cpu-avx512/0.9.0/poulpy_cpu_avx512/)
- [ARM NEON](https://docs.rs/poulpy-cpu-arm/0.9.0/poulpy_cpu_arm/)

For AVX2/FMA documentation from the [pinned checkout](https://www.poulpy.dev/docs/versions/):

```sh
RUSTFLAGS="-C target-feature=+avx2,+fma" cargo doc --locked --no-deps -p poulpy-cpu-avx --features enable-avx,enable-ckks --open
```

## Match the reference to your checkout

The links above target the 0.9.0 APIs. Technical guides and examples use the pinned [source baseline](https://www.poulpy.dev/docs/versions/). Use the version selector for another published dependency version. For a source checkout, you can generate the reference for the exact code you are using:

```sh
cargo doc --locked --no-deps -p poulpy-hal -p poulpy-core -p poulpy-cpu-portable -p poulpy-ckks -p poulpy-bin-fhe --features poulpy-cpu-portable/enable-ckks --open
```
