Sobre el proyecto
Fastify es un framework web para Node.js centrado en ofrecer una sólida experiencia de desarrollo con una sobrecarga mínima. Está inspirado en Hapi y Express y enfatiza el rendimiento junto con validaciones de seguridad y un desarrollo ergonómico.
Características clave descritas en el README:
- Alto rendimiento: el proyecto afirma que puede servir más de 76 mil peticiones por segundo dependiendo de la complejidad del código, y publica comparaciones sintéticas de referencia "hello world" contra Express, hapi, Restify, Koa y el http.Server nativo. El README señala que estos son puntos de referencia sintéticos que miden la sobrecarga del framework y recomienda evaluar tu propia aplicación.
- Extensible: hooks, plugins y decoradores permiten extender el framework.
- Basado en esquemas: se recomienda JSON Schema (no es obligatorio) para validar rutas y serializar salidas; los esquemas se compilan internamente en funciones eficientes.
- Registro: utiliza Pino como registrador para reducir el costo del registro.
- Amigable para desarrolladores: diseñado para ser expresivo sin sacrificar rendimiento ni seguridad.
Primeros pasos:
- Crea un proyecto con `npm init fastify`, que descarga y ejecuta Fastify Create (basado en la funcionalidad generate de Fastify CLI); luego `npm i`, `npm run dev` para desarrollo o `npm start` para producción.
- Añádelo a un proyecto existente con `npm i fastify`.
- Uso básico: instancia con `Fastify({ logger: true })`, declara rutas como `fastify.get('/', ...)` e inicia con `fastify.listen({ port: 3000 }, callback)`. Se muestran tanto el estilo con callback como con async-await.
- Nota: `.listen` se vincula a localhost por defecto; los contenedores pueden necesitar `0.0.0.0`, lo que conlleva riesgos de seguridad.
La documentación cubre Getting Started, Guides, Server, Routes, Encapsulation, Logging, Middleware, Hooks, Decorators, Validation and Serialization, Fluent Schema, Lifecycle, Reply, Request, Errors, Content Type Parser, Plugins, Testing, Benchmarking, escritura de buenos plugins, HTTP2, Long Term Support, soporte de TypeScript, Serverless y Recomendaciones.
Ecosistema y comunidad: plugins principales mantenidos por el equipo de Fastify, plugins soportados por la comunidad, un multirepo de ejemplos en vivo y un servidor de Discord. Las preguntas de soporte van al repositorio de ayuda de Fastify. Las versiones 3 e inferiores han llegado al final de su vida útil; se ofrecen correcciones de seguridad comerciales para versiones no soportadas a través de un socio, y una matriz de versiones soportadas está documentada en Long Term Support.
El proyecto es un Proyecto At-Large en la OpenJS Foundation, está licenciado bajo MIT y enumera las licencias de dependencias de producción (MIT, ISC, BSD-3-Clause, BSD-2-Clause). La rama principal sigue el lanzamiento v6, con una rama 5.x para v5.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.