# Dusk v0.1.0 - Table of Contents

> Zenoh + Iroh cluster for Elixir, BLAKE3/S5 and S3 storage. HTTP/3 is gale.

## Pages

- [Dusk](readme.md)
- [LICENSE](license.md)
- [Changelog](changelog.md)
- [Funding](funding.md)
- [BLAKE3 vs XXH3 (and FNV-1a)](hash.md)
- [Contributing](contributing.md)
- [Security](security.md)
- [Dusk bench](results.md)

## Modules

- [Dusk](Dusk.md): Cluster over **Zenoh** (`zenohd`) and **Iroh** (iron / P2P QUIC).
- [Dusk.CLI](Dusk.CLI.md): Standalone CLI (`dusk`) and Mix task (`mix dusk`).
- [Dusk.Cluster](Dusk.Cluster.md): Supervisor for **Zenoh** and/or **Iroh**.
- [Dusk.Elixir](Dusk.Elixir.md): Pure-Elixir fallbacks for benches when the NIF is absent.
- [Dusk.FLAME.Backend](Dusk.FLAME.Backend.md): Phoenix **FLAME** backend with Zenoh and/or Iroh overlay.
- [Dusk.Iroh](Dusk.Iroh.md): Iroh (iron) endpoint wrapper. Optional `iroh_beam`.
- [Dusk.Native](Dusk.Native.md): Zig NIF: Zenoh key-expr match and FNV-1a hash64.
- [Dusk.Storage](Dusk.Storage.md): Content-addressed blobs: **BLAKE3** identity, **XXH3** fast checksum.
- [Dusk.Storage.CID](Dusk.Storage.CID.md): S5-style blob CID: `0x5b 0x82 0x1e` + BLAKE3-256 + unsigned LEB128 size.

- [Dusk.Storage.S3](Dusk.Storage.S3.md): S3 PUT/GET with optional AWS SigV4. BLAKE3 stored as `x-amz-meta-blake3`.
- [Dusk.Storage.S5](Dusk.Storage.S5.md): S5 blob client. Content-addressed with BLAKE3; HTTP to an S5 node.
- [Dusk.Strategy.Iroh](Dusk.Strategy.Iroh.md): libcluster strategy: membership over **Iroh** (iron / P2P QUIC).
- [Dusk.Strategy.Zenoh](Dusk.Strategy.Zenoh.md): libcluster strategy: membership gossip over a Zenoh key.
- [Dusk.Zenoh](Dusk.Zenoh.md): Brokered Zenoh client. Talks to **zenohd**, not peer-mesh.

## Mix Tasks

- [mix dusk](Mix.Tasks.Dusk.md): Dusk CLI. Same as the `dusk` escript.
- [mix dusk.binary](Mix.Tasks.Dusk.Binary.md): Build a Burrito single-file CLI (ERTS inside). Needs zig + xz.
- [mix dusk.install](Mix.Tasks.Dusk.Install.md): Install dusk: Burrito single binary if possible, else escript.

