⚠ 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
- ☑ Native ESM and CommonJS support
- 🚀 No legacy dependencies, just the JavaScript itself
- 🔨 Types out of the box
- 📦 6x 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/app
You 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(`You just opened ${req.params.page}`)
})
.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.
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):
Matt 🔌 |
Nasmevka 📖 |
elianiva 💡 |
This project follows the all-contributors specification. Contributions of any kind welcome!
These amazing people supported tinyhttp financially:
molefrog |