0
0
mirror of https://github.com/honojs/hono.git synced 2024-11-24 19:26:56 +01:00
Web Framework built on Web Standards https://hono.dev/
Go to file
Taku Amano 85cbf3e984
perf(jsx): JSX performance improvement (#444)
* perf(jsx): Update benchmark for JSX.

* perf(utils/html): Improve `escape` performance.

Improved `escape` performance with reference to the react-dom implementation.

* refactor(utils/html): Subdivide HtmlEscapedString

* perf(jsx): Rewrite JSX with new `escapeToBuffer` and `JSXNode`.

* refactor(jsx): A function `jsx` returns `JSXNode` now.

* perf(html): Rewrite html middleware with new `escapeToBuffer`.

* Update tests for JSX.

* Update tests for utils/html.
2022-08-02 08:17:24 +09:00
.github chore(ci): fix branch name 2022-07-21 08:48:13 +09:00
.vscode refactor: automate import sorting (#157) 2022-04-20 14:17:55 +09:00
benchmarks perf(jsx): JSX performance improvement (#444) 2022-08-02 08:17:24 +09:00
bun_test fix(jsx/bun): do not escape children (#422) 2022-07-24 20:39:41 +09:00
deno_dist chore: denoify 2022-07-31 22:19:28 +09:00
deno_test test(deno): add test for jwt middleware (#375) 2022-07-15 08:40:15 +09:00
docs docs: make a contribution guide (#415) 2022-07-23 09:46:20 +09:00
src perf(jsx): JSX performance improvement (#444) 2022-08-02 08:17:24 +09:00
.eslintignore Setup lint to enable code styles check (#27) 2022-01-07 07:03:54 +09:00
.eslintrc.js refactor: automate import sorting (#157) 2022-04-20 14:17:55 +09:00
.gitignore chore(git): ignore bun.lockb 2022-07-29 08:21:23 +09:00
.npmignore refactor: refine directory structure (#156) 2022-04-20 14:06:04 +09:00
.prettierrc chore(prettier): remove markdown-nocjsp parser 2022-07-16 10:03:01 +09:00
jest.config.js chore: absolute import to relative import (#228) 2022-05-14 12:55:01 +09:00
LICENSE Create LICENSE (#1) 2021-12-15 05:06:31 +09:00
package.json v2.0.6 2022-07-31 22:22:10 +09:00
README.md docs: make a contribution guide (#415) 2022-07-23 09:46:20 +09:00
tsconfig.build.esm.json fix: exclude src/middleware.ts 2022-07-15 08:40:15 +09:00
tsconfig.build.json fix: exclude src/middleware.ts 2022-07-15 08:40:15 +09:00
tsconfig.json refactor: enable strictPropertyInitialization (#333) 2022-07-01 10:30:43 +09:00
yarn.lock chore: remove @types/mustache 2022-07-24 13:18:24 +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

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 389,510 ops/sec ±3.16% (85 runs sampled)
hono - regexp-router x 452,290 ops/sec ±2.64% (84 runs sampled)
itty-router x 206,013 ops/sec ±3.39% (90 runs sampled)
sunder x 323,131 ops/sec ±0.75% (97 runs sampled)
worktop x 191,218 ops/sec ±2.70% (91 runs sampled)
Fastest is hono - regexp-router
✨  Done in 43.56s.

Documentation

The documentation is available on honojs.dev.

Migration

Migration guide is available on docs/MIGRATION.md.

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.