β The project is in development. Please don't use in production.
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
- π 4x smaller than Express
To get started, visit tinyhttp website.
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/appYou can see the documentation here.
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.
tinyhttp offers a list of premade middleware for common tasks.
Search and explore the full list at middleware search page.
To compare tinyhttp with Express and Polka (another Express-like framework), see COMPARISON.md
To see benchmark comparison between tinyhttp, polka and express, check benchmark folder.
See CONTRIBUTING.md.
MIT Β© v1rtl
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!
These amazing people supported tinyhttp financially:
molefrog |
