Gathering detailed insights and metrics for fastify
Gathering detailed insights and metrics for fastify
Gathering detailed insights and metrics for fastify
Gathering detailed insights and metrics for fastify
@fastify/busboy
A streaming parser for HTML form data for node.js
fastify-plugin
Plugin helper for Fastify
@fastify/ajv-compiler
Build and manage the AJV instances for the fastify framework
@fastify/error
A small utility, used by Fastify itself, for generating consistent error objects across your codebase and plugins.
Fast and low overhead web framework, for Node.js
npm install fastify
Typescript
Module System
Node Version
NPM Version
64.9
Supply Chain
98.7
Quality
93.5
Maintenance
100
Vulnerability
99.6
License
JavaScript (91.09%)
TypeScript (8.86%)
Shell (0.05%)
Total Downloads
203,494,598
Last Day
200,027
Last Week
1,823,092
Last Month
9,188,793
Last Year
90,482,265
32,671 Stars
4,258 Commits
2,328 Forks
299 Watching
17 Branches
768 Contributors
Latest Version
5.2.0
Package Id
fastify@5.2.0
Unpacked Size
2.45 MB
Size
444.16 kB
File Count
349
NPM Version
10.8.2
Node Version
20.18.0
Publised On
14 Dec 2024
Cumulative downloads
Total Downloads
Last day
-49.4%
200,027
Compared to previous day
Last week
-15.7%
1,823,092
Compared to previous week
Last month
9.1%
9,188,793
Compared to previous month
Last year
52.4%
90,482,265
Compared to previous year
15
37
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 providing the best developer experience with the least overhead and a powerful plugin architecture. It is inspired by Hapi and Express and as far as we know, it is one of the fastest web frameworks in town.
The main
branch refers to the Fastify v5
release, which is not released/LTS yet.
Check out the 4.x
branch for v4
.
Create a folder and make it your current working directory:
1mkdir my-app 2cd my-app
Generate a fastify project with npm init
:
1npm init fastify
Install dependencies:
1npm i
To start the app in dev mode:
1npm run dev
For production mode:
1npm start
Under the hood npm init
downloads and runs Fastify
Create, which in turn uses the
generate functionality of Fastify CLI.
To install Fastify in an existing project as a dependency:
1npm i fastify
1// Require the framework and instantiate it 2 3// ESM 4import Fastify from 'fastify' 5 6const fastify = Fastify({ 7 logger: true 8}) 9// CommonJs 10const fastify = require('fastify')({ 11 logger: true 12}) 13 14// Declare a route 15fastify.get('/', (request, reply) => { 16 reply.send({ hello: 'world' }) 17}) 18 19// Run the server! 20fastify.listen({ port: 3000 }, (err, address) => { 21 if (err) throw err 22 // Server is now listening on ${address} 23})
with async-await:
1// ESM 2import Fastify from 'fastify' 3 4const fastify = Fastify({ 5 logger: true 6}) 7// CommonJs 8const fastify = require('fastify')({ 9 logger: true 10}) 11 12fastify.get('/', async (request, reply) => { 13 reply.type('application/json').code(200) 14 return { hello: 'world' } 15}) 16 17fastify.listen({ port: 3000 }, (err, address) => { 18 if (err) throw err 19 // Server is now listening on ${address} 20})
Do you want to know more? Head to the Getting Started
.
Note
.listen
binds to the local host,localhost
, interface by default (127.0.0.1
or::1
, depending on the operating system configuration). If you are running Fastify in a container (Docker, GCP, etc.), you may need to bind to0.0.0.0
. Be careful when deciding to listen on all interfaces; it comes with inherent security risks. See the documentation for more information.
Machine: EX41S-SSD, Intel Core i7, 4Ghz, 64GB RAM, 4C/8T, SSD.
Method:: autocannon -c 100 -d 40 -p 10 localhost:3000
* 2, taking the
second average
Framework | Version | Router? | Requests/sec |
---|---|---|---|
Express | 4.17.3 | ✓ | 14,200 |
hapi | 20.2.1 | ✓ | 42,284 |
Restify | 8.6.1 | ✓ | 50,363 |
Koa | 2.13.0 | ✗ | 54,272 |
Fastify | 4.0.0 | ✓ | 77,193 |
- | |||
http.Server | 16.14.2 | ✗ | 74,513 |
Benchmarks taken using https://github.com/fastify/benchmarks. This is a synthetic, "hello world" benchmark that aims to evaluate the framework overhead. The overhead that each framework has on your application depends on your application, you should always benchmark if performance matters to you.
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
How to write a good plugin
Plugins Guide
HTTP2
Long Term Support
TypeScript and types support
Serverless
Recommendations
中文文档地址
Please visit Fastify help to view prior support issues and to ask new support questions.
Version 3 of Fastify and lower are EOL and will not receive any security or bug fixes.
Fastify's partner, HeroDevs, provides commercial security fixes for all unsupported versions at https://herodevs.com/support/fastify-nes. Fastify's supported version matrix is available in the Long Term Support documentation.
Whether reporting bugs, discussing improvements and new ideas or writing code, we welcome contributions from anyone and everyone. Please read the CONTRIBUTING guidelines before submitting pull requests.
Fastify is the result of the work of a great community. Team members are listed in alphabetical order.
Lead Maintainers:
Great contributors on a specific area in the Fastify ecosystem will be invited to join this group by Lead Maintainers.
Past Collaborators
We are a At-Large Project in the OpenJS Foundation.
Support this project by becoming a SPONSOR! Fastify has an Open Collective page where we accept and manage financial contributions.
This project is kindly sponsored by:
Past Sponsors:
This list includes all companies that support one or more of the team members in the maintenance of this project.
Licensed under MIT.
For your convenience, here is a list of all the licenses of our production dependencies:
Stable Version
2
7.5/10
Summary
fastify vulnerable to denial of service via malicious Content-Type
Affected Versions
>= 4.0.0, < 4.8.1
Patched Versions
4.8.1
7.5/10
Summary
Denial of Service vulnerability with large JSON payloads in fastify
Affected Versions
<= 0.37.0
Patched Versions
0.38.0
3
4.2/10
Summary
Fastify: Incorrect Content-Type parsing can lead to CSRF attack
Affected Versions
>= 3.0.0, < 3.29.4
Patched Versions
3.29.4
4.2/10
Summary
Fastify: Incorrect Content-Type parsing can lead to CSRF attack
Affected Versions
>= 4.0.0, < 4.10.2
Patched Versions
4.10.2
0/10
Summary
Denial of service in fastify
Affected Versions
< 2.15.1
Patched Versions
2.15.1
Reason
30 commit(s) and 20 issue activity found in the last 90 days -- score normalized to 10
Reason
no binaries found in the repo
Reason
0 existing vulnerabilities detected
Reason
project is fuzzed
Details
Reason
Found 28/29 approved changesets -- score normalized to 9
Reason
security policy file detected
Details
Reason
license file detected
Details
Reason
badge detected: Passing
Reason
SAST tool is not run on all commits -- score normalized to 5
Details
Reason
dangerous workflow patterns detected
Details
Reason
detected GitHub workflow tokens with excessive permissions
Details
Reason
dependency not pinned by hash detected -- score normalized to 0
Details
Score
Last Scanned on 2024-12-23
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More