β The project is in development. Please don't use in production.
tinyhttp is a modern Express-like web framework for Node.js. It uses a bare minimum amount of dependencies trying to avoid legacy hell.
Here is a short list of most important features that tinyhttp has:
- β Full Express middleware support
- βͺ Async middleware support
- π¦ 8x smaller than Express
- π No legacy dependencies
- π¨ Types out of the box
- β Native ESM and CommonJS support
To get started, visit tinyhttp website.
tinyhttp requires Node.js 12.4.0 or newer or newer. It is recommended to use pnpm because tinyhttp reuses modules in some middlewares.
# 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(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(`${JSON.stringify(req.params, null, 2)}`)
})
.use(logger())
.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.
MIT Β© v1rtl
Thanks goes to these wonderful people (emoji key):
Matt π |
This project follows the all-contributors specification. Contributions of any kind welcome!
