# Fastify **Repository Path**: yong888/Fastify ## Basic Information - **Project Name**: Fastify - **Description**: Fastify 是一个高度专注于以最少开销和强大的插件架构提供最佳开发人员体验的 Web 框架 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 12 - **Created**: 2019-08-02 - **Last Updated**: 2024-05-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
Getting Started.
### Quick start with Fastify CLI
Good tools make API development quicker and easier to maintain than doing everything manually.
The [Fastify CLI](https://github.com/fastify/fastify-cli) is a command line interface tool that can create new projects, manage plugins, and perform a variety of development tasks testing and running the application.
The goal in this guide is to build and run a simple Fastify project, using the [Fastify CLI](https://github.com/fastify/fastify-cli), while adhering to the Style Guide recommendations that benefit every Fastify project.
### Example
Open a terminal window.
```
npm install fastify-cli --global
```
Generate a new project and default app by running the following command:
```
fastify generate
```
For more information, see the [Fastify CLI documentation](https://github.com/fastify/fastify-cli).
### Fastify v1.x
Code for Fastify's **v1.x** is in [Branch 1.x](https://github.com/fastify/fastify/tree/1.x), so all Fastify 1.x related changes should be based on **`branch 1.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](https://cloud.google.com/), 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](https://web.archive.org/web/20170711105010/https://snyk.io/blog/mongodb-hack-and-secure-defaults/).
> See [the documentation](https://github.com/fastify/fastify/blob/master/docs/Server.md#listen) 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 30 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](http://json-schema.org/) 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](https://github.com/pinojs/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 |
| :----------------- | :------------------------- | :----------: | ------------: |
| hapi | 18.1.0 | ✓ | 29,998 |
| Express | 4.16.4 | ✓ | 38,510 |
| Restify | 8.0.0 | ✓ | 39,331 |
| Koa | 2.7.0 | ✗ | 50,933 |
| **Fastify** | **2.0.0** | **✓** | **76,835** |
| - | | | |
| `http.Server` | 10.15.2 | ✗ | 71,768 |
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
* Getting Started
* Server
* Routes
* Logging
* Middlewares
* Hooks
* Decorators
* Validation and Serialization
* Lifecycle
* Reply
* Request
* Errors
* Content Type Parser
* Plugins
* Testing
* Benchmarking
* How to write a good plugin
* Plugins Guide
* HTTP2
* Long Term Support
* TypeScript and types support
* Serverless
中文文档[地址](https://github.com/fastify/docs-chinese/blob/master/README.md)
## Ecosystem
- [Core](https://github.com/fastify/fastify/blob/master/docs/Ecosystem.md#core) - Core plugins maintained by the _Fastify_ [team](#team).
- [Community](https://github.com/fastify/fastify/blob/master/docs/Ecosystem.md#community) - Community supported plugins.
- [Live Examples](https://github.com/fastify/example) - Multirepo with a broad set of real working examples.
## Support
- [Fastify help](https://github.com/fastify/help)
- [Gitter Chat](https://gitter.im/fastify)
## Team
_Fastify_ is the result of the work of a great community.
Team members are listed in alphabetical order.
**Lead Maintainers:**
* [__Matteo Collina__](https://github.com/mcollina),