Saltar al contenido
Framework Ecosystems LabsUn contrato, muchos ecosistemas, la misma prueba.

🔥 Hono — 2021#

⬅️ Atlas · 🟨 Ecosistema JavaScript · 🗂️ Índice

Hono está construido sobre las API estándar de la webRequest, Response, fetch— en lugar de sobre las API propias de Node.js. Esa decisión le permite ejecutarse en Node, Deno, Bun y entornos de borde sin adaptador.

Aparición 2021
Clasificación web-framework
Ecosistema JavaScript / TypeScript
Licencia MIT
Estado 🌊 Emergente
Documentación https://hono.dev/docs/

💡 Los estándares como capa de portabilidad#

// Request y Response son los mismos objetos que usa fetch en el navegador.
app.post("/tasks", async (c) => {
  const entrada = await c.req.json();
  return c.json({ id: "t1", title: entrada.title }, 201);
});

Node.js definió sus propias abstracciones de petición y respuesta en 2009, antes de que la plataforma web tuviera las suyas. Deno, Bun y los entornos de borde nacieron después y adoptaron las del estándar.

Hono apuesta por esas últimas, y el resultado es que el mismo código corre en varios runtimes. Es la misma estrategia de portabilidad que representa la interfaz común del ecosistema Python —ver la ficha de Starlette— resuelta aquí apoyándose en la plataforma web.

Para el módulo 11, es una estrategia de salida fuerte: cambiar de runtime deja de ser una reescritura.

⚖️ Lo que hay que declarar#

1. Es emergente. Menos recorrido y menos ecosistema que Express o Fastify.

2. La portabilidad no es total. Cada runtime tiene capacidades distintas —sistema de archivos, procesos, límites de tiempo—, y el código que las usa no es portable aunque el framework lo sea.

3. Los entornos de borde imponen restricciones. Tiempo de ejecución limitado, sin estado entre peticiones, sin acceso a disco. Encajan para transformaciones y enrutado, no para todo.

🎓 Las dos lecciones#

1. Apoyarse en el estándar produce portabilidad. Las API propias son cómodas y atan; las estándar son un contrato compartido.

2. Portabilidad del framework no es portabilidad de la aplicación. Lo que usa capacidades específicas del entorno sigue sin moverse.

🔗 Enlaces#

Fuentes#