0
0
mirror of https://github.com/honojs/hono.git synced 2024-12-01 11:51:01 +01:00
hono/deno_dist
Taku Amano a149dddfdc
Introduce StaticRouter and SmartRouter (#501)
* refactor(router): Export supported HTTP methods.

* refactor(router): Introduce UnsupportedPathError.

* feat(static-router): Introduce StaticRouter.

* feat(reg-exp-router): Add "allowAmbiguous" option to RegExpRouter.

* feat(smart-router):  Introduce SmartRouter.

* feat(hono): Make SmartRouter the default router.

* chore: denoify

* refactor(smart-router): routers is never undefined.

* chore: denoify

* refactor: Fix test for SmartRouter.
2022-09-12 20:49:18 +09:00
..
deno fix: fixed the issue logger called twice (#494) 2022-09-02 21:13:47 +09:00
middleware fix(middleware): support multiple middleware on bearer/basic auth middleware (#513) 2022-09-10 18:02:36 +09:00
router Introduce StaticRouter and SmartRouter (#501) 2022-09-12 20:49:18 +09:00
utils perf(req): improve c.req.query performance (#498) 2022-09-05 19:08:10 +09:00
compose.ts fix(types): correct types for app.notFound / app.onError (#512) 2022-09-10 18:00:00 +09:00
context.ts fix(types): correct types for app.notFound / app.onError (#512) 2022-09-10 18:00:00 +09:00
hono.ts Introduce StaticRouter and SmartRouter (#501) 2022-09-12 20:49:18 +09:00
LICENSE feat: support Deno! (#336) 2022-07-02 15:09:45 +09:00
middleware.ts chore(deno): denoify 2022-07-16 21:49:59 +09:00
mod.ts fix(context): export ContextVariableMap correctly (#476) 2022-08-23 11:51:18 +09:00
README.md docs(readme): update benchmark scores 2022-09-01 22:59:23 +09:00
request.ts perf(req): improve c.req.query performance (#498) 2022-09-05 19:08:10 +09:00
router.ts Introduce StaticRouter and SmartRouter (#501) 2022-09-12 20:49:18 +09:00


Documentation 👉 honojs.dev
v2.x has been released! Migration guide


GitHub Workflow Status GitHub npm npm npm type definitions GitHub commit activity GitHub last commit Deno badge Discord badge

Hono - [炎] means flame🔥 in Japanese - is a small, simple, and ultrafast web framework for Cloudflare Workers, Deno, Bun, and others.

import { Hono } from 'hono'
const app = new Hono()

app.get('/', (c) => c.text('Hono!!'))

export default app

Features

  • Ultrafast - the router does not use linear loops.
  • Zero-dependencies - using only Service Worker and Web Standard API.
  • Middleware - built-in middleware, custom middleware, and third-party middleware.
  • TypeScript - first-class TypeScript support.
  • Multi-platform - works on Cloudflare Workers, Fastly Compute@Edge, Deno, or Bun.

Benchmarks

Hono is fastest, compared to other routers for Cloudflare Workers.

hono - trie-router(default) x 482,004 ops/sec ±5.00% (79 runs sampled)
hono - regexp-router x 604,006 ops/sec ±4.80% (81 runs sampled)
itty-router x 203,623 ops/sec ±2.10% (94 runs sampled)
sunder x 306,457 ops/sec ±2.49% (89 runs sampled)
worktop x 189,450 ops/sec ±3.14% (88 runs sampled)
Fastest is hono - regexp-router
✨  Done in 36.79s.

Documentation

The documentation is available on honojs.dev.

Migration

Migration guide is available on docs/MIGRATION.md.

Communication

Twitter and Discord channel are available.

Contributing

Contributions Welcome! You can contribute in the following ways.

  • Create an Issue - Propose a new feature. Report a bug.
  • Pull Request - Fix a bug and typo. Refactor the code.
  • Create third-party middleware - Instruct below.
  • Share - Share your thoughts on the Blog, Twitter, and others.
  • Make your application - Please try to use Hono.

For more details, see docs/CONTRIBUTING.md.

Contributors

Thanks to all contributors! Especially, @metrue and @usualoma!

Author

Yusuke Wada https://github.com/yusukebe

License

Distributed under the MIT License. See LICENSE for more information.