Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/foxifyjs/foxify
The fast, easy to use & typescript ready web framework for Node.js
https://github.com/foxifyjs/foxify
api express expressjs fast fastify foxify framework javascript middleware monorepo nodejs performance router speed typescript web
Last synced: 5 days ago
JSON representation
The fast, easy to use & typescript ready web framework for Node.js
- Host: GitHub
- URL: https://github.com/foxifyjs/foxify
- Owner: foxifyjs
- License: mit
- Created: 2018-02-05T17:36:04.000Z (almost 7 years ago)
- Default Branch: main
- Last Pushed: 2023-09-01T05:33:40.000Z (over 1 year ago)
- Last Synced: 2024-10-29T21:22:43.876Z (3 months ago)
- Topics: api, express, expressjs, fast, fastify, foxify, framework, javascript, middleware, monorepo, nodejs, performance, router, speed, typescript, web
- Language: TypeScript
- Homepage: https://foxify.js.org
- Size: 2.47 MB
- Stars: 151
- Watchers: 5
- Forks: 9
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- my-awesome-list - foxify
README
# Foxify [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Foxify,%20The%20fast,%20easy%20to%20use%20%26%20typescript%20ready%20web%20framework%20for%20Node.js&url=https://github.com/foxifyjs/foxify&via=foxifyjs&hashtags=foxify,nodejs,web,api,framework,typescript,developers,fast) [![Twitter Follow](https://img.shields.io/twitter/follow/foxifyjs.svg?style=social&label=Follow)](https://twitter.com/foxifyjs)
The **fast**, **easy to use** & **typescript ready** web framework for [Node.js][NODEJS_WEBSITE].
_Inspired by [Express](https://expressjs.com) & [Fastify](https://www.fastify.io)._
[![Npm Version][NPM_VERSION_BADGE]][NPM_PACKAGE_URL]
[![Build Status][GITHUB_ACTIONS_BADGE]][GITHUB_ACTIONS_URL]
[![Coverage Status][CODE_COVERAGE_BADGE]][CODE_COVERAGE_URL]
[![License][LICENSE_BADGE]][LICENSE_URL]
[![Node.js Version][NODEJS_VERSION_BADGE]][NODEJS_WEBSITE]
[![Npm Monthly Downloads][NPM_MONTHLY_DOWNLOAD_BADGE]][NPM_PACKAGE_URL]
[![Npm Total Downloads][NPM_TOTAL_DOWNLOAD_BADGE]][NPM_PACKAGE_URL]
[![Known Vulnerabilities][VULNERABILITIES_BADGE]][VULNERABILITIES_URL]
[![Open Issues][OPEN_ISSUES_BADGE]][OPEN_ISSUES_URL]
[![Pull Requests][PRS_BADGE]][PRS_URL]
[![Sponsors on Open Collective][OPENCOLLECTIVE_SPONSORS_COUNT_BADGE]](#sponsors)
[![Backers on Open Collective][OPENCOLLECTIVE_BACKERS_COUNT_BADGE]](#backers)
[![Built with TypeScript][TYPES_BADGE]][TYPESCRIPT_WEBSITE]
[![Tested With Jest][JEST_BADGE]][JEST_URL]
[![Github Stars][GITHUB_STARS_BADGE]][GITHUB_PROJECT_URL]
[![Github Forks][GITHUB_FORKS_BADGE]][GITHUB_PROJECT_URL]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 Foxify. Foxify 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 Fastify and Express and as far as we know, it is one of
the fastest web frameworks in town.## Table of Content
- [Getting Started](#getting-started)
- [Installation](#installation)
- [NPM](#npm)
- [PNPM](#pnpm)
- [Yarn](#yarn)
- [Usage](#usage)
- [Features](#features)
- [Benchmarks](#benchmarks)
- [Credits](#credits)
- [Authors](#authors)
- [Contributors](#contributors)
- [Sponsors](#sponsors)
- [Backers](#backers)
- [Versioning](#versioning)
- [License](#license)## Getting Started
### Installation
#### NPM
```shell
npm i foxify
```#### PNPM
```shell
pnpm add foxify
```#### Yarn
```shell
yarn add foxify
```### Usage
```typescript
import { HttpException } from "@foxify/http";
import Foxify from "foxify";const app = new Foxify();
app.get("/", (req, res) => res.json({ hello: "world" }));
// create an error
app.get("/error", (req, res) => {
throw new Error("I Failed :(");
});// create an http error
app.get("/404", (req, res) => {
throw new HttpException("Not Found", 404);
});app.start();
```More detailed [sample](https://github.com/foxifyjs/foxify/tree/main/demo) is available.
You can also find all the documents [here][DOCUMENTS_URL].
## Features
- Written in ES6
- Robust routing (about 60% faster than `Express`, almost as fast as `Fastify`)
- `Express` middleware support
- Robust database modeling ([`Odin`](https://github.com/foxifyjs/odin))
- Simple and powerful error handling
- Focus on high performance
- HTTP helpers (redirection, etc)
- View system supporting lots of template engines
- Content negotiation
- Executable for generating applications quickly
- Error handling## Benchmarks
Benchmarks are available [here][BENCHMARKS_URL]
## Credits
### Authors
- [**Ardalan Amini**](https://ardalanamini.com) - *Core Maintainer* - [@ardalanamini](https://github.com/ardalanamini)
### Contributors
This project exists thanks to all the people who
contribute. [[Contribute][CONTRIBUTORS_GUIDE_URL]].[![Contributors][CONTRIBUTORS_BADGE]][CONTRIBUTORS_URL]
_Made with [contrib.rocks](https://contrib.rocks)._
### Sponsors
Support Foxify by becoming a sponsor. Your logo will show up
here. [[Become a sponsor][OPENCOLLECTIVE_SPONSOR_URL]][![Sponsors][OPENCOLLECTIVE_SPONSORS_BADGE]][OPENCOLLECTIVE_SPONSORS_URL]
### Backers
Thanks to all Foxify backers! [[Become a backer][OPENCOLLECTIVE_BACKER_URL]]
[![Backers][OPENCOLLECTIVE_BACKERS_BADGE]][OPENCOLLECTIVE_BACKERS_URL]
## Versioning
We use [SemVer][SEMVER_WEBSITE] for versioning. For the versions available, see
the [releases on this repository][RELEASES_URL].## License
This project is licensed under the _[MIT License][LICENSE_URL]_.
[NPM_VERSION_BADGE]: https://img.shields.io/npm/v/foxify.svg
[NPM_MONTHLY_DOWNLOAD_BADGE]: https://img.shields.io/npm/dm/foxify.svg
[NPM_TOTAL_DOWNLOAD_BADGE]: https://img.shields.io/npm/dt/foxify.svg
[NODEJS_VERSION_BADGE]: https://img.shields.io/node/v/foxify.svg
[CODE_COVERAGE_BADGE]: https://codecov.io/gh/foxifyjs/foxify/branch/main/graph/badge.svg?flag=foxify
[VULNERABILITIES_BADGE]: https://snyk.io/test/github/foxifyjs/foxify/badge.svg?targetFile=packages/foxify/package.json
[LICENSE_BADGE]: https://img.shields.io/npm/l/foxify
[TYPES_BADGE]: https://img.shields.io/npm/types/foxify.svg
[NPM_PACKAGE_URL]: https://www.npmjs.com/package/foxify
[VULNERABILITIES_URL]: https://snyk.io/test/github/foxifyjs/foxify?targetFile=packages/foxify/package.json
[LICENSE_URL]: https://github.com/foxifyjs/foxify/tree/main/packages/foxify/LICENSE
[BENCHMARKS_URL]: https://github.com/foxifyjs/foxify/tree/main/benchmarks/foxify
[GITHUB_ACTIONS_BADGE]: https://github.com/foxifyjs/foxify/workflows/Test/badge.svg
[GITHUB_STARS_BADGE]: https://img.shields.io/github/stars/foxifyjs/foxify.svg?style=social&label=Stars
[GITHUB_FORKS_BADGE]: https://img.shields.io/github/forks/foxifyjs/foxify.svg?style=social&label=Fork
[OPEN_ISSUES_BADGE]: https://img.shields.io/github/issues-raw/foxifyjs/foxify.svg
[PRS_BADGE]: https://img.shields.io/badge/PRs-Welcome-brightgreen.svg
[OPENCOLLECTIVE_SPONSORS_COUNT_BADGE]: https://opencollective.com/foxify/sponsors/badge.svg
[OPENCOLLECTIVE_SPONSORS_BADGE]: https://opencollective.com/foxify/sponsors.svg?width=890
[OPENCOLLECTIVE_BACKERS_COUNT_BADGE]: https://opencollective.com/foxify/backers/badge.svg
[OPENCOLLECTIVE_BACKERS_BADGE]: https://opencollective.com/foxify/backers.svg?width=890
[CONTRIBUTORS_BADGE]: https://contrib.rocks/image?repo=foxifyjs/foxify
[CODE_COVERAGE_URL]: https://codecov.io/gh/foxifyjs/foxify
[DOCUMENTS_URL]: https://foxify.js.org
[RELEASES_URL]: https://github.com/foxifyjs/foxify/releases
[GITHUB_PROJECT_URL]: https://github.com/foxifyjs/foxify
[GITHUB_ACTIONS_URL]: https://github.com/foxifyjs/foxify/actions
[OPEN_ISSUES_URL]: https://github.com/foxifyjs/foxify/issues?q=is%3Aopen+is%3Aissue
[PRS_URL]: https://github.com/foxifyjs/foxify/pulls
[CONTRIBUTORS_URL]: https://github.com/foxifyjs/foxify/graphs/contributors
[CONTRIBUTORS_GUIDE_URL]: https://github.com/foxifyjs/foxify/tree/main/CONTRIBUTING.md
[OPENCOLLECTIVE_SPONSORS_URL]: https://opencollective.com/foxify#sponsors
[OPENCOLLECTIVE_SPONSOR_URL]: https://opencollective.com/foxify#sponsor
[OPENCOLLECTIVE_BACKERS_URL]: https://opencollective.com/foxify#backers
[OPENCOLLECTIVE_BACKER_URL]: https://opencollective.com/foxify#backer
[JEST_BADGE]: https://img.shields.io/badge/tested_with-jest-99424f.svg
[JEST_URL]: https://jestjs.io
[NODEJS_WEBSITE]: https://nodejs.org
[TYPESCRIPT_WEBSITE]: https://www.typescriptlang.org
[SEMVER_WEBSITE]: http://semver.org