Astro 7.0が登場 — Rustコンパイラでビルド最大61%高速化、Node.js 22必須の破壊的変更まで徹底解説
はじめに
静的サイト/コンテンツ駆動フレームワークの Astro が、2026年6月22日にメジャーアップデート Astro 7.0 をリリースしました。目玉は、これまで Go で書かれていた .astro コンパイラを Rust へ全面書き換えしたこと。さらに Markdown 処理の Rust 化、Vite 8 + Rolldown の統合により、ビルド速度が公式ベンチマークで 15〜61% 改善しています。本記事では、この Tech Tide ブログ自身が Astro + Cloudflare Pages で動いていることも踏まえ、7.0 の新機能・性能改善・破壊的変更をエンジニア視点で整理します。
Astro 7.0で何が変わったか — ビルドの中身が丸ごとRustに
7.0 の核心は「ビルドパイプラインの脱JavaScript/Go」です。変更は大きく3つのレイヤーに及びます。
1. Rust製コンパイラ:.astro ファイルをパースするコンパイラを、Go 版から oxc パーサー + Lightning CSS ベースの Rust 実装へ刷新。これ単体で約6%の改善ですが、真価は他レイヤーとの合わせ技にあります。
2. Rust製Markdown / MDXパイプライン:これまで JavaScript の unified(remark / rehype)で行っていた Markdown 処理を、Rust 実装(コード名 Sätteri)へ置き換え。CommonMark 解析に pulldown-cmark、MDX 式の解析に oxc を採用し、GFM(テーブル・脚注・打消し線・タスクリスト)、見出しID、数式、Wikiリンクなどを追加設定なしで内蔵します。ドキュメント系の巨大サイトでは、この一手でビルドが1分以上短縮したと報告されています。
3. Vite 8 + Rolldown:バンドラーが Vite 8 に上がり、Rust 製バンドラー Rolldown を統合。esbuild / Rollup が担っていた役割を1つにまとめ、公式は10〜30倍高速とうたいます。既存の Vite 設定は互換レイヤーで動くため、移行作業は基本不要です。
実測値では、astro.build(約308ページ)が 62.70秒 → 24.24秒(61.3%減)、docs.astro.build(約6,313ページ)が 114.54秒 → 73.53秒(35.8%減)、Cloudflare のドキュメント(8,431ページ)が 386.89秒 → 261.94秒(32.3%減)と、ページ数が多くMarkdown中心のサイトほど恩恵が大きいのが特徴です。加えて Astro 6 で実験的だった Queued Rendering が正式化し、レンダリング自体も約2.4倍高速化しました。
Advanced RoutingとAIエージェント対応 — 「作る」から「動かす・任せる」へ
7.0 は速度だけのアップデートではありません。実行モデルと開発体験にも手が入っています。
Advanced Routing(src/fetch.ts):新設の src/fetch.ts を置くと、Astro のリクエストパイプラインを完全に掌握できます。これは Cloudflare Workers・Deno・Bun でおなじみの fetch ハンドラパターンに沿っており、Hono ミドルウェアとの互換性も得られます。ランタイム寄りの制御をフレームワークの外に逃がさず書けるようになった意味は大きいです。
Route Caching の安定化:実験的だったルートキャッシュが正式機能に昇格し、Astro.cache API で標準HTTPキャッシュ仕様に沿ったキャッシュ制御が可能に。CDN Cache Provider として Netlify・Vercel・Cloudflare(プライベートベータ)が用意され、experimental 内にあった cache / routeRules は設定のトップレベルへ移動しました。
AIエージェント向けdevサーバー:astro dev --background で管理されたバックグラウンドプロセスとして起動でき、astro dev --json でロボット判読可能なJSONログを出力。/_astro/status ヘルスエンドポイントも追加され、AIコーディングエージェントが「サーバーが立っているか」「ログに何が出たか」を機械的に判断できるようになりました。AIにコードを書かせて検証まで回す、という昨今のワークフローを正面から意識した設計です。
エンジニアへの影響 — 破壊的変更に注意、特にHTMLの厳格化
恩恵が大きい一方、7.0 は無視できない破壊的変更を含みます。アップグレード前に必ず確認すべきポイントは次の通りです。
- Node.js 22 が必須:最低要件が Node.js v22 に引き上げられました。CI や本番のランタイムバージョンを先に確認しましょう。
- HTML自動修正の廃止:Rust コンパイラは JSX 並みに厳密になり、未閉鎖タグ(
<div>Hello)や不完全な属性(<div class="Hello >)を黙って直さずエラーにします。これまで曖昧なマークアップに救われていたプロジェクトは要修正です。 - ホワイトスペース圧縮の変更:要素間の改行由来の空白が React 互換ルールで削除されます。
<span>Hello</span><span>World</span>は「HelloWorld」となり、空白を残したい場合は{' '}を明示する必要があります。レイアウトのわずかなズレとして現れやすい落とし穴です。
移行は npx @astrojs/upgrade で自動化するのが推奨。Tech Tide のような Astro + Cloudflare Pages 構成のコンテンツサイトは、Markdown中心という7.0が最も得意とするワークロードそのものなので、ビルド時間短縮の効果を最も受けやすい部類です。ただし本番反映前にローカルで astro build を通し、HTML厳格化とホワイトスペース変更による差分がないかを確認するのが安全です。
まとめ
- Astro 7.0 はコンパイラ・Markdown処理・バンドラーを Rust 中心に刷新し、ビルドを最大61%高速化した。
src/fetch.tsによる Advanced Routing、Route Caching の安定化、Hono 互換で実行モデルが柔軟になった。astro dev --background/--json//_astro/statusなど、AIエージェント連携を前提にしたdev体験が追加された。- 一方で Node.js 22 必須、HTML厳格化、ホワイトスペース圧縮という破壊的変更があり、アップグレードは慎重に。
フレームワークの高速化競争が「JSからネイティブ言語への置き換え」フェーズに入ったことを象徴するリリースです。Vite/Rolldown を含む Rust 化の流れは今後も加速するとみられ、コンテンツサイトのビルド時間はこの1年でさらに縮むでしょう。