fastify / fastify
- суббота, 9 сентября 2017 г. в 03:14:18
Fast and low overhead web framework, for Node.js
An efficient server implies a lower cost of the infrastructure, a better responsiveness under load and happy users. How can you efficiently handle the resources of your server, knowing that you are serving the highest number of requests as possible, without sacrificing security validations and handy development?
Enter Fastify. Fastify is a web framework highly focused on speed and low overhead. It is inspired from Hapi and Express and as far as we know, it is one of the fastest web frameworks in town. Use Fastify can increase your throughput up to 100%.
npm i fastify --save
// Require the framework and instantiate it
const fastify = require('fastify')()
// Declare a route
fastify.get('/', function (request, reply) {
reply.send({ hello: 'world' })
})
// Run the server!
fastify.listen(3000, function (err) {
if (err) throw err
console.log(`server listening on ${fastify.server.address().port}`)
})Do you want to know more? Head to the Getting Started.
Machine: Intel Xeon E5-2686 v4 @ 2.30GHz (4 cores, 8 threads), 16GiB RAM (Amazon EC2 m4.xlarge)
Method:: autocannon -c 100 -d 5 -p 10 localhost:3000 * 2, taking the second average
| Framework | Version | Router? | Requests/sec |
|---|---|---|---|
| hapi | 16.5.0 | ✓ | 3,194 |
| Express | 4.15.3 | ✓ | 9,418 |
| Restify | 5.0.1 | ✓ | 12,014 |
| take-five | 1.3.4 | ✓ | 18,658 |
Koa (koa-router) |
2.3.0 (koa-router@7.2.1) |
✓ | 19,650 |
| Koa | 2.3.0 | ✗ | 21,349 |
| Fastify | 0.25.2 | ✓ | 23,301 |
| - | |||
http.Server |
8.2.1 | ✗ | 33,435 |
Getting StartedServer MethodsRoutesLoggingMiddlewaresHooksDecoratorsValidation and SerializeLifecycleReplyRequestContent Type ParserPluginsTestingPlugins Guidepoint-of-view
Templates rendering (ejs, pug, handlebars, marko) plugin support for Fastify.fastify-mongodb
Fastify MongoDB connection plugin, with this you can share the same MongoDb connection pool in every part of your server.fastify-redis
Fastify Redis connection plugin, with this you can share the same Redis connection in every part of your server.fastify-swagger
Swagger documentation generator for Fastifyfastify-multipart
Multipart support for Fastifyfastify-bearer-auth
Bearer auth plugin for Fastifyfastify-pigeon Bankai assets compiler for Fastifyfastify-react React server side rendering support for Fastify with Nextfastify-jwt JWT utils for Fastify, internally uses jsonwebtokenfastify-websocket WebSocket support for Fastify. Built upon websocket-streamfastify-helmet Important security headers for Fastifyfastify-auth Run multiple auth functions in Fastifyfastify-leveldb Plugin to share a common LevelDB connection across Fastify.fastify-apollo Run an Apollo Server with Fastify.fastify-accepts to have accepts in your request object.fastify-accepts-serializer to serialize to output according to Accept headerfastify-sse to provide Server-Sent Events with reply.sse( … ) to Fastifyhttps://www.npmjs.com/~matteo.collina
https://twitter.com/matteocollina
https://www.npmjs.com/~delvedor
This project is kindly sponsored by:
Licensed under MIT.