Skip to content

tinyhttp/tinyhttp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

394 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

tinyhttp

npm npm type definitions GitHub Workflow Status Codecov Vulnerabilities Codacy grade 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 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.

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