Aile v2.0.0

Notas de la versión 2.0.0 de la biblioteca Aile para servidores web.
Escrito por:  FuncProgLinux  el:   mar, 24 de mar de 2026

Etiquetas: DevGNUGoGuixLibsNoticias
La imágen del proyecto no es nuestra. Por favor refiere a la página de Licencias para leer acerca del copyright de la misma.
Índice:

La última versión de aile, la v2.0.0 por fin está lista para ser publicada en los paquetes de Go. Es un cambio de versión mayor, por lo que, necesitarás una rama staging o similar donde probar la compatibilidad con tus programas antes de actualizar la biblioteca.

Instalación

Para instalar la última versión de aile ejecuta el siguiente comando en la raíz del proyecto donde estarás trabajando:

$ go get -u codeberg.org/urutau-ltd/aile/v2

Vamos a ver un listado de cambios introducidos en esta nueva versión.

GNU/GUIX es ahora ciudadano de primera clase

aile ahora maneja un flujo de trabajo de desarrollo 100% adaptado a GNU Guix. Si deseas contribuir se espera que tengas instalado el gestor de paquetes guix ya sea en tu distribución GNU/Linux favorita o en la forma de Guix System.

Para crear un entorno de desarrollo puedes ejecutar:

$ make guix-env

Si deseas probar si la biblioteca compila y es distribuible de forma reproducible, puedes ejecutar:

$ make guix-test

Todo el desarrollo se lleva bajo la última versión de Go que esté disponible en Guix. Por lo que la última versión de Go podría tardar uno o dos meses en actualizarse a la misma disponible en Go.

El flujo de trabajo para desarrollo lo puedes encontrar en el repositorio de la herramienta.

Rutas de importación

La biblioteca ahora tiene una ruta de importación nueva, deberás actualizar la cadena de import en tu proyecto de Go. Todos los imports mantienen el mismo patrón por lo que, puedes actualizar de manera trivial con sed o awk si te lo propones.

import "codeberg.org/urutau-ltd/aile/v2"

// Lo mismo para módulos extras
import requestid "codeberg.org/urutau-ltd/aile/v2/x/request_id"
import secureheaders "codeberg.org/urutau-ltd/aile/v2/x/secure_headers"

Se eliminaron los handlers con patrones "en crudo".

El API que exponía App.Handle y App.HandleFunc se ha eliminado de esta versión de la biblioteca:

// v1.x
app.HandleFunc("GET /users/{id}", getUser)
app.HandleFunc("POST /users", createUser)

// v2.x
app.GET("/users/{id}", getUser)
app.POST("/users", createUser)

Esto hace explícita la declaración de rutas, es compatible con los patrones soportados por net/http -> http.ServeMux.

Helper de estáticos

Si lo necesitas, la v2.0.0 de Aile ahora tiene un helper para que puedas servir archivos estáticos, sea de un directorio local o de un embed.FS:

if err := app.Static("/assets", assetsFS); err != nil {
	log.Fatal(err)
}

Para mantener la compatiblidad, si no deseas usar App, puedes usar el handler de forma independiente:

h, err := aile.StaticHandler("/assets/", assetsFS)

Ambas utilidades son wrappers alrededor de http.FileServerFS y http.StripPrefix

Errores solucionados

Algunos errores presentes en la v1.X fueron corregidos en la v.2.0.0:

Pronto estaremos compartiendo una publicación como puedes hacer un stack sencillo con aile y otras herramientas para crear aplicaciones web fullstack, todo de una forma minimalista y veloz.

¡Gracias por leer el blog de Urutaú Limited! 💜🦉