Hono Conference 2024 - Our first step
2024年6月22日(土)に第一回の「Hono Conference」を東京で行いました。Honoに焦点当てたトークのみで構成されるイベントとしては初の試みです。ですので、"Our first step"という副題をつけました。100人が参加し、イベントは大成功に終わりました。
この記事ではHono Conferenceについてレポートしたいと思います。
会場
会場はdocomo R&D OPEN LAB ODAIBAさんにお借りました。開放感がありとても素敵な会場でした。ありがとうございます!
参加者
以下のページで参加者を募りました。
定員90人のところ、140人の希望者がいました。人気のほどが伺えます。当日は、発表者も合わせて100人が参加しました。
Honoを以前に使ったことがあるか?という質問にほぼ全ての人が手を挙げていたのが印象的でした。
トーク
イベントは午後1時から4時30分までの3時間半、全てトークで構成されました。以下の4つのトラックがありました。
- コントリビュータートラック
- 座談会
- ユーザートラック
- 基調講演
スケジュールは以下の通りです。
では、一つ一つのトークについて見ていきましょう。全ての発表は日本語で行われましたが、スライドは英語で書かれているので、英語が分かる方なら誰でも理解することができるでしょう。
コントリビュータートラック
3人のHonoプロジェクトへのコントリビューターがトークをしました。
watany-dev
Adaptor, Helmet, SSG by彼はAWS LambdaとLambda@Edgeのアダプタ、ExpressでいうHelmetにあたるSecure Headersミドルウェア、Static Site Generateを可能にするヘルパーを開発しています。HonoはもともとCloudflare Workersのために作られましたが、全てのJavaScriptランタイム、プラットフォームで動くことを目標としています。AWSへのサポートはHonoのユーザーを増やすことに貢献し、ユーザーが増えることで必然的に製品のプロダクトの品質があがっています。
彼はAWS CDKと一緒に使えるTypeScriptベースのフレームワークを探していてHonoに出会ったとのことです。HonoのStreamをAWS Lambdaでも使えるようにしたのとかアツいですね。
@hono/aws
を作るかもしれないという話が印象に残りました(圧)。
sor4ch
Third-Party Framework Development with Hono by彼はHonoでStreamをサポートするヘルパーなどの作者です。またHono StorageやHono DOといったHonoの公式プロジェクト以外でも製品をつくっています。
Hono DOはDurable Objectsを簡単に扱うためのHonoによるラッパーです。非常によさそうだったのですが、新しいWorkersのRPC機能がでてから必要なくなってしまった😭 とのことです。
冒頭から、一般的なHonoのミドルウェアの作り方からHonoを拡張する方法までを非常に丁寧に紹介してくれました。他の方の発表でも結構でてきたのですが、Context
のset
/get
を使ってDIのようなことをするといいみたいです。
nakasyou
Can Hono be Wrapper for Cross-Runtime? by彼は驚くべきことに中学生のコントリビュータです!若さにかかわらず内容は非常に興味深いものでした。まず、PHPを多くの古いコンピュート環境で動く言語として例にあげました。次にJavaScriptはCloudflareを含む、VercelやDeno Deploy、Netlifyといったプラットフォームで動く新しい世代の言語(令和のPHP)といいました。
しかしたとえばWeb Socketsの扱いは標準化されてないなど、全く同じコードが動くわけではないです。そこでHonoはその差を埋めるためのフレームワークになれるといいました。
すばらしい!
座談会
僕を含む4人のパネリストとモデレータによる50分のディスカッションです。Honoに求めることという答えにぼくはWeb標準だけを使うことにこだわると話しました。他にも以下のテーマについて議論しました。
- Honoで実現したいこと
- React
- ライバル
- ミーティング
- 開発チーム
- State of JavaScript / JSNation
- Honoへの思い
自分が出演しててあまり覚えてないので、楽しそうな写真を貼っておきます。
ちなみに、この記事に貼っている写真はsyumaiさんとsor4chくんに撮ってもらいました。
ユーザートラック
Honoを実世界で使っているユーザーによるトークセッションです。
gunta
Why Choose Hono? & Tech Stack for the Future by技術スタックの過去、現在、未来について話しました。Cloudflare WorkersはCPUタイムだけで課金するので、AIアプリケーションのコストを著しく下げてくれて、ゲームチェンジャーとしました。HonoはCloudflare WorkersでもGCP、AWS、Azure、Bunでも動くフレームワークとして選びました。また、CyberAgentでのHonoの使用事例を紹介しました。その他にも、バンドラ、パッケージマネージャー、データベースORM、認証プラットフォームなどについても触れました。
最後、Effectというライブラリをべた褒めしてて「おいおい、ここはHonoのカンファレンスだぜ?」と思ったら、当日の朝、そのEffectを使ったHonoのミドルウェアを作ってPRを出してきたというのがいい話でした。
sugar-cat7
Using Hono in B2B SaaS Application byAI Workerという生成AIを活用した、ビジネスを向上するためのプラットフォームでの事例です。APIサーバーにHonoとBunを使っています。
AIを使うので、ストリームの処理が必須になるのですが、HonoにはSSEをサポートするStreamヘルパーがあるのでそれを活用しているとのことです。また、ファイルアップロードを@hono/zod-validator
でバリデートしています。その他にもB2Bのテナント管理やセキュリティの計測にもHonoを使っています。
ちなみに、sugar-cat7さんはこのカンファレンスの直前に「Honoを使い倒したい2024」というめちゃくちゃHonoを使い倒す記事を書いてるのでみましょう。
naporin0624
Event Exhibition with Hono by大阪関西国際芸術祭というイベントで展示したインタラクティブビデオシステムでの事例です。こうしたイベントではHonoとCloudflareを使うことをおすすめしてていました。Cloudflareはコストを抑えられるし、Cloudflare TunnelとAccessが便利とのことです。またデータベースとストレージにはD1とR2が使えます。そして、Cloudflareを使うのに最適なのがHonoです。
例えば、フロントエンドのRemixとバックエンドのHonoがType-SafeでAPI通信する例が面白かったです。まず、HonoでRESTのAPIを書きます。次にその型をRemixアプリと共有します。すると型安全にAPIを叩くクライントが手に入るのです。
また、HonoをReverse Proxyとして使っている事例も紹介しました。HonoではgetPath
というオプションを使うとルーティングに渡すパスをいじれるのですが、それを活用して、ホスト名によるルーティングをしているとのことです。
Honoは便利ですね。
sushi-chaaaan
What Hono brought to student organizations? by大学のとある組織でのHonoを使った事例です。そこではライブ・コンサートの予約システムでHonoとCloudflare Workersを使いました。学生にとってはランニングコストを抑えることが非常に重要で、さらにフリープランで動かしたいです。今はそれがCloudflareですが、Honoだと、より安いプラットフォームがでてきた場合にすぐにそれにスイッチできるとのことです。
アプリーケーションの構成例では、naporitan0624と同じくフロントにRemixをおいてRPC通信をさせていました。
また、HonoはWeb開発を学ぶのに最適です。例えば、HTMLのレスポンスを返すのに3通りの書き方ができ、段階的に学べるのです。
inaridiy
Hono with database on browser playground byHanabi.RESTを開発する3人が登場。彼らも大学生、高校生と若いです。Hanabi.RESTとはプロンプトを入力することでAIがHono製のREST APIをつくってくれるというサービスです。ユーザーはアプリケーションをブラウザで動かして、編集し、そのままCloudflare Workersへデプロイすることができます。
今回はこのHanabi.RESTの裏側を紹介。構築されるAPIはSQLiteがベースのD1を使うことができるのですが、それをブラウザ上でエミュレートするためにSQLiteのWASMを使い、D1のラッパーにしているのが黒魔術でした。
またMonacoエディターでTypeScriptの型情報を提供するための黒魔術についても話しました。
usualoma
基調講演 by僕の次にコミットをしているusualomaさんによるキーノートです。
PR上でのコミュニケーションの例で、僕とusualomaさんが新年の挨拶をGitHub上でやってるという話がウケました。
実はHonoのコントリビューター同士のミーティングというのはしたことがなく、僕とusualomaさんは毎日のようにGitHub上でやりとりをしているのに、今回で会うのが2回目という。とはいえ、GitHub上で非同期にコミュニケーションできるのが我々には合っているのかもしれません。
メインのテーマは202x年代にWebフレームワークをつくるとはどういうことか?という話です。彼によるとExpressやRailsなどの既存のバックエンドフレームワークを参考にし再定義すること、Web StandardsやTypeScriptなどの新しい技術を取り入れること、CloudflareやDeno、Bun、Node.jsなど複数のランタイムに対応すること、この3つが大切です。それを我々はHonoでやっています。
エンディング
最後に参加者、コントリビューター、ユーザーへ感謝をして終了しました。なんと今ではコントリビューターは160人もいます!ありがとう!
終わりに
午後1時から午後4時30分まで3時間30分の長丁場でした。発表者はその後、居酒屋で懇親会をし、その場でノートパソコンを開き、新機能のAPIについて議論をしました。
参加者の満足度は高いようで、Xのハッシュタグでは発言が活発で、ポジティブな意見ばかりでした。またこちらの記事でもいい感じの感想をもらいました。Honoの盛り上がりを感じることができます。
印象的だったのは、発表者には中学生、大学生、Hanabiの他のメンバーには高校生がいたりして、若い人が多かったことです。また、こうした人前でトークするのが初めてという人もわりといて、いい機会になったのなら幸いです。
次回はまた1年後になるでしょうか?大変そうですが、もっと大きな会場で、海外の人も来れるようなカンファレンスしたいです。また会いましょう!
Discussion
初めまして。私自身もHono使用しております!
このような会があること初めて知りました。今回のHonoの会はどこで募集していたのでしょうか?
もし今後このような会があれば私も参加したいと思いご質問いたしました。
ご回答いただければ幸いです。