Orian

Hex.pmHexdocsCILicense: MITSponsor

Fast object transfer for Elixir — s5cmd / Skyplane class, plus BLAKE3 content ids.

gale — Phoenix HTTP/3
ingot — Iroh + Zenoh cluster (Hex: `ingot_cluster`)
dusk — Zenoh + Iroh cluster
orian — parallel S3/S5 transfer
zeiroh — Phoenix FLAME overlay
{:orian, "~> 0.1"}
# from this repo
mix orian.install
# prefers a Burrito single binary (ERTS inside); else Mix escript
# mix orian.binary # burrito_out/orian_<os>
# Linux/macOS: ~/.local/bin Windows: %LOCALAPPDATA%\elixcoder\bin
orian cp data/* s3://bucket/prefix/
orian sync s3://src/p/ s3://dst/p/
orian ls s3://bucket/
orian --dry-run cp data/ s3://bucket/
orian run jobs.txt
orian version

Inside a Mix project that depends on Orian: mix orian cp … (same CLI).

Orian.Transfer.cp("data/*", "s3://bucket/", numworkers: 64, concurrency: 8)
s5cmdSkyplaneOrian
Parallel object workers--numworkersgateway VMsnumworkers
Multipart / parts per file--concurrencychunk + connectionsconcurrency + part size
cpsynclsrmrunyescpsyncyes
Cross-cloud overlay VMsnoyesnot yet (streamed S3↔S3)
BLAKE3 / S5 CIDnonoyes (Zig + Rust NIF)
S3-compatible / MinIO / gs:// XMLyesAWS/GCP/AzureS3 XML + endpoint-url

High throughput is a primary goal. Dirty-CPU NIFs, HTTP keep-alive (512 sessions), 16 MiB parts, parallel range GET, Rust BLAKE3 on the hash path. See PERFORMANCE.md.

Tune like s5cmd: many small files → high numworkers; few large files → high concurrency.

Env: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION, AWS_ENDPOINT_URL.

mix bench hashes: benchmark/RESULTS.md. MIT. https://github.com/niranjanaryan/orian