Packages

Pure utility library for Elixir - file operations, cryptography, env/config files, retry, cache, and OS/Proc introspection (no shell execution).

Current section

Files

Jump to
apero lib apero.ex
Raw

lib/apero.ex

defmodule Apero do
@moduledoc """
Apero — Utility library for system operations and development workflows.
Provides domain-specific tools organised into independent modules behind a
consistent `{:ok, result} | {:error, reason}` interface.
## File & Path
- `Apero.File` — file operations, path utilities, atomic writes, temp resources, locking, watching
- `Apero.Compress` — zip, tar and gzip compression
## Git & VCS
- `Apero.Git` / `Apero.Git.Local` — repository management, sync, commits
## Containers
- `Apero.Docker` — Docker / Podman lifecycle management
## Security
- `Apero.Crypto` — hashing, AES encryption, key and password generation
- `Apero.Crypto.Hash` — SHA-256, SHA-512, MD5, HMAC
- `Apero.Crypto.Cipher` — AES-256-GCM, ChaCha20-Poly1305, AES-256-CTR streaming
- `Apero.Crypto.Key` — PBKDF2, Argon2id, ECDH, RSA key generation
- `Apero.Crypto.Random` — key generation, random hex/token/password, secure_compare
## Environment
- `Apero.Env` — environment variable management and `.env` files
- `Apero.Conf` — config file validation, linting and formatting
## System
- `Apero.OS` — operating system information (type, arch, CPU, memory, disk)
- `Apero.Proc` — process and executable utilities
## Cache
- `Apero.Cache` — unified cache interface with ETS adapter
"""
# Crypto
defdelegate encrypt(plaintext, key \\ nil), to: Apero.Crypto.Cipher
defdelegate decrypt(encoded, key), to: Apero.Crypto.Cipher
defdelegate sha256(data), to: Apero.Crypto.Hash
defdelegate sha512(data), to: Apero.Crypto.Hash
defdelegate md5(data), to: Apero.Crypto.Hash
# Env
defdelegate get_env(key, default \\ nil), to: Apero.Env, as: :get
defdelegate put_env(key, value), to: Apero.Env, as: :put
# OS
defdelegate os_type(), to: Apero.OS, as: :type
defdelegate os_arch(), to: Apero.OS, as: :arch
# Retry
defdelegate retry(fun, opts \\ []), to: Apero.Retry, as: :with
end