Skip to content
forked from tinyhttp/tinyhttp

⚡ Tiny web framework as a replacement of Express

License

Notifications You must be signed in to change notification settings

lufrai/tinyhttp

This branch is 1490 commits behind tinyhttp/tinyhttp:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

aba04b0 · Jul 17, 2020
Jul 13, 2020
Jul 16, 2020
Jul 9, 2020
Jul 16, 2020
Jul 14, 2020
Jul 17, 2020
Jul 16, 2020
Jul 17, 2020
Jul 17, 2020
Jul 16, 2020
Jul 17, 2020
Jul 9, 2020
Jul 16, 2020
Jul 12, 2020
Jul 13, 2020
Jul 16, 2020
Jul 14, 2020
Jun 18, 2020
Jul 17, 2020
Jul 16, 2020
Jul 16, 2020
Jul 17, 2020
Jun 21, 2020
Jul 12, 2020
Jul 13, 2020

Repository files navigation

tinyhttp

npm npm type definitions GitHub Workflow Status Codecov 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
  • ☑ 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.

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

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):


Matt

🔌

Nasmevka

📖

elianiva

💡

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

Supporters 💰

These amazing people supported tinyhttp financially:


molefrog

About

⚡ Tiny web framework as a replacement of Express

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 61.6%
  • CSS 21.1%
  • HTML 10.9%
  • JavaScript 6.4%