tinyhttp is a modern Express-like web framework written in TypeScript and compiled to native ESM, that uses a bare minimum amount of dependencies trying to avoid legacy hell.
Here is a short list of most important features that tinyhttp has:
-
⚡ 2.5x faster than Express -
⚙ Full Express middleware support -
↪ Async middleware support -
☑ Native ESM and CommonJS support -
🚀 No legacy dependencies, just the JavaScript itself -
🔨 Types out of the box
To get started, visit tinyhttp website.
Install
tinyhttp requires Node.js 12.4.0 or newer. It is recommended to use pnpm, although it isn't required.
# npm
npm i @tinyhttp/app
# pnpm
pnpm i @tinyhttp/app
# yarn
yarn add @tinyhttp/app
Docs
You can see the documentation here.
Get Started
The app structure is quite similar to Express, except that you need to import App
from @tinyhttp/app
instead of default import from express
.
import { App } from '@tinyhttp/app'
import { logger } from '@tinyhttp/logger'
const app = new App()
app
.use(logger())
.use(function someMiddleware(req, res, next) {
console.log('Did a request')
next()
})
.get('/', (_, res) => {
res.send('<h1>Hello World</h1>')
})
.get('/page/:page/', (req, res) => {
res.status(200).send(`You just opened ${req.params.page}`)
})
.listen(3000)
For more examples, check examples folder.
Middlewares
tinyhttp offers a list of premade middleware for common tasks.
Search and explore the full list at middleware search page.
Comparison
To compare tinyhttp with Express and Polka (another Express-like framework), see COMPARISON.md
Benchmarks
To see benchmark comparison between tinyhttp, polka and express, check benchmark folder.
Contributing
See CONTRIBUTING.md.
License
MIT © v1rtl
✨
Contributors
Thanks goes to these wonderful people (emoji key):
v 1 r t l |
Matt |
Nasmevka |
elianiva |
Katja Lutz |
Arnovsky |
This project follows the all-contributors specification. Contributions of any kind welcome!
💰
Supporters
These amazing people supported tinyhttp financially:
molefrog |