Módulos json, csv, toml, hex — Formatos de Datos
Archivos: stdlib/std/json.fa, stdlib/std/csv.fa, stdlib/std/toml.fa, stdlib/std/hex.fa, stdlib/std/codificacion.fa, stdlib/std/binario.fa
¿Por qué existen?
Proveen capacidades de serialización y deserialización en los formatos de datos más comunes: JSON, CSV, TOML, y codificaciones como hex, Base64 y binario. Son esenciales para interoperabilidad con otros sistemas y lenguajes.
Módulo json — JavaScript Object Notation
| Función | Descripción |
json.parsear(texto) | Parsea un texto JSON a un valor Forja (mapa, arreglo, número, texto, booleano) |
json.generar(valor) | Convierte un valor Forja a texto JSON |
json.prettify(valor) | Convierte a JSON con formato legible (indentado) |
json.desde_archivo(ruta) | Lee y parsea un archivo JSON |
json.a_archivo(ruta, valor) | Escribe un valor como JSON a un archivo |
Módulo csv — Comma-Separated Values
| Función | Descripción |
csv.leer(texto) | Parsea texto CSV a un arreglo de mapas (cabecera → valor) |
csv.generar(datos) | Convierte un arreglo de mapas a texto CSV |
csv.leer_archivo(ruta) | Lee y parsea un archivo CSV |
csv.guardar_archivo(ruta, datos) | Guarda datos como CSV en un archivo |
csv.leer_con_separador(texto, sep) | Parsea CSV con separador personalizado (TSV, etc.) |
Módulo toml — Tom's Obvious Minimal Language
| Función | Descripción |
toml.parsear(texto) | Parsea texto TOML a un mapa Forja |
toml.generar(mapa) | Convierte un mapa a texto TOML |
toml.desde_archivo(ruta) | Lee y parsea un archivo TOML |
Módulo hex y codificacion — Codificaciones
| Función | Módulo | Descripción |
hex_codificar(bytes) | hex | Convierte bytes a string hexadecimal |
hex_decodificar(hex) | hex | Convierte hexadecimal a bytes |
base64_codificar(datos) | codificacion | Codifica bytes a Base64 (RFC 4648) |
base64_decodificar(cadena) | codificacion | Decodifica Base64 a bytes |
uuid_generar() | codificacion | Genera un UUID v4 aleatorio |
binario_a_texto(bytes) | binario | Convierte datos binarios a texto legible |
Casos de uso
- APIs REST: Parsear respuestas JSON de servicios web
- Archivos de configuración: Leer config en JSON, TOML o CSV
- Procesamiento de datos: Analizar datos tabulares con CSV
- Interoperabilidad: Intercambiar datos con otros lenguajes y sistemas
- Criptografía: Codificar claves y hashes en hex o Base64
💡 Rendimiento: Los módulos JSON y TOML están implementados con bindings nativos a las crates serde_json y toml de Rust, ofreciendo rendimiento cercano a Rust nativo.