Librería de utilidades puras para Elixir — sin ejecución de shell. Proporciona operaciones de ficheros, criptografía, manejo de entorno/configuración, reintentos, caché, y utilidades puras de SO/Procesos.
Las operaciones con shell (Docker, Git, SSH, K8s, Compress, Network, OS arch/kernel/memoria, Proc ps/kill/lsof, File watch) se movieron a Trebejo v1.0.0.
Inicio rápido
def deps do
[
{:apero, "~> 3.0.0"}
]
endMódulos
File & Path
Apero.File.dir?("lib") # => true
Apero.File.file?("mix.exs") # => true
Apero.File.read("config.json") # => {:ok, contenido}
Apero.File.write("salida.txt", "hola") # => :ok
Apero.File.atomic_write("salida.txt", "atómico!") # => :ok
Apero.File.checksum("mix.exs", :sha256) # => {:ok, digest}
Apero.File.copy("a.txt", "b.txt") # => {:ok, bytes}
Apero.File.generate_tree(["lib/", "test/"]) # => árbol ASCIICryptografía
Apero.Crypto.sha256("datos") # => hex digest
Apero.Crypto.random_hex(16) # => token aleatorio
{:ok, ct} = Apero.Crypto.encrypt("secreto") # AES-256-GCM
{:ok, pt} = Apero.Crypto.decrypt(ct, clave)Entorno y Configuración
Apero.Env.load(".env") # carga archivo .env
Apero.Conf.load("app.yaml") # {:ok, config}Caché
Apero.Cache.put(:mi_cache, :clave, "valor")
{:ok, valor} = Apero.Cache.get(:mi_cache, :clave)Reintentos
Apero.Retry.with(fn -> Api.llamar() end, max_retries: 3)SO y Proc (subconjunto puro)
Apero.OS.type() # => :linux | :macos | :windows
Apero.OS.hostname() # => "miservidor"
Apero.Proc.command_exists?("git") # => true
Apero.Proc.vm_memory() # => bytesArquitectura
apero (stdlib pura)
├── File — operaciones de ruta, I/O atómico, árboles, GenServer watcher
├── Crypto — hashing (SHA-256/512, MD5), cifrado AES, claves
├── Env/Conf — variables de entorno, archivos de config (JSON, YAML, TOML)
├── Cache — ETS en memoria con TTL
├── Retry — reintentos configurables con backoff
├── OS — detección de tipo, hostname (Erlang puro)
└── Proc — disponibilidad de comandos, introspección VM (Elixir puro)Lo que se movió a Trebejo
| Apero (v2.x) | Trebejo (v1.0.0) |
|---|---|
Apero.Docker.* | → Trebejo.Docker.* |
Apero.Git.* | → Trebejo.Git.* / Trebejo.Git.Local.* |
Apero.SSH.* | → Trebejo.SSH.* |
Apero.Kubernetes.* | → Trebejo.Kubernetes.* |
Apero.Compress.* | → Trebejo.Compress.* |
Apero.Network.* | → Trebejo.Network.* |
| Apero.OS (arch, kernel, etc.) | → Trebejo.OS.* |
| Apero.Proc (ps, kill, lsof, etc.) | → Trebejo.Proc.* |
| Apero.File.watch | → Trebejo.File.watch/3 |
| Apero.File.IO.disk_usage | → Trebejo.File.IO.disk_usage/1 |
Licencia
MIT
An English version of this README is available at ../README.md.