Fast and low overhead web framework, for Node.js

Overview

CI Package Manager CI Web SIte Known Vulnerabilities Coverage Status js-standard-style

NPM version NPM downloads Security Responsible Disclosure Discord


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.

Requirements

Node.js v10 LTS (10.16.0) or later.

Quick start

Create a folder and make it your current working directory:

mkdir my-app
cd my-app

Generate a fastify project with npm init:

npm init fastify

Install dependencies:

npm install

To start the app in dev mode:

npm run dev

For production mode:

npm start

Under the hood npm init downloads and runs Fastify Create, which in turn uses the generate functionality of Fastify CLI.

Install

If installing in an existing project, then Fastify can be installed into the project as a dependency:

Install with npm:

npm i fastify --save

Install with yarn:

yarn add fastify

Example

// Require the framework and instantiate it
const fastify = require('fastify')({
  logger: true
})

// Declare a route
fastify.get('/', (request, reply) => {
  reply.send({ hello: 'world' })
})

// Run the server!
fastify.listen(3000, (err, address) => {
  if (err) throw err
  fastify.log.info(`server listening on ${address}`)
})

with async-await:

const fastify = require('fastify')({
  logger: true
})

fastify.get('/', async (request, reply) => {
  reply.type('application/json').code(200)
  return { hello: 'world' }
})

fastify.listen(3000, (err, address) => {
  if (err) throw err
  fastify.log.info(`server listening on ${address}`)
})

Do you want to know more? Head to the Getting Started.

Fastify v1.x and v2.x

Code for Fastify's v1.x is in branch 1.x, so all Fastify 1.x related changes should be based on branch 1.x. In a similar way, all Fastify v2.x related changes should be based on branch 2.x.

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 to 0.0.0.0. Be careful when deciding to listen on all interfaces; it comes with inherent security risks. See the documentation for more information.

Core features

  • Highly performant: as far as we know, Fastify is one of the fastest web frameworks in town, depending on the code complexity we can serve up to 76+ thousand requests per second.
  • Extendible: Fastify is fully extensible via its hooks, plugins and decorators.
  • Schema based: even if it is not mandatory we recommend to use JSON Schema to validate your routes and serialize your outputs, internally Fastify compiles the schema in a highly performant function.
  • Logging: logs are extremely important but are costly; we chose the best logger to almost remove this cost, Pino!
  • Developer friendly: the framework is built to be very expressive and help the developer in their daily use, without sacrificing performance and security.

Benchmarks

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.1 15,978
hapi 19.1.0 45,815
Restify 8.5.1 49,279
Koa 2.13.0 54,848
Fastify 3.0.0 78,956
-
http.Server 12.18.2 70,380

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.

Documentation

中文文档地址

Ecosystem

  • Core - Core plugins maintained by the Fastify team.
  • Community - Community supported plugins.
  • Live Examples - Multirepo with a broad set of real working examples.
  • Discord - Join our discord server and chat with the maintainers.

Support

Please visit Fastify help to view prior support issues and to ask new support questions.

Team

Fastify is the result of the work of a great community. Team members are listed in alphabetical order.

Lead Maintainers:

Fastify Core team

Fastify Plugins team

Great Contributors

Great contributors on a specific area in the Fastify ecosystem will be invited to join this group by Lead Maintainers.

Past Collaborators

Hosted by

We are a Growth Project in the OpenJS Foundation.

Acknowledgements

This project is kindly sponsored by:

Past Sponsors:

License

Licensed under MIT.

For your convenience, here is a list of all the licenses of our production dependencies:

  • MIT
  • ISC
  • BSD-3-Clause
  • BSD-2-Clause
