Skip to content

tinyhttp/tinyhttp

Repository files navigation

tinyhttp

Twitter npm npm type definitions GitHub Workflow Status Vulnerabilities Codacy grade David (path) Last commit NPM All Contributors

⚑ Tiny web framework as a replacement of Express

⚠ 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.

Install

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/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(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.

Middlewares

tinyhttp offers a list of premade middleware for common tasks.

Search and explore the full list at middleware search page.

License

MIT Β© v1rtl

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Matt

πŸ”Œ

This project follows the all-contributors specification. Contributions of any kind welcome!