Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Hono v3 and v4

Yusuke Wada
November 19, 2023

Hono v3 and v4

JSConf JP
Nov 19, 2023. Yusuke Wada

Yusuke Wada

November 19, 2023
Tweet

More Decks by Yusuke Wada

Other Decks in Programming

Transcript

  1. ࣗݾ঺հ • Yusuke Wada • Web framework developer • Developer

    Advocate @Cloud fl are • Bokete co-founder • Creator of Hono • https://github.com/yusukebe
  2. Honoͱ͸ʁ • Web-framework runs on any JavaScript runtime. • Fast,

    Lightweight, Web-standards. • Works on… • Cloud fl are Workers • Deno • Bun • Node.js • Fastly Compute • AWS Lambda • Vercel • Others! https://hono.dev
  3. Who is using Hono? • cdnjs API Server • Poly

    fi ll.io • Deno Docs • Ultra • Cloud fl are Blog • Workers SDK • Cloud fl are D1 • Drivly • SticAI • Skill Struck • Reejs • toddle • LanderLab • OpenStatus • Loglib • repeat.dev • Nodecraft • Hwy • Unkey • AI.LS • ExpenSee • Others!
  4. v3.*ͰೖͬͨػೳΛ঺հ͠·͢ • v3.0.0 => 2023/02/18ʹϦϦʔε • v.3.10.0 => 2023/11/13ʹϦϦʔε •

    جຊతʹsemverΛक͍ͬͯΔͷͰminorϦϦʔεΛ঺հ • ͋ͳ͕ͨ஌Βͳ͍͔΋͠Εͳ͍Hono
  5. v3.0.0 - 2023/02/18 • HonoRequest • RegExpRouter becomes the fastest

    router • Good-bye StaticRouter • New Validator • RPC • Adapter • Muti-runtime CI Support • Support WinterCG Runtime Keys • create-hono • @honojs to @hono
  6. v3.1.0 - 2023/03/17 • Improve RPC-mode • `env` for getting

    environment variables for multi-runtimes • AWS Lambda Adapter • basePath() • c.req.path • Allow passing RequestInit to c.json() etc.
  7. v3.2.0 - 2023/05/19 • New Routers • Presets: `hono/tiny`, `hono/quick`

    • app.mount() • Node.js adapter server v1.0.0 has been released • Support for routing includes a hostname
  8. New Routers • LinearRouter • ϧʔςΟϯάͷొ࿥͕଎͍ϧʔλʔ • PatternRouter • ͱʹ͔͘খ͍͞ϧʔλʔ

    ܭ5ͭͷϧʔλʔʹͳͬͨ TrieRouter RegExpRouter SmartRouter LinearRouter PatternRouter
  9. Presets: `hono/tiny`, `hono/quick` • `hono/tiny` • PatternRouterͷΈ • খ͍͞ •

    13KB • `hono/quick` • LinearRouterͱTrieRouter • ϧʔτͷొ࿥͕଎͍
  10. v3.6.0 - 2023/09/11 • Introduce `c.render()` • Introduce `c.var` •

    `FC` for JSX • `$url()` in Hono Client • Vite dev-server for Hono • Deprecate some properties in HonoRequest • Replaced Jest with Vitest
  11. Vite dev-server for Hono • `@hono/vite-dev-server` • Viteͷಠࣗdev serverΛఏڙ͢ΔVite plugin

    • Viteܦ༝Ͱ`fetch`ΞϓϦΛ։ൃͰ͖Δ • ࠶ىಈɺϦϩʔυ͕଎͍ • ϑϩϯτ΋ରԠ • Cloud fl areͷBindings΋αϙʔτ͍ͯ͠Δ
  12. v3.8.0 - 2023/10/19 • JSX Context API • JSX Renderer

    Middleware • Streaming Helper • Factory Helper • `parseBody()` supports multi values • Improve path matching in the router
  13. v3.9.0 - 2023/10/27 • Improving the Developer Experience for JSX

    • Clerk Middleware • New Starter Template for Cloud fl are Pages
  14. v3.10.0 - 2023/11/13 • JSX supports Async Components • Introduce

    `Suspense` and `renderToReadableStream()` • JSX Renderer Middleware supports `stream` • Support `@jsx precompile` for Deno
  15. v3.*Ͱಋೖ͞ΕͨػೳΛΈ͖ͯ·ͨ͠ • v3.0.0 => 2023/02/18 • v3.1.0 => 2023/03/17 •

    v3.2.0 => 2023/05/19 • v3.3.0 => 2023/07/11 • v3.4.0 => 2023/08/08 • v3.5.0 => 2023/08/21 • v3.6.0 => 2023/09/11 • v3.7.0 => 2023/09/21 • v3.8.0 => 2023/10/19 • v3.9.0 => 2023/10/27 • v3.10.0 => 2023/11/13
  16. v4?