<p align="center">
  <a href="http://farrowjs.com/" target="blank"><img src="https://github.com/farrow-js/farrow/blob/master/docs/assets/Farrow.blue.bg.png" width="120" alt="Farrow Logo" /></a>
</p>

<p align="center">
  <a href="https://www.npmjs.com/package/farrow-http" rel="nofollow">
    <img alt="npm version" src="https://img.shields.io/npm/v/farrow-http.svg?style=flat" style="max-width:100%;">
  </a>
  <a href="https://github.com/farrow-js/farrow/actions/workflows/test.yml" rel="nofollow">
    <img alt="CI Status" src="https://github.com/farrow-js/farrow/workflows/CI/badge.svg" style="max-width:100%;">
  </a>
  <a href="https://github.com/farrow-js/farrow/actions/workflows/benchmark.yml" rel="nofollow">
    <img alt="Benchmark Status" src="https://github.com/farrow-js/farrow/workflows/Benchmark/badge.svg" style="max-width:100%;">
  </a>
  <a href="https://github.com/Lucifier129/farrow/blob/master/LICENSE">
    <img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-blue.svg" style="max-width:100%;">
  </a>
</p>

## Description

**Farrow** is A Type-Friendly Web Framework for Node.js

## Getting Started

Please follow the documentation at [farrowjs.com](https://www.farrowjs.com/docs/tutorial)!

## Benefits

- Expressive HTTP middleware like [Koa](https://github.com/koajs/koa) but no need to modify `req/res` or `ctx`
- Strongly typed and type-safe from request to response via powerful schema-based validation
- Provide React-Hooks-like mechanism which is useful for reusing code and integrating other parts of Server like database connection
- Easy to learn and use if you were experienced in expressjs/koajs

![Farrow Demo](https://github.com/farrow-js/farrow/blob/master/docs/assets/farrow.png)

## Environment Requirement

- TypeScript >= 4.3
- Node.js >= 14.x

## Issues

Contributions, issues and feature requests are welcome! Feel free to check [issues page](https://github.com/Lucifier129/farrow/issues).

## [Contributing Guide](https://github.com/farrow-js/farrow/blob/master/CONTRIBUTING.md)

## Stay In Touch

- [Website](https://www.farrowjs.com/)
- [Twitter](https://twitter.com/guyingjie129)
- [doc/v1](https://github.com/farrow-js/farrow/tree/master/docs/v1)
- [Blog](https://www.farrowjs.com/blog)

## License

This project is [MIT](https://github.com/farrow-js/farrow/blob/master/LICENSE) licensed.

Copyright © 2021-present, [Jade Gu](https://github.com/Lucifier129).