Comments
  • v1.0.0 needs to be issued

    v1.0.0 needs to be issued

    With the GitHub project fast approaching 2,500 stars, people need to be able to have confidence that the library they are using is stable. Looking at the roadmap today (https://github.com/fastify/fastify/projects/1) I can see that a couple new issues were added (#135 and #121), but I think the authentication issue has been solved (https://github.com/fastify/fastify-auth and https://github.com/fastify/fastify-bearer-auth) well enough for 1.0.0.

    In my opinion, @mcollina should be able to speak about 1.0.0 in his presentation at the beginning of October.

    cc: @fastify/benchmarks

    2017-09-24: I have segregated this list into "blocker" and "non-blockers". A non-blocker is an issue that we would like to have solved before 1.0.0, but isn't completely necessary. ~ jsumners


    Todo (blockers):

    • [x] 404/500 routes (https://github.com/fastify/fastify/issues/135)
    • [x] http caching headers (#121)
    • [x] Add headers to validation schema (#191)
    • [x] Add headers to request object (https://github.com/fastify/fastify/issues/200)
    • [x] Take a final decision in https://github.com/fastify/fastify/issues/169
    • [x] onSend hook (#291)
    • [x] Fix printing stack traces https://github.com/fastify/fastify/issues/258
    • [x] Allow payload to be modified in onSend (#447)
    • [x] Fix this context on hooks (#120)
    • [x] Remove reply.send(promise) (https://github.com/fastify/fastify/issues/448)
    • [x] setNotFoundHandler is suppressing duplicated routes checking #451
    • [x] Remove callback from register #460
    • [x] Support metadata in fastify-plugin #456 #466
    • [x] Update content parser API #525
    • [x] avvio says it's already booted before fastify.listen is invoked #491 #561
    • [x] Drop Boom support #542 #558
    • [x] Use http-errors for generating errors #543 #571

    Todo (non-blockers):

    • [ ] Refactor documentation to separate concerns (intro vs reference) (#296)
    • [x] Finish off fastify-swagger https://github.com/fastify/fastify-swagger/pull/1
    discussion 
    opened by jsumners 88
  • Deprecating `fastify-*` modules

    Deprecating `fastify-*` modules

    2022-05-07 remaining work:

    The following list is hoisted from comment https://github.com/fastify/fastify/issues/3733#issuecomment-1114252976

    • [x] aws-lambda-fastify
      • Rename package (https://github.com/fastify/aws-lambda-fastify/pull/110)
    • [x] fastify-auth
      • Update dependencies (https://github.com/fastify/fastify-auth/pull/154)
    • [x] fastify-awilix
      • Update dependencies (https://github.com/fastify/fastify-awilix/pull/73)
    • [x] fastify-csrf
      • Rename package
    • [x] fastify-flash
      • Update dependencies
    • [x] fastify-schedule
      • Update dependencies (https://github.com/fastify/fastify-schedule/pull/82/)
    • [x] fastify-session
      • Missing release notes
      • Update dependencies
    • [x] fastify-swagger
      • Update dependencies
    • [x] middie
      • Rename package (https://github.com/fastify/middie/pull/148)
    • [x] point-of-view
      • Rename package (https://github.com/fastify/point-of-view/pull/325)
    • [x] under-pressure
      • Rename package (https://github.com/fastify/under-pressure/pull/166)
    • [x] any-schema-you-like
      • Rename package (https://github.com/fastify/any-schema-you-like/pull/25)

    Original post:

    Issue

    If we are going to deprecate fastify-* modules, as outlined in https://github.com/fastify/fastify/issues/3482#issuecomment-1046916608, then I really need help with https://github.com/fastify/deprecate-modules.

    To start, I need help auditing https://github.com/fastify/deprecate-modules/blob/a7a87b05d129e04d7e36bd4f0eb07d479e2d7b6f/lib/modules.json to determine:

    1. Is the list of modules correct
    2. Are the versions correct? versionToPublish will be the new fastify-* version for the module. The newModule.version will be the version published under @fastify/*.

    Subsequent to that, I need help with the todo list in the readme. In particular, is there anything that needs to be done for TypeScript in the deprecated modules (look at the templates)? How should the templates be updated for ESM exports?

    Once we have the deprecation portions written and tested, we need to work on adding script for:

    1. Updating GitHub repository information (rename the repo, update links in package.json, etc)
    2. Patching the package.json with the new name and version for the new @fastify/* packages

    attn: @fastify/core

    opened by jsumners 86
  • TypeScript Refactor

    TypeScript Refactor

    Checklist

    • [ ] run npm run test and npm run benchmark
    • [ ] tests and/or benchmarks are included
    • [ ] documentation is changed or added
    • [ ] commit message and code follows Code of conduct

    I finally feel ready to share my TypeScript refactor ✨ Still WIP and I'll use this PR to track what needs to be down. I'm open to taking other's contributions if they would like work on this with me (this would require making a PR to my personal fork:branch). Ref #1523 for history

    TODO:

    • [x] Update light-my-request pending https://github.com/fastify/light-my-request/pull/39 for inject types
    • [x] Type FastifyLogger
    • [ ] Type FastifySchema
    • [ ] Type FastifyContext
    • [x] Complete migrate original types
    • [x] Verify proper export of all types
    • [x] Write tests using tsd
    • [x] Type ServerFactory
    • [x] Document

    Some additional context. The fundamental change here is the way I handle the raw HTTP/S/2 server, request, and reply. This is treated as a generic that is passed down through instances of interfaces and types. Additionally, I am using the type T<G> = G && { } to create a generic inheritance type for the FastifyRequest and FastifyReply interfaces. The core generic logic is the following:

    declare function fastify<
      RawServer extends http.Server | https.Server | http2.Http2Server | http2.Http2SecureServer = http.Server
    >(opts?: fastify.ServerOptions<RawServer>): fastify.FastifyInstance<RawServer>;
    
    declare namespace fastify {
      interface FastifyInstance<
        RawServer extends (http.Server | https.Server | http2.Http2Server | http2.Http2SecureServer) = http.Server, 
        RawRequest extends (http.IncomingMessage | http2.Http2ServerRequest) = RawServer extends http.Server | https.Server ? http.IncomingMessage : http2.Http2ServerRequest, 
        RawReply extends (http.ServerResponse | http2.Http2ServerResponse) = RawServer extends http.Server | https.Server ? http.ServerResponse : http2.Http2ServerResponse
      > { }
    }
    

    It starts in the function declaration for fastify main build method. Using TS, the developer would specify which kind of server they are using (it defaults to http). Then, this RawServer type is passed down through to various interfaces such as FastifyInstance and ServerOptions where it utilizes two TS language features: generic constraints and conditional generic defaults.

    Generic Constraints (which is actually being used in the first function declaration) is limiting the RawServer generic to be of one of the 4 listed types. Furthermore, the = http.Server is a generic default assignment; this means that the user can define the function without passing in a type to the generic i.e. both of these assignments are valid:

    import fastify from 'fastify'
    import * as http from 'http'
    
    const server = fastify<http.Server>()
    const server = fastify()
    

    Conditional Generic Defaults is a really unique feature that allows us to default the assignment of the other generic variables based on the assignment of the RawServer. This enforces http users to use http request and response objects. Similar effects for https and http2 constraints.

    So all in all, when a user first creates their fastify instance, they only have to pass in the server type and then the rest is magically assigned for them. But, at the same time, all of these interfaces and such are exported so if a user really wants to specify a unique FastifyWhatever type they can do that!

    typescript 
    opened by Ethan-Arrowood 67
  • rethrow system errors with promises or async / await. Sort out fastif…

    rethrow system errors with promises or async / await. Sort out fastif…

    This PR should serve as a basis for discussion. Related https://github.com/fastify/fastify/issues/582

    ~~Any system error is logged as fatal and rethrown inside a catch handler when an unhandledRejection exists otherwise the process is exited with a none zero code.~~

    Request connection is aborted when a system error was thrown or rejected. We also rethrow the error and produce an unhandledRejection event.

    With newer node versions or modules like https://github.com/mcollina/make-promises-safe we can guarantee that the server will exit with the error.

    @mcollina

    discussion 
    opened by StarpTech 67
  • Making typings in fastify.d.ts available under npm @types/fastify

    Making typings in fastify.d.ts available under npm @types/fastify

    EDIT: The original issue was "About moving fastify type definitions to DefinitelyTyped" I've renamed it to "Making typings in fastify.d.ts available under npm @types/fastify"

    You have already researched for similiar issues?

    Yes.

    • The feature request for creating TypeScript definitions was created in #174
    • The typings.d file was added in PR #182

    Are you sure this is an issue with the fastify or are you just looking for some help?

    Yes. Posting the question here as it's easier to discuss this in Github issues over Gitter Chat. Also, it's easier to reference this issue if a PR is created.

    Is this a security related issue?

    No

    What are you trying to achieve or the steps to reproduce?

    As per the original discussion the type definitions were created in Fastify repo. Because of that, definitions are not available on npm by running command npm view @types/fastify

    What was the result you received?

    $npm view @types/fastify
    npm ERR! code E404
    npm ERR! 404 Registry returned 404 for GET on https://registry.npmjs.org/@types%2ffastify
    npm ERR! 404 
    npm ERR! 404  '@types/fastify' is not in the npm registry.
    npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
    npm ERR! 404 
    npm ERR! 404 Note that you can also install from a
    npm ERR! 404 tarball, folder, http url, or git url.
    

    What did you expect?

    I expected type definitions of fastify to be available at @types/fastify

    Context

    Question is about location of type definitions, it's not specific to any version

    discussion 
    opened by trivikr 58
  • Fastify v4 release coordination

    Fastify v4 release coordination

    This is an issue to coordinate the release of Fastify v4. It will be updated as soon as it progresses.


    • [x] release new major of fast-json-stringify https://github.com/fastify/fast-json-stringify/releases/tag/v3.0.0
    • [x] create type providers modules https://github.com/fastify/fastify/issues/3404
    • [x] finish off all outstanding issues and PRs labeled v4: https://github.com/fastify/fastify/issues?q=is%3Aopen+is%3Aissue+label%3Av4.x and https://github.com/fastify/fastify/pulls?q=is%3Aopen+is%3Apr+label%3Av4.x
    • [x] prepare release notes & blog post
    • [x] check if anything needs to be done to support pino transports & pino pretty deprecation
    • [x] prepare the list of modules to update
    • [x] decide if we want to drop Node v12 support
    • [x] drop Node v12 as well as v10 from everywhere https://github.com/fastify/fastify/pull/3532
    • [x] sync fast-json-stringify next branch and release it (https://github.com/fastify/fast-json-stringify/tree/next)
    • [x] implements https://github.com/fastify/fastify/issues/2852 by editing https://github.com/fastify/ajv-compiler ’s defaults major (ETA ~1h)
    • [x] create a fjs-compiler module in the fastify’s org:
      • supersedes https://github.com/fastify/ajv-compiler/pull/45 (using the fast-json-stringify@next)
      • supersedes https://github.com/fastify/fastify/pull/3280
    • [x] review/support https://github.com/fastify/fastify/pull/3546
    • [x] remove preParsing hook from two fastify’s modules https://github.com/fastify/fastify/issues/3503#issuecomment-982531271
    • [x] implement deprecation warning https://github.com/fastify/fastify/issues/3503
    • [x] implement https://github.com/fastify/fastify/issues/3217
    • [ ] Update all the core modules, for each one of them the following must be done:
      1. Open a PR updating Fastify to v4.0.0-rc.x
      2. Link the PR in the underlining list
      3. Once merged, release a new version of the module under the next dist-tag (npm publish --tag next)
      4. check module@latest is still correctly pointing to the old version with npm show
      5. tick the box in the underlining table
    • [x] publish blog post
    • [x] open issue at https://github.com/github/release-radar

    Modules to update

    Once one it's done add the PR link next to it.

    discussion v4.x never stale 
    opened by mcollina 50
  • How to deploy on Firebase Functions/Google Cloud Functions

    How to deploy on Firebase Functions/Google Cloud Functions

    How to run the server from cloud functions?

    in express

    const server = express();
    exports.next = functions.https.onRequest((request, response) => {
    	server(request,response);
    });
    
    question stale 
    opened by endigo 49
  • TypeScript Schema Example Documentation

    TypeScript Schema Example Documentation

    🚀 Feature Proposal

    The upcoming type refactor #1569 references a documentation example of how to declare strict schema types. This issue will track that documentation addition. (It'll also be the start to the next stage of v3 types which is improving the TS docs and examples).

    Motivation

    TypeScript support 🎉

    Example

    Copied from PR comment:

    It looks like others are solving this problem by using json-schema-to-typescript. This article discusses how a specific team is using it directly with Ajv too!

    I'm thinking about using a similar approach to the Pino type definition. I'll use a JSDoc comment on FastifySchema in order to tell the user if they'd like more strict schema type support they should utilize the above library -- this should point to a detailed write up in our own documentation to show users exactly how to make it work with Fastify (or a custom fastify plugin that can do this automatically for the user)

    discussion documentation typescript v3.x 
    opened by Ethan-Arrowood 47
  • Block new incoming requests once close has been called

    Block new incoming requests once close has been called

    Currently, if a user calls fastify.close and the server is under a heavy load, the server will not close until there is an open TCP connection, so every new request will execute the entire request lifecycle.

    With this change once fastify.close is invoked, Fastify will automatically start to respond with a 503 error, closing every new connection as soon as possible.

    There are not sensible changes in the benchmarks.

    Checklist

    • [x] run npm run test and npm run benchmark
    • [x] tests and/or benchmarks are included
    • [x] documentation is changed or added
    • [x] commit message and code follows Code of conduct
    enhancement semver-minor 
    opened by delvedor 46
  • Add toString method

    Add toString method

    Checklist

    • [x] run npm run test and npm run benchmark
    • [x] tests and/or benchmarks are included
    • [x] documentation is changed or added
    • [x] commit message and code follows Code of conduct

    Closes: #703

    sandbox.js will be removed when this feature is finished. It is a useful file for testing during development. I think I have to move toString.js into lib as well.

    Some things to note:

    • This is a very simple implementation of the full toString method
    • I'd like to print the Plugins and Middleware for each route in a similar format to fastify.printRoutes but I'm not sure where to start with that as that method is coming from find-my-way. (Should I try to copy that function and edit it to fit our needs?)
    • How should the json output be structured?
    screen shot 2018-03-24 at 9 11 28 pm feature discussion semver-minor 
    opened by Ethan-Arrowood 45
  • Add types to async fastify hooks

    Add types to async fastify hooks

    I did not add types for non-documented async hooks like: onRegister hook. I would like to adjust it in another PR.

    This PR solve this kind of usage:

    const preValidationExample: preValidationAsyncHookHandler = async (_request: FastifyRequest, _reply: FastifyReply) => {  };
    preValidationExample({} as FastifyRequest, {} as FastifyReply); // don't need to pass something as third param
    

    Checklist

    typescript 
    opened by RafaelGSS 44
  • use namespace merging for nodenext

    use namespace merging for nodenext

    @climba03003 Regarding namespace merging.

    It doesnt work. I assume because of

    If you have an import or an export at the root level of a TypeScript file then it creates a local scope within that file.

    https://jorgedacostaza.gitbook.io/typescript-pt/project/modules

    @fastify/typescript Any suggestion to fix this to use namespace merging across files?

    Checklist

    typescript 
    opened by Uzlopak 0
  • Without file not able to access fields in multipart/form-data type

    Without file not able to access fields in multipart/form-data type

    Prerequisites

    • [X] I have written a descriptive issue title
    • [X] I have searched existing issues to ensure the bug has not already been reported

    Fastify version

    ^4.6.0

    Plugin version

    No response

    Node.js version

    ^16

    Operating system

    Linux

    Operating system version (i.e. 20.04, 11.3, 10)

    Ubuntu 22.04.1 LTS

    Description

    When we create route that accepts data as an multipart/form-data and when we don't pass file/binary in payload we are not able to access fields that is passed in body and also there is some kind of sequence like always we have to pass fields in first and last need to contain binary/file

    Steps to Reproduce

    • create route that accepts multipart/form-data
    • try to access the form body with req.file()
    • now don't pass any file or binary just only pass fields which contains any type of data like ( string,int..etc )
    • then try to access that fields in req.file() / req.body anywhere it is not available

    Expected Behavior

    Should be able to access those fields in req.body although we don't pass any file or binary

    opened by vasu-rangpariya-xl 3
  • ContentTypeParser.remove, does not throw if parser does not exist

    ContentTypeParser.remove, does not throw if parser does not exist

    Prerequisites

    • [X] I have written a descriptive issue title
    • [X] I have searched existing issues to ensure the issue has not already been raised

    Issue

    I find it quite inconsequent, if the remove method of ContentTypeParser in case it is not a string or RegExp throws a FST_ERR_CTP_INVALID_TYPE-error but not an Error if there is no parser matching the contentType.

    Imho the else case of this if-condition should throw an Error https://github.com/fastify/fastify/blob/897360ad9a01340b45d94f001d8c46aeee22581f/lib/contentTypeParser.js#L152

    bug good first issue 
    opened by Uzlopak 1
  • fix potential bug in content type parser

    fix potential bug in content type parser

    opened by Uzlopak 10
  • make FastifySchemaValidationError.params wider

    make FastifySchemaValidationError.params wider

    FastifySchemaValidationError seems to originate from ErrorObject from Ajv.
    However, while property params in FastifySchemaValidationError has type Record<string | string[]>, possible values that are created in Ajv are wider than this; see LimitNumberError and ConstError. Note that allowedValue defined in ConstError could be literally any; see JSON Schema Validation Specification.
    Property params in FastifySchemaValidationError should be wider as Record<string, unknown> (or Record<string, any> for better coding experience?) to accept those values.

    By the way, there were duplicated definition (ValidationResult) for this, so I refactored them here.

    Checklist

    typescript 
    opened by cm-ayf 1
  • Improve Swagger integration of plugins

    Improve Swagger integration of plugins

    Prerequisites

    • [X] I have written a descriptive issue title
    • [X] I have searched existing issues to ensure the feature has not already been requested

    🚀 Feature Proposal

    A plugin developer should be able to add metadata in fastify-plugin, which then enriches the swagger documentation accordingly.

    Motivation

    If you add e.g. basic auth with the plugin, you have to manually add basic-auth to the general swagger spec, and add it to the route of every schema, were you use it.

    We already could determine by the context that fastify basic auth is existing and we could determine that a specific route is protected by basic-auth.

    I think it could be good to handle this as additional data in metadata.

    Example

    No response

    feature request 
    opened by Uzlopak 10
Releases(v4.11.0)
  • v4.11.0(Jan 1, 2023)

    What's Changed

    • fix: use generic for Logger to register plugins when using a custom logger (#4435) by @marcoreni in https://github.com/fastify/fastify/pull/4436
    • Incorrect example in default text parser docs by @SaumyaBhushan in https://github.com/fastify/fastify/pull/4448
    • chore: fix test skips for nodejs prereleases by @nlf in https://github.com/fastify/fastify/pull/4449
    • Move @Ethan-Arrowood to Past Collaborator section by @Ethan-Arrowood in https://github.com/fastify/fastify/pull/4451
    • build(deps): bump lycheeverse/lychee-action from 1.5.1 to 1.5.4 by @dependabot in https://github.com/fastify/fastify/pull/4454
    • build(deps): bump actions/dependency-review-action from 2 to 3 by @dependabot in https://github.com/fastify/fastify/pull/4455
    • build(deps-dev): bump tsd from 0.24.1 to 0.25.0 by @dependabot in https://github.com/fastify/fastify/pull/4460
    • docs: add fastify-user-agent by @Eomm in https://github.com/fastify/fastify/pull/4466
    • chore(ecosystem): rename fastify-lyra plugin by @mateonunez in https://github.com/fastify/fastify/pull/4474
    • docs(ecosystem): add fastify-at-mysql plugin by @mateonunez in https://github.com/fastify/fastify/pull/4473
    • fix: make res.statusCode optional by @polRk in https://github.com/fastify/fastify/pull/4471
    • docs(ecosystem): add fastify-at-postgres plugin by @mateonunez in https://github.com/fastify/fastify/pull/4475
    • perf: precompute isEssence for RegExp of content-type-parser method compareRegExpContentType by @Uzlopak in https://github.com/fastify/fastify/pull/4481
    • lib: deprecate the default route and improve its documentation by @RafaelGSS in https://github.com/fastify/fastify/pull/4480
    • docs(reference/reply): When using async-await, need return by @radiorz in https://github.com/fastify/fastify/pull/4429
    • fix: re-thrown error crash by @climba03003 in https://github.com/fastify/fastify/pull/4488
    • build(deps): bump thollander/actions-comment-pull-request from 1 to 2 by @dependabot in https://github.com/fastify/fastify/pull/4489
    • build(deps): bump xt0rted/markdownlint-problem-matcher from 1.1.0 to 2.0.0 by @dependabot in https://github.com/fastify/fastify/pull/4490
    • improve setErrorHandler example by @trim21 in https://github.com/fastify/fastify/pull/4484

    New Contributors

    • @marcoreni made their first contribution in https://github.com/fastify/fastify/pull/4436
    • @SaumyaBhushan made their first contribution in https://github.com/fastify/fastify/pull/4448
    • @nlf made their first contribution in https://github.com/fastify/fastify/pull/4449
    • @polRk made their first contribution in https://github.com/fastify/fastify/pull/4471
    • @radiorz made their first contribution in https://github.com/fastify/fastify/pull/4429
    • @trim21 made their first contribution in https://github.com/fastify/fastify/pull/4484

    Full Changelog: https://github.com/fastify/fastify/compare/v4.10.2...v4.11.0

    Source code(tar.gz)
    Source code(zip)
  • v4.10.2(Nov 21, 2022)

  • v4.10.1(Nov 21, 2022)

    What's Changed

    • fix node 19.1.0 port validation test by @Uzlopak in https://github.com/fastify/fastify/pull/4427
    • Add fastify-constraints to community plugins by @Ceres6 in https://github.com/fastify/fastify/pull/4428
    • build(deps-dev): bump @sinonjs/fake-timers from 9.1.2 to 10.0.0 by @dependabot in https://github.com/fastify/fastify/pull/4421
    • add silent option to LogLevel by @Uzlopak in https://github.com/fastify/fastify/pull/4432

    New Contributors

    • @Ceres6 made their first contribution in https://github.com/fastify/fastify/pull/4428

    Full Changelog: https://github.com/fastify/fastify/compare/v4.10.0...v4.10.1

    Source code(tar.gz)
    Source code(zip)
  • v3.29.4(Nov 21, 2022)

  • v4.10.0(Nov 16, 2022)

    What's Changed

    • docs(reference/reply): spelling fixes by @Fdawgs in https://github.com/fastify/fastify/pull/4358
    • Support different content-type typed reply with TypeProvider by @rain714 in https://github.com/fastify/fastify/pull/4360
    • chore: remove leading empty lines by @LinusU in https://github.com/fastify/fastify/pull/4364
    • fix types after pino 8.7.0 change by @mcollina in https://github.com/fastify/fastify/pull/4365
    • Node.js V19 support by @mcollina in https://github.com/fastify/fastify/pull/4366
    • fix: no check on null or undefined values passed as fn by @metcoder95 in https://github.com/fastify/fastify/pull/4367
    • docs(server): config is lost when reply.call not found() is called by @cesarvspr in https://github.com/fastify/fastify/pull/4368
    • Fix typo - 'sever' to 'server' by @utsav91 in https://github.com/fastify/fastify/pull/4372
    • Add platformatic to the Acknowledgements by @mcollina in https://github.com/fastify/fastify/pull/4378
    • docs: add Simone Busoli to plugin maintainers by @simoneb in https://github.com/fastify/fastify/pull/4379
    • add missing 'validationContext' field to FastifyError type by @jakubburzynski in https://github.com/fastify/fastify/pull/4363
    • fix(type-providers): assignability of instance with enabled type provider by @driimus in https://github.com/fastify/fastify/pull/4371
    • feat: support async trailer by @climba03003 in https://github.com/fastify/fastify/pull/4380
    • fix: trailers async race condition by @climba03003 in https://github.com/fastify/fastify/pull/4383
    • docs(ecosystem): Add fastify-list-routes by @chuongtrh in https://github.com/fastify/fastify/pull/4385
    • build(deps-dev): bump @sinclair/typebox from 0.24.51 to 0.25.2 by @dependabot in https://github.com/fastify/fastify/pull/4388
    • [ Fix ] Improve error message for hooks check by @debadutta98 in https://github.com/fastify/fastify/pull/4387
    • fix: tiny-lru usage by @climba03003 in https://github.com/fastify/fastify/pull/4391
    • Removes old note about named imports in ESM by @fox1t in https://github.com/fastify/fastify/pull/4392
    • docs: Add section about capacity planning by @kibertoad in https://github.com/fastify/fastify/pull/4386
    • docs(recommendations): grammar fixes by @Fdawgs in https://github.com/fastify/fastify/pull/4396
    • chore(doc): duplicated menu item by @Eomm in https://github.com/fastify/fastify/pull/4398
    • feat: add request.routeOptions object by @debadutta98 in https://github.com/fastify/fastify/pull/4397
    • docs: Document multiple app approach by @kibertoad in https://github.com/fastify/fastify/pull/4393
    • fix example using db decorator on fastify instance by @mmarti in https://github.com/fastify/fastify/pull/4406
    • docs: fix removeAdditional refer by @shunyue1320 in https://github.com/fastify/fastify/pull/4410

    New Contributors

    • @rain714 made their first contribution in https://github.com/fastify/fastify/pull/4360
    • @LinusU made their first contribution in https://github.com/fastify/fastify/pull/4364
    • @cesarvspr made their first contribution in https://github.com/fastify/fastify/pull/4368
    • @utsav91 made their first contribution in https://github.com/fastify/fastify/pull/4372
    • @jakubburzynski made their first contribution in https://github.com/fastify/fastify/pull/4363
    • @driimus made their first contribution in https://github.com/fastify/fastify/pull/4371
    • @chuongtrh made their first contribution in https://github.com/fastify/fastify/pull/4385
    • @debadutta98 made their first contribution in https://github.com/fastify/fastify/pull/4387
    • @mmarti made their first contribution in https://github.com/fastify/fastify/pull/4406
    • @shunyue1320 made their first contribution in https://github.com/fastify/fastify/pull/4410

    Full Changelog: https://github.com/fastify/fastify/compare/v4.9.2...v4.10.0

    Source code(tar.gz)
    Source code(zip)
  • v4.9.2(Oct 18, 2022)

    What's Changed

    • types: Add missing context types by @kibertoad in https://github.com/fastify/fastify/pull/4352
    • Revert "fix(logger): lost setBindings type in FastifyBaseLogger" by @climba03003 in https://github.com/fastify/fastify/pull/4355

    Full Changelog: https://github.com/fastify/fastify/compare/v4.9.1...v4.9.2

    Source code(tar.gz)
    Source code(zip)
  • v4.9.1(Oct 17, 2022)

    What's Changed

    • docs(reply): specify streams content-type by @D10f in https://github.com/fastify/fastify/pull/4337
    • fix(logger): lost setBindings type in FastifyBaseLogger by @BlackHole1 in https://github.com/fastify/fastify/pull/4346
    • docs(reference): grammar and structure fixes by @Fdawgs in https://github.com/fastify/fastify/pull/4348
    • docs: example how decorators dependencies works by @leandroandrade in https://github.com/fastify/fastify/pull/4343
    • Undefined is a valid value for if set as a single hook by @mcollina in https://github.com/fastify/fastify/pull/4351

    New Contributors

    • @D10f made their first contribution in https://github.com/fastify/fastify/pull/4337

    Full Changelog: https://github.com/fastify/fastify/compare/v4.9.0...v4.9.1

    Source code(tar.gz)
    Source code(zip)
  • v4.9.0(Oct 17, 2022)

    What's Changed

    • fix: error handler content-type guessing by @climba03003 in https://github.com/fastify/fastify/pull/4329
    • build(deps-dev): bump fluent-json-schema from 3.1.0 to 4.0.0 by @dependabot in https://github.com/fastify/fastify/pull/4331
    • feat: Supporting different content-type responses by @iifawzi in https://github.com/fastify/fastify/pull/4264
    • fix: should now call default schema compilers by @Eomm in https://github.com/fastify/fastify/pull/4340
    • docs(ecosystem): replace heply -> beliven due to rebranding by @zuck in https://github.com/fastify/fastify/pull/4334
    • docs(ecosystem): add @fastify-userland plugins and tools by @BlackHole1 in https://github.com/fastify/fastify/pull/4345
    • Validate and throws a custom error when attempting to register invalid hook functions by @jhhom in https://github.com/fastify/fastify/pull/4332

    New Contributors

    • @jhhom made their first contribution in https://github.com/fastify/fastify/pull/4332

    Full Changelog: https://github.com/fastify/fastify/compare/v4.8.1...v4.9.0

    Source code(tar.gz)
    Source code(zip)
  • v4.8.1(Oct 10, 2022)

    ⚠️ Security Release ⚠️

    This release fixes https://github.com/fastify/fastify/security/advisories/GHSA-455w-c45v-86rg for the v4.x line. This is a HIGH vulnerability that can lead to a crash, resulting in a total loss of availability. The CVE for this vulnerability is CVE-2022-39288.

    Full Changelog: https://github.com/fastify/fastify/compare/v4.8.0...v4.8.1

    Source code(tar.gz)
    Source code(zip)
  • v4.8.0(Oct 10, 2022)

    What's Changed

    • Correct github url for fastify-qs package by @VanoDevium in https://github.com/fastify/fastify/pull/4321
    • docs: add test examples with undici and fetch by @CristiTeo in https://github.com/fastify/fastify/pull/4300
    • update onRoute hook docs by @matthyk in https://github.com/fastify/fastify/pull/4322
    • Export error codes by @fitiskin in https://github.com/fastify/fastify/pull/4266
    • feat: support async constraint by @climba03003 in https://github.com/fastify/fastify/pull/4323

    New Contributors

    • @fitiskin made their first contribution in https://github.com/fastify/fastify/pull/4266

    Full Changelog: https://github.com/fastify/fastify/compare/v4.7.0...v4.8.0

    Source code(tar.gz)
    Source code(zip)
  • v3.29.3(Oct 10, 2022)

    ⚠️ ~Security Release~ ⚠️

    This release backport the fixes of https://github.com/fastify/fastify/security/advisories/GHSA-455w-c45v-86rg for the v3.x line. While not being a vulnerability for this line, a backport is still welcome due to the problems highlighted in the report.

    Full Changelog: https://github.com/fastify/fastify/compare/v3.29.2...v3.29.3

    Source code(tar.gz)
    Source code(zip)
  • v4.7.0(Sep 30, 2022)

    What's Changed

    • fix: prevent reuse mutated route option for head by @climba03003 in https://github.com/fastify/fastify/pull/4273
    • docs(ecosystem): add fastify-sqlite by @Eomm in https://github.com/fastify/fastify/pull/4274
    • Add RavenDB to community plugins by @drakhart in https://github.com/fastify/fastify/pull/4277
    • ci: reduce ci test when linting fails by @Eomm in https://github.com/fastify/fastify/pull/4280
    • chore: update dependencies by @anonrig in https://github.com/fastify/fastify/pull/4284
    • Check if route exist before checking Content-Type of body by @mage1k99 in https://github.com/fastify/fastify/pull/4286
    • Replace parseInt with Number at get 6% boost by @anonrig in https://github.com/fastify/fastify/pull/4289
    • fix: type of validation function by @budarin in https://github.com/fastify/fastify/pull/4283
    • GitHub Workflows security hardening by @sashashura in https://github.com/fastify/fastify/pull/4290
    • docs: onRoute hooks in plugins by @philsch in https://github.com/fastify/fastify/pull/4285
    • chore: Lint eco system error by @zrosenbauer in https://github.com/fastify/fastify/pull/4275
    • docs(ecosystem): Add @fastify/one-line-logger by @nooreldeensalah in https://github.com/fastify/fastify/pull/4293
    • docs(ecosystem): capitalization fixes by @Fdawgs in https://github.com/fastify/fastify/pull/4294
    • docs(ecosystem): add slow down plugin by @CristiTeo in https://github.com/fastify/fastify/pull/4292
    • fix: custom validator should not mutate headers schema by @climba03003 in https://github.com/fastify/fastify/pull/4295
    • feat: parse request body for http SEARCH requests by @kalvenschraut in https://github.com/fastify/fastify/pull/4298
    • Fix typo in the comment to Context object (lib/context.js) by @yakovenkodenis in https://github.com/fastify/fastify/pull/4301
    • docs(type-providers): replace FastifyLoggerInstance with FastifyBaseLogger by @samialdury in https://github.com/fastify/fastify/pull/4304
    • docs(contributing): clarify teams for joiners by @Eomm in https://github.com/fastify/fastify/pull/4303
    • test: add number coersion related tests by @anonrig in https://github.com/fastify/fastify/pull/4297
    • feat: add routeSchema and routeConfig + switching context handling by @metcoder95 in https://github.com/fastify/fastify/pull/4216
    • docs(ecosystem): add fastify-s3-buckets by @kibertoad in https://github.com/fastify/fastify/pull/4311
    • fix: Fix typo in docs/Reference/Type-Providers.md by @SnowSuno in https://github.com/fastify/fastify/pull/4312
    • build(deps): bump tiny-lru from 8.0.2 to 9.0.2 by @dependabot in https://github.com/fastify/fastify/pull/4305

    New Contributors

    • @mage1k99 made their first contribution in https://github.com/fastify/fastify/pull/4286
    • @budarin made their first contribution in https://github.com/fastify/fastify/pull/4283
    • @sashashura made their first contribution in https://github.com/fastify/fastify/pull/4290
    • @philsch made their first contribution in https://github.com/fastify/fastify/pull/4285
    • @zrosenbauer made their first contribution in https://github.com/fastify/fastify/pull/4275
    • @CristiTeo made their first contribution in https://github.com/fastify/fastify/pull/4292
    • @kalvenschraut made their first contribution in https://github.com/fastify/fastify/pull/4298
    • @yakovenkodenis made their first contribution in https://github.com/fastify/fastify/pull/4301
    • @samialdury made their first contribution in https://github.com/fastify/fastify/pull/4304
    • @SnowSuno made their first contribution in https://github.com/fastify/fastify/pull/4312

    Full Changelog: https://github.com/fastify/fastify/compare/v4.6.0...v4.7.0

    Source code(tar.gz)
    Source code(zip)
  • v4.6.0(Sep 14, 2022)

    What's Changed

    • chore: replace deprecated FastifyLoggerInstance occurences in typings with FastifyBaseLogger by @Uzlopak in https://github.com/fastify/fastify/pull/4224
    • fix(types): allow fastify.https to be null by @SuperchupuDev in https://github.com/fastify/fastify/pull/4226
    • chore: fix typo in docs for typescript chapter by @soomtong in https://github.com/fastify/fastify/pull/4227
    • build(deps-dev): bump tsd from 0.22.0 to 0.23.0 by @dependabot in https://github.com/fastify/fastify/pull/4231
    • chore: update dependabot link by @leandroandrade in https://github.com/fastify/fastify/pull/4232
    • docs: improved migration guide for onRoute by @ShogunPanda in https://github.com/fastify/fastify/pull/4233
    • docs: clarify setDefaultRoute scope by @jacobpgn in https://github.com/fastify/fastify/pull/4236
    • docs(ecosystem): add fastify-aws-timestream and fastify-aws-sns by @gzileni in https://github.com/fastify/fastify/pull/4230
    • docs(guides/migration-guide-v4): update content by @Fdawgs in https://github.com/fastify/fastify/pull/4242
    • Improve doc about configuring pino-pretty with TypeScript by @giacomorebonato in https://github.com/fastify/fastify/pull/4243
    • build(deps): bump jsumners/lock-threads from b27edac0ac998d42b2815e122b6c24b32b568321 to 3 by @dependabot in https://github.com/fastify/fastify/pull/4244
    • Revert "build(deps): bump jsumners/lock-threads from b27edac0ac998d42b2815e122b6c24b32b568321 to 3" by @climba03003 in https://github.com/fastify/fastify/pull/4245
    • docs: Remove Ajv configuration from TypeBox Type Provider examples by @msmolens in https://github.com/fastify/fastify/pull/4249
    • fix: visit schemas with custom prototype by @Eomm in https://github.com/fastify/fastify/pull/4248
    • feat: add hasRoute by @Uzlopak in https://github.com/fastify/fastify/pull/4238
    • Docs: Fixing #schema-validator url at ./Reference/Server/#ajv by @wilbert-abreu in https://github.com/fastify/fastify/pull/4253
    • chore(doc): fix format by @Eomm in https://github.com/fastify/fastify/pull/4255
    • chore: export RouteGenericInterface by @ChrisCrewdson in https://github.com/fastify/fastify/pull/4234
    • chore: improve Ecosystem.md linter to check for improper module name patterns by @nooreldeensalah in https://github.com/fastify/fastify/pull/4257
    • test: remove assert to invalid HTTP version by @RafaelGSS in https://github.com/fastify/fastify/pull/4260
    • chore: improve Ecosystem.md linter to lint all sections by @nooreldeensalah in https://github.com/fastify/fastify/pull/4258
    • Fixing #4259 - Updating typescript example according to the validation changes by @iifawzi in https://github.com/fastify/fastify/pull/4261
    • docs: add pubsub-http-handler by @cobraz in https://github.com/fastify/fastify/pull/4263
    • Variadic listen signature allows string port by @marco-ippolito in https://github.com/fastify/fastify/pull/4269
    • doc: Remove Ajv configuration for TypeBox in TS examples by @pmbanugo in https://github.com/fastify/fastify/pull/4268
    • docs(ecosystem): add 2 new fastify v3.x+ plugins by @WNemencha in https://github.com/fastify/fastify/pull/4270
    • docs(typescript): fix fastify/fastify#4241 by @mortifia in https://github.com/fastify/fastify/pull/4247

    New Contributors

    • @SuperchupuDev made their first contribution in https://github.com/fastify/fastify/pull/4226
    • @soomtong made their first contribution in https://github.com/fastify/fastify/pull/4227
    • @leandroandrade made their first contribution in https://github.com/fastify/fastify/pull/4232
    • @jacobpgn made their first contribution in https://github.com/fastify/fastify/pull/4236
    • @giacomorebonato made their first contribution in https://github.com/fastify/fastify/pull/4243
    • @msmolens made their first contribution in https://github.com/fastify/fastify/pull/4249
    • @wilbert-abreu made their first contribution in https://github.com/fastify/fastify/pull/4253
    • @ChrisCrewdson made their first contribution in https://github.com/fastify/fastify/pull/4234
    • @iifawzi made their first contribution in https://github.com/fastify/fastify/pull/4261
    • @cobraz made their first contribution in https://github.com/fastify/fastify/pull/4263
    • @marco-ippolito made their first contribution in https://github.com/fastify/fastify/pull/4269
    • @pmbanugo made their first contribution in https://github.com/fastify/fastify/pull/4268
    • @WNemencha made their first contribution in https://github.com/fastify/fastify/pull/4270
    • @mortifia made their first contribution in https://github.com/fastify/fastify/pull/4247

    Full Changelog: https://github.com/fastify/fastify/compare/v4.5.3...v4.6.0

    Source code(tar.gz)
    Source code(zip)
  • v3.29.2(Aug 30, 2022)

    What's Changed

    • fix: backport reused connection fix by @salzhrani in https://github.com/fastify/fastify/pull/4217

    New Contributors

    • @salzhrani made their first contribution in https://github.com/fastify/fastify/pull/4217

    Full Changelog: https://github.com/fastify/fastify/compare/v3.29.1...v3.29.2

    Source code(tar.gz)
    Source code(zip)
  • v4.5.3(Aug 26, 2022)

    What's Changed

    • ecosystem.md: move fastify-secure-session and fastify-soap-client to core plugins by @Uzlopak in https://github.com/fastify/fastify/pull/4212
    • fix: inject hangs with undefined promise resolve by @simoneb in https://github.com/fastify/fastify/pull/4211
    • use hasOwnProperty from Object.prototype by @Uzlopak in https://github.com/fastify/fastify/pull/4214
    • chore: fastify branch list by @Eomm in https://github.com/fastify/fastify/pull/4218
    • chore: add support for TypeScript 4.8 by @SimenB in https://github.com/fastify/fastify/pull/4222

    Full Changelog: https://github.com/fastify/fastify/compare/v4.5.2...v4.5.3

    Source code(tar.gz)
    Source code(zip)
  • v4.5.2(Aug 18, 2022)

    What's Changed

    • Fix 4204 by @mcollina in https://github.com/fastify/fastify/pull/4205

    Full Changelog: https://github.com/fastify/fastify/compare/v4.5.1...v4.5.2

    Source code(tar.gz)
    Source code(zip)
  • v4.5.1(Aug 18, 2022)

    What's Changed

    • make sure preSerialization hooks are null by default by @mcollina in https://github.com/fastify/fastify/pull/4203

    Full Changelog: https://github.com/fastify/fastify/compare/v4.5.0...v4.5.1

    Source code(tar.gz)
    Source code(zip)
  • v4.5.0(Aug 17, 2022)

    What's Changed

    • Add fastify-osm by @gzileni in https://github.com/fastify/fastify/pull/4185
    • docs(reference/routes): fix onSend example by @Fdawgs in https://github.com/fastify/fastify/pull/4188
    • chore: clean dev-dependancies by @Eomm in https://github.com/fastify/fastify/pull/4189
    • Forward upgrade from secondary server to primary by @mcollina in https://github.com/fastify/fastify/pull/4190
    • add unit test for ajv-formats by @Uzlopak in https://github.com/fastify/fastify/pull/4187
    • add option to disable/ignore request-id header by @philippviereck in https://github.com/fastify/fastify/pull/4193
    • doc: add fastify.display-name symbol by @Eomm in https://github.com/fastify/fastify/pull/4191
    • docs(validation-and-serialization): Fix example on query string coercion by @galiarmero in https://github.com/fastify/fastify/pull/4198
    • Add fastify-https-always to Ecosystem doc. by @mattbishop in https://github.com/fastify/fastify/pull/4201

    New Contributors

    • @gzileni made their first contribution in https://github.com/fastify/fastify/pull/4185
    • @philippviereck made their first contribution in https://github.com/fastify/fastify/pull/4193
    • @galiarmero made their first contribution in https://github.com/fastify/fastify/pull/4198

    Full Changelog: https://github.com/fastify/fastify/compare/v4.4.0...v4.5.0

    Source code(tar.gz)
    Source code(zip)
  • v4.4.0(Aug 8, 2022)

    What's Changed

    • fix(types): bad naming of validateInput by @metcoder95 in https://github.com/fastify/fastify/pull/4151
    • feat: add webdav http methods by @hungtcs in https://github.com/fastify/fastify/pull/3836
    • fix(types): reply.getHeader can return numbers and arrays by @seanparmelee in https://github.com/fastify/fastify/pull/4154
    • feat(logger): use pino.BaseLogger as main interface for fastify logger by @sgrigorev in https://github.com/fastify/fastify/pull/4150
    • docs(ecosystem): Add fastify-bugsnag as community plugin by @ZigaStrgar in https://github.com/fastify/fastify/pull/4155
    • fix typo in docs/reference/Server.md by @developerHet in https://github.com/fastify/fastify/pull/4163
    • Make ResolveFastifyReplyType union-aware by @cm-ayf in https://github.com/fastify/fastify/pull/4164
    • docs: update code snippet for accurate use by @lirantal in https://github.com/fastify/fastify/pull/4167
    • build(deps): bump lycheeverse/lychee-action from 1.5.0 to 1.5.1 by @dependabot in https://github.com/fastify/fastify/pull/4169
    • build(deps-dev): bump markdownlint-cli2 from 0.4.0 to 0.5.0 by @dependabot in https://github.com/fastify/fastify/pull/4170
    • types: adjust and add testing by @metcoder95 in https://github.com/fastify/fastify/pull/4158
    • docs(ecosystem): add fastify-lyra by @mateonunez in https://github.com/fastify/fastify/pull/4176
    • Add links to type providers by @kibertoad in https://github.com/fastify/fastify/pull/4177
    • docs(ecosystem): add fastify-keycloak-adapter by @yubinTW in https://github.com/fastify/fastify/pull/4180
    • Docs: onResponse hook error logging by @avanelli in https://github.com/fastify/fastify/pull/4178

    New Contributors

    • @hungtcs made their first contribution in https://github.com/fastify/fastify/pull/3836
    • @seanparmelee made their first contribution in https://github.com/fastify/fastify/pull/4154
    • @sgrigorev made their first contribution in https://github.com/fastify/fastify/pull/4150
    • @ZigaStrgar made their first contribution in https://github.com/fastify/fastify/pull/4155
    • @developerHet made their first contribution in https://github.com/fastify/fastify/pull/4163
    • @cm-ayf made their first contribution in https://github.com/fastify/fastify/pull/4164
    • @lirantal made their first contribution in https://github.com/fastify/fastify/pull/4167
    • @mateonunez made their first contribution in https://github.com/fastify/fastify/pull/4176
    • @yubinTW made their first contribution in https://github.com/fastify/fastify/pull/4180
    • @avanelli made their first contribution in https://github.com/fastify/fastify/pull/4178

    Full Changelog: https://github.com/fastify/fastify/compare/v4.3.0...v4.4.0

    Source code(tar.gz)
    Source code(zip)
  • v4.3.0(Jul 21, 2022)

    What's Changed

    • dont cache unnecessary content types by @Uzlopak in https://github.com/fastify/fastify/pull/4134
    • fix: default clientError replies on reused connection (#4101) by @katreniak in https://github.com/fastify/fastify/pull/4133
    • docs(ecosystem): add electron-server by @anonrig in https://github.com/fastify/fastify/pull/4136
    • feat: expose validate/serialize functions through Request and Reply by @metcoder95 in https://github.com/fastify/fastify/pull/3970
    • types: re-export FastifyListenOptions in top-level types by @kyranet in https://github.com/fastify/fastify/pull/4135
    • docs: remove http2 experimental status (#4142) by @SebastianZimmer in https://github.com/fastify/fastify/pull/4144
    • refactor: rename request.validate to request.validateInput by @metcoder95 in https://github.com/fastify/fastify/pull/4139
    • Fix #4120: Defer resolution of FastifyRequestType until FastifyRequest by @sinclairzx81 in https://github.com/fastify/fastify/pull/4123

    New Contributors

    • @katreniak made their first contribution in https://github.com/fastify/fastify/pull/4133
    • @SebastianZimmer made their first contribution in https://github.com/fastify/fastify/pull/4144

    Full Changelog: https://github.com/fastify/fastify/compare/v4.2.1...v4.3.0

    Source code(tar.gz)
    Source code(zip)
  • v4.2.1(Jul 12, 2022)

    What's Changed

    • Update Migration-Guide-V4.md by @denes-fekeshazy in https://github.com/fastify/fastify/pull/4091
    • ci: reference actions using tags by @Fdawgs in https://github.com/fastify/fastify/pull/4086
    • Remove redundant docs on TypeBox properties by @simonplend in https://github.com/fastify/fastify/pull/4095
    • Add typeorm-fastify-plugin in Alphabetic order by @jclemens24 in https://github.com/fastify/fastify/pull/4096
    • Add ecosystem linting by @jsumners in https://github.com/fastify/fastify/pull/4097
    • fix: FastifySchemaValidationError type insufficient by @BlackHole1 in https://github.com/fastify/fastify/pull/4094
    • build(deps): bump actions/dependency-review-action from 1 to 2 by @dependabot in https://github.com/fastify/fastify/pull/4102
    • refactor: update Reply module by @denshakhov in https://github.com/fastify/fastify/pull/4072
    • fix: Add types to server properties by @TommyDew42 in https://github.com/fastify/fastify/pull/4100
    • docs(TypeScript): Fix a few typos by @Eldemarkki in https://github.com/fastify/fastify/pull/4106
    • fix: no store compiled schema ids by @Eomm in https://github.com/fastify/fastify/pull/4109
    • build(deps-dev): bump @sinclair/typebox from 0.23.5 to 0.24.9 by @dependabot in https://github.com/fastify/fastify/pull/4113
    • build(deps-dev): bump tsd from 0.21.0 to 0.22.0 by @dependabot in https://github.com/fastify/fastify/pull/4114
    • docs: fix links on README by @gerardmarquinarubio in https://github.com/fastify/fastify/pull/4116
    • docs(Guides/Plugins-Guide.md) : add reminder by @mrdcvlsc in https://github.com/fastify/fastify/pull/4117
    • docs(ecosystem): add simple-tjscli (#4112) by @imjuni in https://github.com/fastify/fastify/pull/4118
    • refactor(types): deduplicate listen options and export it by @kyranet in https://github.com/fastify/fastify/pull/4013
    • sample usage code fixed by @indatawetrust in https://github.com/fastify/fastify/pull/4128
    • Update TypeScript.md by @mikicho in https://github.com/fastify/fastify/pull/4126
    • run error serializer check only before release by @mcollina in https://github.com/fastify/fastify/pull/4130
    • build(deps-dev): bump fastify-plugin from 3.0.1 to 4.0.0 by @dependabot in https://github.com/fastify/fastify/pull/4131
    • Update README.md by @davidekete in https://github.com/fastify/fastify/pull/4132

    New Contributors

    • @denes-fekeshazy made their first contribution in https://github.com/fastify/fastify/pull/4091
    • @jclemens24 made their first contribution in https://github.com/fastify/fastify/pull/4096
    • @BlackHole1 made their first contribution in https://github.com/fastify/fastify/pull/4094
    • @denshakhov made their first contribution in https://github.com/fastify/fastify/pull/4072
    • @TommyDew42 made their first contribution in https://github.com/fastify/fastify/pull/4100
    • @Eldemarkki made their first contribution in https://github.com/fastify/fastify/pull/4106
    • @gerardmarquinarubio made their first contribution in https://github.com/fastify/fastify/pull/4116
    • @mrdcvlsc made their first contribution in https://github.com/fastify/fastify/pull/4117
    • @kyranet made their first contribution in https://github.com/fastify/fastify/pull/4013
    • @indatawetrust made their first contribution in https://github.com/fastify/fastify/pull/4128
    • @mikicho made their first contribution in https://github.com/fastify/fastify/pull/4126
    • @davidekete made their first contribution in https://github.com/fastify/fastify/pull/4132

    Full Changelog: https://github.com/fastify/fastify/compare/v4.2.0...v4.2.1

    Source code(tar.gz)
    Source code(zip)
  • v3.29.1(Jul 1, 2022)

    What's Changed

    • docs: reference new @fastify/* modules by @Fdawgs in https://github.com/fastify/fastify/pull/3860
    • Child log level in bindings is deprecated by @orov-io in https://github.com/fastify/fastify/pull/3896
    • Handle aborted requests (#215) by @TimotejR in https://github.com/fastify/fastify/pull/4103

    New Contributors

    • @orov-io made their first contribution in https://github.com/fastify/fastify/pull/3896
    • @TimotejR made their first contribution in https://github.com/fastify/fastify/pull/4103

    Full Changelog: https://github.com/fastify/fastify/compare/v3.29.0...v3.29.1

    Source code(tar.gz)
    Source code(zip)
  • v4.2.0(Jun 28, 2022)

    What's Changed

    • docs: add @h4ad/serverless-adapter to ecosystem by @H4ad in https://github.com/fastify/fastify/pull/4056
    • feat: make sure all validation errors have a statusCode set by @mcollina in https://github.com/fastify/fastify/pull/4061
    • docs(ecosystem): add fastify-ssr-vite to community plugins by @nineohnine in https://github.com/fastify/fastify/pull/4058
    • Add internal link check action by @luisorbaiceta in https://github.com/fastify/fastify/pull/4069
    • hotfix: fix ValidationResult interface (#4045) by @alex-laz in https://github.com/fastify/fastify/pull/4070
    • fix: use ajv for schema ref resolving by @ivan-tymoshenko in https://github.com/fastify/fastify/pull/4049
    • docs(ecosystem): adding @eropple/fastify-openapi3 to community plugins by @eropple in https://github.com/fastify/fastify/pull/4067
    • Remove comments from links check action by @mcollina in https://github.com/fastify/fastify/pull/4080
    • Add lightweight cache plugin to fastify ecosystem by @denbon05 in https://github.com/fastify/fastify/pull/4079
    • Add plugin lcache by alphabetic order by @denbon05 in https://github.com/fastify/fastify/pull/4082
    • fix: onRoute hook should not be called when it registered after route by @climba03003 in https://github.com/fastify/fastify/pull/4052
    • Adds integration CI step by @marcelfranca in https://github.com/fastify/fastify/pull/4075
    • Use a union-aware keyof operator by @A5rocks in https://github.com/fastify/fastify/pull/4076
    • docs: Update TypeScript docs regarding typebox #4073 by @dancastillo in https://github.com/fastify/fastify/pull/4077
    • chore(guide): fulfil error handler and trailers by @Eomm in https://github.com/fastify/fastify/pull/4087
    • Make type provider-provided return types be enforced by @A5rocks in https://github.com/fastify/fastify/pull/4089
    • build(deps): bump find-my-way from 6.4.0 to 7.0.0 by @dependabot in https://github.com/fastify/fastify/pull/4090
    • docs: explain common usage for injection into request instances by @Mazuh in https://github.com/fastify/fastify/pull/4084

    New Contributors

    • @H4ad made their first contribution in https://github.com/fastify/fastify/pull/4056
    • @nineohnine made their first contribution in https://github.com/fastify/fastify/pull/4058
    • @alex-laz made their first contribution in https://github.com/fastify/fastify/pull/4070
    • @eropple made their first contribution in https://github.com/fastify/fastify/pull/4067
    • @denbon05 made their first contribution in https://github.com/fastify/fastify/pull/4079
    • @marcelfranca made their first contribution in https://github.com/fastify/fastify/pull/4075
    • @A5rocks made their first contribution in https://github.com/fastify/fastify/pull/4076
    • @dancastillo made their first contribution in https://github.com/fastify/fastify/pull/4077
    • @Mazuh made their first contribution in https://github.com/fastify/fastify/pull/4084

    Full Changelog: https://github.com/fastify/fastify/compare/v4.1.0...v4.2.0

    Source code(tar.gz)
    Source code(zip)
  • v4.1.0(Jun 21, 2022)

    What's Changed

    • test: fix request terminated should not crash fastify test by @ivan-tymoshenko in https://github.com/fastify/fastify/pull/4024
    • Fix port settings for deprecation warnings. by @phasetr in https://github.com/fastify/fastify/pull/4042
    • fix: propagate generics from FastifyRegister to plugin type by @stefee in https://github.com/fastify/fastify/pull/4034
    • chore(.eslintrc): limit eslint config to project by @Fdawgs in https://github.com/fastify/fastify/pull/4038
    • feat: make reply.redirect() and reply.callNotFound() return reply by @mcollina in https://github.com/fastify/fastify/pull/4037
    • fix: fix schema controller types by @richiemccoll in https://github.com/fastify/fastify/pull/4022
    • Docs(Reference): remove "Type" from imported name by @MomenNano in https://github.com/fastify/fastify/pull/4043
    • docs(guides): add two v4 breaking changes by @tlhunter in https://github.com/fastify/fastify/pull/4040
    • docs(guides): breaking change exposeHeadRoutes by @Eomm in https://github.com/fastify/fastify/pull/4047
    • test: fix flaky test by @climba03003 in https://github.com/fastify/fastify/pull/4051
    • refactor: use object as internal route args by @climba03003 in https://github.com/fastify/fastify/pull/4054
    • build(deps-dev): bump @types/node from 17.0.45 to 18.0.0 by @dependabot in https://github.com/fastify/fastify/pull/4055

    New Contributors

    • @phasetr made their first contribution in https://github.com/fastify/fastify/pull/4042
    • @stefee made their first contribution in https://github.com/fastify/fastify/pull/4034
    • @richiemccoll made their first contribution in https://github.com/fastify/fastify/pull/4022
    • @MomenNano made their first contribution in https://github.com/fastify/fastify/pull/4043
    • @tlhunter made their first contribution in https://github.com/fastify/fastify/pull/4040

    Full Changelog: https://github.com/fastify/fastify/compare/v4.0.3...v4.1.0

    Source code(tar.gz)
    Source code(zip)
  • v4.0.3(Jun 15, 2022)

    What's Changed

    • docs(ecosystem): add fastify-mongodb-sanitizer by @KlemenKozelj in https://github.com/fastify/fastify/pull/4000
    • chore: move fjs as dev deps by @climba03003 in https://github.com/fastify/fastify/pull/4005
    • docs(guides): fix typo by @felixmosh in https://github.com/fastify/fastify/pull/4009
    • Type is imported from @sinclair/typebox by @zekehernandez in https://github.com/fastify/fastify/pull/4016
    • fix: Fastify.listen({path: '...'}) should not also listen on a port by @segevfiner in https://github.com/fastify/fastify/pull/4011
    • docs: update install instructions to remove @next by @IanVS in https://github.com/fastify/fastify/pull/4019
    • Updated LTS strategy by @mcollina in https://github.com/fastify/fastify/pull/4020
    • fix: crash when using async handler send stream by @climba03003 in https://github.com/fastify/fastify/pull/4021
    • build(deps-dev): bump tsd from 0.20.0 to 0.21.0 by @dependabot in https://github.com/fastify/fastify/pull/4010

    New Contributors

    • @KlemenKozelj made their first contribution in https://github.com/fastify/fastify/pull/4000
    • @felixmosh made their first contribution in https://github.com/fastify/fastify/pull/4009
    • @zekehernandez made their first contribution in https://github.com/fastify/fastify/pull/4016
    • @segevfiner made their first contribution in https://github.com/fastify/fastify/pull/4011
    • @IanVS made their first contribution in https://github.com/fastify/fastify/pull/4019

    Full Changelog: https://github.com/fastify/fastify/compare/v4.0.2...v4.0.3

    Source code(tar.gz)
    Source code(zip)
  • v4.0.2(Jun 13, 2022)

    What's Changed

    • test: error serializer by @climba03003 in https://github.com/fastify/fastify/pull/3997
    • fix: disallow reply status code 600 by @markwainwright in https://github.com/fastify/fastify/pull/3999
    • docs: Update to correct link for hooks page by @hafffe in https://github.com/fastify/fastify/pull/4001
    • fix: add fast-json-stringify to dependencies by @simoneb in https://github.com/fastify/fastify/pull/4004

    New Contributors

    • @hafffe made their first contribution in https://github.com/fastify/fastify/pull/4001

    Full Changelog: https://github.com/fastify/fastify/compare/v4.0.1...v4.0.2

    Source code(tar.gz)
    Source code(zip)
  • v4.0.1(Jun 10, 2022)

    What's Changed

    • ci: move concurrency to correct workflow by @Fdawgs in https://github.com/fastify/fastify/pull/3981
    • chore(docs): fix typo by @herrmannplatz in https://github.com/fastify/fastify/pull/3983
    • Solves #3984 by @112RG in https://github.com/fastify/fastify/pull/3986
    • Move Migration-Guide-V4 to guides/ by @mcollina in https://github.com/fastify/fastify/pull/3987
    • added path parameters examples to URL BUILDING section by @mattiaizzi in https://github.com/fastify/fastify/pull/3989
    • docs: fix merge error by @climba03003 in https://github.com/fastify/fastify/pull/3991
    • docs: Clarify global prefixing by @kibertoad in https://github.com/fastify/fastify/pull/3985
    • chore(.gitignore): use updated skeleton template by @Fdawgs in https://github.com/fastify/fastify/pull/3993
    • Support prior version plugins during the release candidate phase by @jsumners in https://github.com/fastify/fastify/pull/3992
    • Add markdown linting by @jsumners in https://github.com/fastify/fastify/pull/3990
    • fix: error serializer by @climba03003 in https://github.com/fastify/fastify/pull/3996

    New Contributors

    • @herrmannplatz made their first contribution in https://github.com/fastify/fastify/pull/3983
    • @112RG made their first contribution in https://github.com/fastify/fastify/pull/3986
    • @mattiaizzi made their first contribution in https://github.com/fastify/fastify/pull/3989

    Full Changelog: https://github.com/fastify/fastify/compare/v4.0.0...v4.0.1

    Source code(tar.gz)
    Source code(zip)
  • v4.0.0(Jun 8, 2022)

    Fastify v4!

    We are finally shipping Fastify v4, you can read more about it at https://medium.com/@fastifyjs/fastify-v4-ga-59f2103b5f0e

    Individual PRs

    • Checked if error handler is default before setting headers by @Swampr in https://github.com/fastify/fastify/pull/2609
    • feat: set undefined on null input by @metcoder95 in https://github.com/fastify/fastify/pull/2731
    • chore: merge master with next by @salmanm in https://github.com/fastify/fastify/pull/2753
    • Set exposeHeadRoutes: true by default by @mcollina in https://github.com/fastify/fastify/pull/2826
    • dropped flatstrt by @mcollina in https://github.com/fastify/fastify/pull/3016
    • Typed decorators by @wyozi in https://github.com/fastify/fastify/pull/2981
    • feat: Improve error experience by @metcoder95 in https://github.com/fastify/fastify/pull/2954
    • Allow async handler to resolve with undefined by @sergejostir in https://github.com/fastify/fastify/pull/2702
    • Remove overdue deprecations by @sergejostir in https://github.com/fastify/fastify/pull/3070
    • Remove content type coercion for response streams by @luke88jones in https://github.com/fastify/fastify/pull/3086
    • feat: Handle new avvio error codes by @metcoder95 in https://github.com/fastify/fastify/pull/3106
    • fix: handle invalid url by @climba03003 in https://github.com/fastify/fastify/pull/3128
    • Clarification for "Simplify reply sent monitoring (#3072)" by @sergejostir in https://github.com/fastify/fastify/pull/3132
    • Deprecate modifying reply.sent property by @sergejostir in https://github.com/fastify/fastify/pull/3140
    • Fix responding from a hook doc by @sergejostir in https://github.com/fastify/fastify/pull/3161
    • Deem everything thrown as an error by @sergejostir in https://github.com/fastify/fastify/pull/3200
    • Encapsulated error handling by @mcollina in https://github.com/fastify/fastify/pull/3261
    • Payload validation by @matthyk in https://github.com/fastify/fastify/pull/3274
    • Ajv8 by default by @Eomm in https://github.com/fastify/fastify/pull/3271
    • Update types for Pino 7 by @kibertoad in https://github.com/fastify/fastify/pull/3281
    • Update dependencies by @kibertoad in https://github.com/fastify/fastify/pull/3294
    • chore(deps): Update to new Avvio major version by @metcoder95 in https://github.com/fastify/fastify/pull/3288
    • Update to pino rc4 by @kibertoad in https://github.com/fastify/fastify/pull/3302
    • Increase http2SessionTimeout and keepAliveTimeout to 72 seconds by @mcollina in https://github.com/fastify/fastify/pull/3304
    • fix(typescript): allow to pass all pino options by @climba03003 in https://github.com/fastify/fastify/pull/3383
    • Fastify Type Providers by @sinclairzx81 in https://github.com/fastify/fastify/pull/3398
    • docs: Extend TypeBox documentation by @Jnig in https://github.com/fastify/fastify/pull/3437
    • Adjust existing PRs for the new reply.sent handing by @sergejostir in https://github.com/fastify/fastify/pull/3444
    • Skip encapsulation of Request and Reply when not needed by @mcollina in https://github.com/fastify/fastify/pull/3479
    • fix: Refactor Context constructor and avoid positional arguments by @vtcaregorodtcev in https://github.com/fastify/fastify/pull/3483
    • remove app.use and fix middleware tests by @genzyy in https://github.com/fastify/fastify/pull/3506
    • chore: bump find-my-way to 5.1.0 by @anonrig in https://github.com/fastify/fastify/pull/3515
    • Type Provider Reply Types by @sinclairzx81 in https://github.com/fastify/fastify/pull/3524
    • chore: bump dependencies by @anonrig in https://github.com/fastify/fastify/pull/3531
    • build: drop node 12 support by @anonrig in https://github.com/fastify/fastify/pull/3532
    • Remove .writableEnded fallbacks for node12 by @sergejostir in https://github.com/fastify/fastify/pull/3590
    • upgrade fast-json-stringify with ajv8 by @Eomm in https://github.com/fastify/fastify/pull/3280
    • fix: bad headers characters by @Eomm in https://github.com/fastify/fastify/pull/3593
    • feat: ajv default array coercion by @Eomm in https://github.com/fastify/fastify/pull/3594
    • docs: add type provider encapsulation by @RafaelGSS in https://github.com/fastify/fastify/pull/3647
    • localhost binds to ipv4 and ipv6 by @Eomm in https://github.com/fastify/fastify/pull/3606
    • feat: bump ajv-compiler by @zekth in https://github.com/fastify/fastify/pull/3687
    • Tests should pass on a host with only a single network interface by @mcollina in https://github.com/fastify/fastify/pull/3703
    • fix: call normal 404 handler on unsupported method by @markwainwright in https://github.com/fastify/fastify/pull/3705
    • Replace pem dependency by @jsumners in https://github.com/fastify/fastify/pull/3711
    • chore: clean tests by @Eomm in https://github.com/fastify/fastify/pull/3714
    • fix: add ajv dep as dev by @Eomm in https://github.com/fastify/fastify/pull/3715
    • build(deps-dev): bump @types/node from 16.11.25 to 17.0.18 by @dependabot in https://github.com/fastify/fastify/pull/3708
    • Add coverage reporting per OS type by @jsumners in https://github.com/fastify/fastify/pull/3717
    • Fix coverage workflows by @jsumners in https://github.com/fastify/fastify/pull/3719
    • build(deps): bump fastify-error from 0.3.1 to 1.0.0 by @dependabot in https://github.com/fastify/fastify/pull/3721
    • Remove Coveralls (closes #3720) by @jsumners in https://github.com/fastify/fastify/pull/3722
    • docs: add database guide page by @maksimovicdanijel in https://github.com/fastify/fastify/pull/3704
    • Remove reference to 'ESLint: manage library execution' command by @karansapolia in https://github.com/fastify/fastify/pull/3727
    • Handle aborted requests by @Allain55 in https://github.com/fastify/fastify/pull/3651
    • Drop @typescript-eslint/no-misused-promises by @mcollina in https://github.com/fastify/fastify/pull/3741
    • test: change port to random by @xtx1130 in https://github.com/fastify/fastify/pull/3740
    • Deprecate variadic listen method (closes #3652) by @jsumners in https://github.com/fastify/fastify/pull/3712
    • feat (types): add complete fastify.listen() typescript definitions by @darkgl0w in https://github.com/fastify/fastify/pull/3751
    • Fix: response type of serialize method in FastifyReply interface by @floratmin in https://github.com/fastify/fastify/pull/3754
    • chore(benchmark): add node v17 by @RafaelGSS in https://github.com/fastify/fastify/pull/3755
    • build(deps-dev): bump tap from 15.2.3 to 16.0.0 by @dependabot in https://github.com/fastify/fastify/pull/3756
    • Fixed Node.js v18/master support by @mcollina in https://github.com/fastify/fastify/pull/3760
    • Fix avvio plugin timeout for 0 by @Miladiir in https://github.com/fastify/fastify/pull/3759
    • Update Ecosystem.md by @love-lena in https://github.com/fastify/fastify/pull/3766
    • docs: aws-lambda-fastify in the ecosystem by @adrai in https://github.com/fastify/fastify/pull/3768
    • Update Ecosystem.md - Add fastify-impressions to the list by @manju4ever in https://github.com/fastify/fastify/pull/3767
    • Fix typo in reference documentation for listen() by @tniessen in https://github.com/fastify/fastify/pull/3773
    • chore: code beauty by @xtx1130 in https://github.com/fastify/fastify/pull/3774
    • Improve parser example by @matthyk in https://github.com/fastify/fastify/pull/3781
    • build(deps): bump actions/setup-node from 2 to 3 by @dependabot in https://github.com/fastify/fastify/pull/3736
    • Automerge major updates by @mcollina in https://github.com/fastify/fastify/pull/3716
    • fix: #3783 by @xtx1130 in https://github.com/fastify/fastify/pull/3784
    • Allow custom Context Config types for hooks' request properties by @sumbad in https://github.com/fastify/fastify/pull/3786
    • fix: set reply's default charset to utf8 by @xtx1130 in https://github.com/fastify/fastify/pull/3789
    • Bugfix/streamline fastify request to be generic by @MarcoLeko in https://github.com/fastify/fastify/pull/3785
    • docs: add fastify-webpack-hot (fixes #3792) by @gajus in https://github.com/fastify/fastify/pull/3793
    • feat: reply trailers support by @climba03003 in https://github.com/fastify/fastify/pull/3794
    • build(deps-dev): bump send from 0.17.2 to 0.18.0 by @dependabot in https://github.com/fastify/fastify/pull/3798
    • chore: change lastindexOf to endsWith by @xtx1130 in https://github.com/fastify/fastify/pull/3799
    • build(deps): bump actions/checkout from 2 to 3 by @dependabot in https://github.com/fastify/fastify/pull/3811
    • refactor: update 404 onBadUrl behavior by @climba03003 in https://github.com/fastify/fastify/pull/3813
    • reply: remove content-length when Transfer-Encoding is added by @xtx1130 in https://github.com/fastify/fastify/pull/3814
    • fix: remove duplicate require(http-errors) by @alex-parra in https://github.com/fastify/fastify/pull/3816
    • fix: remove server.unref from tests (#3790) by @alex-parra in https://github.com/fastify/fastify/pull/3815
    • build(deps-dev): bump tsd from 0.19.1 to 0.20.0 by @dependabot in https://github.com/fastify/fastify/pull/3819
    • feat: allowUnsafeRegex in options by @BCsabaEngine in https://github.com/fastify/fastify/pull/3817
    • test: fix latest pino type change error by @climba03003 in https://github.com/fastify/fastify/pull/3823
    • build(deps-dev): bump json-schema-to-ts from 1.6.5 to 2.0.1 by @dependabot in https://github.com/fastify/fastify/pull/3824
    • build(deps): bump actions/cache from 2 to 3 by @dependabot in https://github.com/fastify/fastify/pull/3825
    • Updated benchmarks to v4 and Node v16 by @mcollina in https://github.com/fastify/fastify/pull/3826
    • ci: reduce workflow permissions to minimum by @Fdawgs in https://github.com/fastify/fastify/pull/3828
    • ci: revert to using pull_request_target by @Fdawgs in https://github.com/fastify/fastify/pull/3832
    • fix type providers package names by @matthyk in https://github.com/fastify/fastify/pull/3831
    • chore: add guide on delaying serving specific requests by @wilkmaia in https://github.com/fastify/fastify/pull/3837
    • Add SQLite as supported database by @matthyk in https://github.com/fastify/fastify/pull/3847
    • docs: improve docs around trailing slashes in routes by @conradthegray in https://github.com/fastify/fastify/pull/3846
    • chore: add node 18 to ci and benchmark by @RafaelGSS in https://github.com/fastify/fastify/pull/3843
    • Update Routes.md by @PazzaVlad in https://github.com/fastify/fastify/pull/3835
    • docs: reference new @fastify/* modules by @Fdawgs in https://github.com/fastify/fastify/pull/3855
    • content-type: return undefined when content-type is '' by @xtx1130 in https://github.com/fastify/fastify/pull/3821
    • Update fastify-error dependency by @jsumners in https://github.com/fastify/fastify/pull/3857
    • ci: allow backport to be run on fork prs by @Fdawgs in https://github.com/fastify/fastify/pull/3858
    • build(deps): bump actions/upload-artifact from 2 to 3 by @dependabot in https://github.com/fastify/fastify/pull/3868
    • chore: add never stale as exempt by @RafaelGSS in https://github.com/fastify/fastify/pull/3873
    • Add Promise to 404 handler return type by @omothm in https://github.com/fastify/fastify/pull/3822
    • docs(guides): grammar fixes by @Fdawgs in https://github.com/fastify/fastify/pull/3876
    • docs: standardize npm cli commands and args by @Fdawgs in https://github.com/fastify/fastify/pull/3875
    • docs(reference): grammar and conciseness changes by @Fdawgs in https://github.com/fastify/fastify/pull/3877
    • Support rc in version checks by @mcollina in https://github.com/fastify/fastify/pull/3879
    • docs: add Type Providers to Typescript docs by @conradthegray in https://github.com/fastify/fastify/pull/3853
    • chore: fix typo by @is2ei in https://github.com/fastify/fastify/pull/3887
    • replaced semver check code per recommendation by @CynoidIT in https://github.com/fastify/fastify/pull/3886
    • chore: fix typo by @is2ei in https://github.com/fastify/fastify/pull/3891
    • Update TypeScript.md by @Ivan-Feofanov in https://github.com/fastify/fastify/pull/3848
    • ci: add dependency-review job by @Fdawgs in https://github.com/fastify/fastify/pull/3884
    • Fix link to OpenJS Foundation Image in Readme.md by @Uzlopak in https://github.com/fastify/fastify/pull/3889
    • fixed a typo in the definition of the abbreviation DAG by @amamdemous in https://github.com/fastify/fastify/pull/3892
    • Run automerge in ci only if we have a pull-request or got a pr-number provided by @Uzlopak in https://github.com/fastify/fastify/pull/3885
    • docs(ecosystem): update core list by @Fdawgs in https://github.com/fastify/fastify/pull/3901
    • Redirect Security Responsible Disclosure Badge in Readme.md to SECURITY.md by @Uzlopak in https://github.com/fastify/fastify/pull/3903
    • JSDoc in Get Started Section by @Sarfraz-droid in https://github.com/fastify/fastify/pull/3850
    • docs: update the link address of hooks by @xyyjk in https://github.com/fastify/fastify/pull/3907
    • test: prepare for network interfaces family change by @climba03003 in https://github.com/fastify/fastify/pull/3910
    • docs: add fastify-racing to ecosystem by @metcoder95 in https://github.com/fastify/fastify/pull/3914
    • fix: all hooks should handle undefined error by @ivan-tymoshenko in https://github.com/fastify/fastify/pull/3915
    • Move querystring parsing to the router by @ivan-tymoshenko in https://github.com/fastify/fastify/pull/3905
    • Add constraint strategies outside Fastify constructor by @ivan-tymoshenko in https://github.com/fastify/fastify/pull/3908
    • feat: http version check by @climba03003 in https://github.com/fastify/fastify/pull/3912
    • docs: explain defaultRoute by @aradwann in https://github.com/fastify/fastify/pull/3917
    • docs: update genReqId docs by @xtx1130 in https://github.com/fastify/fastify/pull/3898
    • docs: remove unused constraint methods by @ivan-tymoshenko in https://github.com/fastify/fastify/pull/3921
    • Fix getDefaultRoute type by @lbfalvy in https://github.com/fastify/fastify/pull/3920
    • Remove mentions of make-promises-safe because it is only needed with Node <=14 by @danieldiekmeier in https://github.com/fastify/fastify/pull/3922
    • build(deps): bump process-warning from 1.0.0 to 2.0.0 by @dependabot in https://github.com/fastify/fastify/pull/3926
    • build(deps): bump light-my-request from 4.10.1 to 5.0.0 by @dependabot in https://github.com/fastify/fastify/pull/3927
    • chore: update @fastify/fast-json-stringify-compiler by @Eomm in https://github.com/fastify/fastify/pull/3928
    • docs(guides/ecosystem): add any-schema-you-like; sort alphabetically by @Fdawgs in https://github.com/fastify/fastify/pull/3930
    • docs(Reference/Logging): update suggested pino-pretty configuration by @mweberxyz in https://github.com/fastify/fastify/pull/3933
    • docs(ecosystem): add fastify-amqp-async by @kffl in https://github.com/fastify/fastify/pull/3934
    • feat: add ignoreDuplicateSlashes option by @ivan-tymoshenko in https://github.com/fastify/fastify/pull/3929
    • ci: remove git credentials after checkout by @Fdawgs in https://github.com/fastify/fastify/pull/3937
    • improve schema.response validation error message by @evanshortiss in https://github.com/fastify/fastify/pull/3935
    • docs(ecosystem): add fast-maker by @imjuni in https://github.com/fastify/fastify/pull/3939
    • doc: add RafaelGSS to Plugins team by @RafaelGSS in https://github.com/fastify/fastify/pull/3940
    • fix: handler return reply type by @alexandresaura in https://github.com/fastify/fastify/pull/3941
    • docs: fix ambiguous sentence by @is2ei in https://github.com/fastify/fastify/pull/3944
    • docs(ecosystem): add fastify-kafkajs by @kffl in https://github.com/fastify/fastify/pull/3945
    • Make the root pluginName 'fastify' by @mcollina in https://github.com/fastify/fastify/pull/3946
    • build(deps): bump @fastify/error from 2.0.0 to 3.0.0 by @dependabot in https://github.com/fastify/fastify/pull/3947
    • build(deps): bump find-my-way from 6.1.0 to 6.2.0 by @dependabot in https://github.com/fastify/fastify/pull/3948
    • build(deps-dev): bump json-schema-to-ts from 2.5.2 to 5.2.3 by @dependabot in https://github.com/fastify/fastify/pull/3949
    • fix: preserve chain of proptotypes in multiple nested plugins by @mcollina in https://github.com/fastify/fastify/pull/3954
    • docs(ecosystem): add fastify-next-auth by @wobsoriano in https://github.com/fastify/fastify/pull/3943
    • docs(guides): fix page name style by @Fdawgs in https://github.com/fastify/fastify/pull/3955
    • chore: Bump all dependencies by @kibertoad in https://github.com/fastify/fastify/pull/3956
    • fix(types): fix default type provider typings by @kevinmarrec in https://github.com/fastify/fastify/pull/3952
    • chore: Upgrade to pino 8 by @kibertoad in https://github.com/fastify/fastify/pull/3961
    • chore: Fix types for child loggers by @kibertoad in https://github.com/fastify/fastify/pull/3962
    • docs: update a link to tsconfig by @is2ei in https://github.com/fastify/fastify/pull/3964
    • feat: add hasPlugin method by @is2ei in https://github.com/fastify/fastify/pull/3963
    • feat: Use new Node.js' connection closing API if available by @ShogunPanda in https://github.com/fastify/fastify/pull/3925
    • docs: fix broken link by @baseballyama in https://github.com/fastify/fastify/pull/3966
    • update fast-json-stringify to v4 by @mcollina in https://github.com/fastify/fastify/pull/3967
    • 2XX is a supported status code for the response by @mcollina in https://github.com/fastify/fastify/pull/3969
    • docs: update http links to https by @Fdawgs in https://github.com/fastify/fastify/pull/3976
    • docs: update core plugin names by @Fdawgs in https://github.com/fastify/fastify/pull/3975
    • ci(ci): use concurrency in pull requests by @Fdawgs in https://github.com/fastify/fastify/pull/3973
    • feat: allow default as status code by @climba03003 in https://github.com/fastify/fastify/pull/3972

    Full Changelog: https://github.com/fastify/fastify/compare/v3.27.2...v4.0.0

    Source code(tar.gz)
    Source code(zip)
  • v4.0.0-rc.5(Jun 6, 2022)

    What's Changed

    • docs(guides): fix page name style by @Fdawgs in https://github.com/fastify/fastify/pull/3955
    • chore: Bump all dependencies by @kibertoad in https://github.com/fastify/fastify/pull/3956
    • fix(types): fix default type provider typings by @kevinmarrec in https://github.com/fastify/fastify/pull/3952
    • chore: Upgrade to pino 8 by @kibertoad in https://github.com/fastify/fastify/pull/3961
    • chore: Fix types for child loggers by @kibertoad in https://github.com/fastify/fastify/pull/3962
    • docs: update a link to tsconfig by @is2ei in https://github.com/fastify/fastify/pull/3964
    • feat: add hasPlugin method by @is2ei in https://github.com/fastify/fastify/pull/3963
    • feat: Use new Node.js' connection closing API if available by @ShogunPanda in https://github.com/fastify/fastify/pull/3925
    • docs: fix broken link by @baseballyama in https://github.com/fastify/fastify/pull/3966
    • update fast-json-stringify to v4 by @mcollina in https://github.com/fastify/fastify/pull/3967
    • 2XX is a supported status code for the response by @mcollina in https://github.com/fastify/fastify/pull/3969

    New Contributors

    • @kevinmarrec made their first contribution in https://github.com/fastify/fastify/pull/3952
    • @baseballyama made their first contribution in https://github.com/fastify/fastify/pull/3966

    Full Changelog: https://github.com/fastify/fastify/compare/v4.0.0-rc.4...v4.0.0-rc.5

    Source code(tar.gz)
    Source code(zip)
  • v4.0.0-rc.4(May 31, 2022)

    What's Changed

    • build(deps): bump process-warning from 1.0.0 to 2.0.0 by @dependabot in https://github.com/fastify/fastify/pull/3926
    • build(deps): bump light-my-request from 4.10.1 to 5.0.0 by @dependabot in https://github.com/fastify/fastify/pull/3927
    • chore: update @fastify/fast-json-stringify-compiler by @Eomm in https://github.com/fastify/fastify/pull/3928
    • docs(guides/ecosystem): add any-schema-you-like; sort alphabetically by @Fdawgs in https://github.com/fastify/fastify/pull/3930
    • docs(Reference/Logging): update suggested pino-pretty configuration by @mweberxyz in https://github.com/fastify/fastify/pull/3933
    • docs(ecosystem): add fastify-amqp-async by @kffl in https://github.com/fastify/fastify/pull/3934
    • feat: add ignoreDuplicateSlashes option by @ivan-tymoshenko in https://github.com/fastify/fastify/pull/3929
    • ci: remove git credentials after checkout by @Fdawgs in https://github.com/fastify/fastify/pull/3937
    • improve schema.response validation error message by @evanshortiss in https://github.com/fastify/fastify/pull/3935
    • docs(ecosystem): add fast-maker by @imjuni in https://github.com/fastify/fastify/pull/3939
    • doc: add RafaelGSS to Plugins team by @RafaelGSS in https://github.com/fastify/fastify/pull/3940
    • fix: handler return reply type by @alexandresaura in https://github.com/fastify/fastify/pull/3941
    • docs: fix ambiguous sentence by @is2ei in https://github.com/fastify/fastify/pull/3944
    • docs(ecosystem): add fastify-kafkajs by @kffl in https://github.com/fastify/fastify/pull/3945
    • Make the root pluginName 'fastify' by @mcollina in https://github.com/fastify/fastify/pull/3946
    • build(deps): bump @fastify/error from 2.0.0 to 3.0.0 by @dependabot in https://github.com/fastify/fastify/pull/3947
    • build(deps): bump find-my-way from 6.1.0 to 6.2.0 by @dependabot in https://github.com/fastify/fastify/pull/3948
    • build(deps-dev): bump json-schema-to-ts from 2.5.2 to 5.2.3 by @dependabot in https://github.com/fastify/fastify/pull/3949
    • fix: preserve chain of proptotypes in multiple nested plugins by @mcollina in https://github.com/fastify/fastify/pull/3954
    • docs(ecosystem): add fastify-next-auth by @wobsoriano in https://github.com/fastify/fastify/pull/3943

    New Contributors

    • @mweberxyz made their first contribution in https://github.com/fastify/fastify/pull/3933
    • @kffl made their first contribution in https://github.com/fastify/fastify/pull/3934
    • @imjuni made their first contribution in https://github.com/fastify/fastify/pull/3939
    • @alexandresaura made their first contribution in https://github.com/fastify/fastify/pull/3941
    • @wobsoriano made their first contribution in https://github.com/fastify/fastify/pull/3943

    Full Changelog: https://github.com/fastify/fastify/compare/v4.0.0-rc.3...v4.0.0-rc.4

    Source code(tar.gz)
    Source code(zip)
Owner
Fastify
Fast and low overhead web framework, for Node.js
Fastify
🦄 0-legacy, tiny & fast web framework as a replacement of Express

tinyhttp ⚡ Tiny web framework as a replacement of Express ?? tinyhttp now has a Deno port (work in progress) tinyhttp is a modern Express-like web fra

v 1 r t l 2.4k Jan 3, 2023
Realtime.js - a fast frontend framework based on Web-Components.

Realtime.js is a fast frontend framework based on Web-Components and Proxies. It has a lot of features to simplify your way of live as a vanillajs developer. The framework is programmed in such a way, that you can edit it yourself if you need additional features.

Kilian Hertel 7 Nov 1, 2022
:evergreen_tree: Modern Web Application Framework for Node.js.

Trails is a modern, community-driven web application framework for Node.js. It builds on the pedigree of Rails and Grails to accelerate development by

Trails 1.7k Dec 19, 2022
A serverless web framework for Node.js on AWS (CloudFormation, CloudFront, API Gateway, Lambda)

---- Sorry, this project is not maintained anymore. ---- dawson is a serverless web framework for Node.js on AWS (CloudFormation, CloudFront, API Gate

dawson 717 Dec 30, 2022
🍔 A Node.js Serverless Framework for front-end/full-stack developers. Build the application for next decade. Works on AWS, Alibaba Cloud, Tencent Cloud and traditional VM/Container. Super easy integrate with React and Vue. 🌈

Midway - 一个面向未来的云端一体 Node.js 框架 English | 简体中文 ?? 欢迎观看 Midway Serverless 2.0 发布会回放: https://www.bilibili.com/video/BV17A411T7Md 《Midway Serverless 发布

Midway.js 6.3k Jan 8, 2023
A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications on top of TypeScript & JavaScript (ES6, ES7, ES8) 🚀

A progressive Node.js framework for building efficient and scalable server-side applications. Description Nest is a framework for building efficient,

nestjs 53.2k Dec 31, 2022
🚀 The Node.js Framework highly focused on developer ergonomics, stability and confidence

Sponsored by FOSS United is a non-profit foundation that aims at promoting and strengthening the Free and Open Source Software (FOSS) ecosystem in Ind

AdonisJS Framework 13.4k Dec 31, 2022
MVC framework making it easy to write realtime, collaborative applications that run in both Node.js and browsers

Derby The Derby MVC framework makes it easy to write realtime, collaborative applications that run in both Node.js and browsers. Derby includes a powe

DerbyJS 4.7k Dec 23, 2022
Marble.js - functional reactive Node.js framework for building server-side applications, based on TypeScript and RxJS.

Functional reactive Node.js framework for building server-side applications, based on TypeScript and RxJS. Ecosystem Name Description @marblejs/core F

Marble.js 2.1k Dec 16, 2022
Realtime MVC Framework for Node.js

Website Get Started Docs News Submit Issue Sails.js is a web framework that makes it easy to build custom, enterprise-grade Node.js apps. It is design

Balderdash 22.4k Dec 31, 2022
:rocket: Progressive microservices framework for Node.js

Moleculer Moleculer is a fast, modern and powerful microservices framework for Node.js. It helps you to build efficient, reliable & scalable services.

MoleculerJS 5.5k Jan 4, 2023
Node.js framework

Node.js framework Total.js framework is a framework for Node.js platfrom written in pure JavaScript similar to PHP's Laravel or Python's Django or ASP

Total.js 4.2k Jan 2, 2023
Component based MVC web framework for nodejs targeting good code structures & modularity.

Component based MVC web framework for nodejs targeting good code structures & modularity. Why fortjs Based on Fort architecture. MVC Framework and fol

Ujjwal Gupta 47 Sep 27, 2022
Proof of concept for the Quark.js web framework

Quark.js Proof of Concept Proof of concept for the Quark.js web framework. Examples Express.js Implimentation using express.js as a web server: im

Quark.js 3 Feb 18, 2022
A well documented set of tools for building node web applications.

Perk Framework Perk is a well documented set of tools for building node web applications. The goal of Perk is first and foremost to provide a well doc

Aaron Larner 179 Oct 26, 2022
A framework for real-time applications and REST APIs with JavaScript and TypeScript

A framework for real-time applications and REST APIs with JavaScript and TypeScript Feathers is a lightweight web-framework for creating real-time app

Feathers 14.3k Jan 1, 2023
Catberry is an isomorphic framework for building universal front-end apps using components, Flux architecture and progressive rendering.

Catberry What the cat is that? Catberry was developed to help create "isomorphic/Universal" Web applications. Long story short, isomorphic/universal a

Catberry.js 801 Dec 20, 2022
The React Framework

Next.js Getting Started Visit https://nextjs.org/learn to get started with Next.js. Documentation Visit https://nextjs.org/docs to view the full docum

Vercel 98.6k Jan 5, 2023
The Intuitive Vue Framework

Build your next Vue.js application with confidence using Nuxt: a framework making web development simple and powerful. Links ?? Documentation: https:/

Nuxt 41.8k Jan 9, 2023