go-like
go-like es un conjunto de piezas con estilo Go para crear servicios backend en TypeScript. Separa el ciclo de vida, el contexto, las llamadas entre servicios, el descubrimiento, la mensajería, la configuración, el almacenamiento, la salud y la observabilidad en paquetes pequeños. No te obliga a cambiar de framework ni a casarte con un runtime concreto.
El código portable se queda en las Web API estándar: Request, Response, Headers, AbortSignal, Web Streams y un fetch inyectado. Lo que depende de Node.js o Bun vive en una entrada aparte. Los frameworks que ya exponen Fetch no necesitan un adaptador de go-like: pasa app.fetch de Hono, Elysia o H3 2.x directamente a @go-like/web; H3 1.x usa toWebHandler(app). Los adaptadores de ciclo de vida se reservan para recursos como Croner, BullMQ, NATS, Pino y Winston.
Empieza por Primeros pasos y continúa con Clínica: de 0 a 1 para recorrer una ruta guiada por milestones. Si ya tienes un servicio, consulta Migración y adopción; para comparar responsabilidades entre herramientas, lee go-like frente a otras herramientas.
La referencia de paquetes y la referencia de paquetes y providers aclaran quién hace qué, y Verificación distingue lo que se ha probado de verdad de lo que solo sonaría razonable sobre el papel.
Elige tu recorrido
- Principiante: empieza por Primeros pasos y sigue Clínica: de 0 a 1 hasta ver Handler, señal de ready y parada.
- Experto de TypeScript o Go: lee Arquitectura, después Llamadas de servicio y la referencia de providers; comprueba ownership y estado terminal.
- Usuario de framework: lee Comparación y Migración y adopción para conservar tu router y añadir solo la frontera necesaria.
Qué significa aquí «estilo Go»
El Context va primero en las operaciones que pueden bloquear, la propiedad de los recursos queda a la vista y cada parada tiene un resultado terminal observable. No copiamos las mayúsculas de Go ni fingimos que JavaScript tiene canales o goroutines: TypeScript conserva sus exports normales y cada proveedor mantiene sus objetos nativos.
@go-like/protoc-gen-like genera código Protobuf RPC con Context como primer argumento sobre Protobuf-ES. @go-like/transport-grpc-buf ofrece unary y server-streaming de Connect/gRPC-Web mediante Fetch; /native añade gRPC estándar con las cuatro cardinalidades, incluidas client-streaming y bidi. Es una vía independiente del camino interno Fetch/SSE.
gRPC administrado en Node 26.12.1 y Bun 1.4.4 pasó la regresión de drain con un consumidor lento. No se ha verificado la resolución de los límites históricos de cancelación y apagado de Connect 2.1.2 y Bun 1.4.2 Fetch.