Encore.goは、Goでバックエンド開発を行うためのオープンソースフレームワークで、公式には「Batteries included Go framework for building distributed systems」(必要なものが揃った、分散システム構築用Goフレームワーク)と説明されています。Gin・Echo・Fiber・Chiなどが単なるHTTPルーターであるのに対し、Encore.goはAPI定義に加えサービス、データベース、Pub/Sub、Cron、Secretsといったインフラ面もまとめて扱えるのが特徴です。コメントアノテーション形式でAPIを定義でき、main関数を書かずにEncoreが起動コードを自動生成します。

encore runコマンドでアプリとローカルインフラを同時起動でき、Local Development Dashboardが自動生成のAPIドキュメント・トレース・アーキテクチャ図を提供します。PostgreSQLはマイグレーションファイルから自動でローカルDBがプロビジョニングされる点も特徴です。筆者はwrk(HTTP負荷テストツール)を用いた簡易ベンチマークも実施しており、Requests/secはFiber v2が223,123(相対値1.00)、Echoが158,312(0.71)、net/httpが157,656(0.71)、Ginが143,411(0.64)、Chiが132,480(0.59)という結果でした。ただしencore runは開発用ダッシュボードとトレーシング込みのため、素のHTTPルーターとの直接比較はできないと注記しています。

出典が伝えている要点

  • Encore.goはGoでバックエンド開発を行うためのオープンソースフレームワークである
  • Encore.goの公式説明は「Batteries included Go framework for building distributed systems」である
  • Gin、Echo、Fiber、Chiは単なるHTTPルーターであるのに対し、Encore.goはAPI、サービス、データベース、Pub/Sub、Cron、Secretsをまとめて扱う
  • Encore.goではコメントアノテーション(例: //encore:api public path=/hello/:name)でAPIを定義する
  • Encore.goでは自分でmain関数を書かずにEncoreが起動コードを自動生成する
  • Encore.goではサービスはGoパッケージとして定義され、パッケージ名がサービス名になる
  • encore runコマンドでアプリとローカルインフラを同時に起動できる
  • Local Development Dashboardが自動生成されたAPIドキュメント、トレース、アーキテクチャ図を提供する
  • PostgreSQLはマイグレーションファイルから自動的にローカルDBがプロビジョニングされる
  • 設定とSecrets管理にはCUE形式の設定ファイルが使われ、コンパイル時にSecret設定が検証される
  • 筆者が同一環境でwrkを用いた簡易ベンチマークを実施し、Requests/secはFiber v2が223,123(相対値1.00)、Echoが158,312(0.71)、net/httpが157,656(0.71)、Ginが143,411(0.64)、Chiが132,480(0.59)だった
  • 記事はencore runが開発用ダッシュボードとトレーシング込みであるため素のHTTPルーターと直接比較できないと注記している

原文より

Batteries included Go framework for building distributed systems

出典: zenn.dev

← 2026.09.07 の号を通しで読む