Dusk
Funding
If you find Dusk useful, please consider sponsoring to support ongoing development:
- GitHub Sponsors — direct support
- See FUNDING.md for related projects and why funding matters.
Zenoh brokered cluster for Elixir. Short name, horizon-at-sundown.
gale — Phoenix HTTP/3
ingot — Iroh + Zenoh (Hex: `ingot_cluster`)
dusk — Zenoh + Iroh
orian — BLAKE3 / S3 / S5 storage
zeiroh — Phoenix FLAME overlay
{:dusk, "~> 0.1"}
{:zenohex, "~> 0.10"}
mix dusk.install
# prefers a Burrito single binary (ERTS inside); else Mix escript
# mix dusk.binary # burrito_out/dusk_<os>
# Linux/macOS: ~/.local/bin Windows: %LOCALAPPDATA%\elixcoder\bin
dusk backends
dusk match "a/**" a/b
dusk hash ./file --algo blake3
dusk put ./file
Inside a Mix project: mix dusk backends.
{Dusk, connect: "tcp/127.0.0.1:7447", key: "dusk/cluster/**"}
{Dusk, iroh: [alpns: ["dusk/1"]], zenoh: [connect: "tcp/127.0.0.1:7447"]}
zenohd --listen tcp/0.0.0.0:7447
Zig NIF for key-expr match. MIT. github.com/niranjanaryan/dusk
libcluster
config :libcluster,
topologies: [
dusk: [
strategy: Dusk.Strategy.Zenoh,
config: [connect: "tcp/127.0.0.1:7447", key: "dusk/cluster/nodes"]
]
]
Phoenix FLAME
config :libcluster,
topologies: [
dusk_iroh: [strategy: Dusk.Strategy.Iroh, config: [alpns: ["dusk/1"]]]
]
config :flame, :backend, {Dusk.FLAME.Backend, overlay: :both, live: false}
Limits: local spawn loop, not elastic FLAME (FLAME.Terminator /
remote boot). Eval: EVAL.md. Scaling:
SCALING.md.
Storage: Dusk.Storage.put/2 (:memory, :s3, :s5). Hashes: HASH.md.