Astro 7 がリリースされた。.astro コンパイラを Rust で書き直し、Markdown と MDX も Rust パイプラインへ移行した。レンダリングはキュー方式に置き換え、Vite 8 の Rolldown と合わせてベンチマークではビルド時間が 15〜61% 短縮される。Advanced Routing、Route Caching の安定化、Netlify・Vercel・Cloudflare 向け CDN キャッシュプロバイダー(実験的)、コーディングエージェント向けのバックグラウンド dev サーバーと JSON ログも含む。
移行・破壊的変更
- Rust コンパイラが唯一の既定になった。未閉タグはエラーになり、HTML の自動補正は行われない
- 空白処理の既定が
compressHTML: 'jsx'に変わり、インライン要素間の改行空白は消える。旧挙動に戻す場合はcompressHTML: true - Markdown 既定プロセッサが Sätteri に変更された。remark/rehype 依存は
@astrojs/markdown-remarkとunified()で従来パイプラインを維持できる src/fetch.ts(または.js)が Advanced Routing 用の予約名になった。既存ファイルがある場合はfetchFileで別名指定するかnullで無効化する- Astro 6 の実験フラグ(
rustCompiler、queuedRendering、advancedRouting、cache、logger等)は削除され、既定またはトップレベル設定へ統合された @astrojs/db削除、astro:transitionsの内部 API 削除、getContainerRenderer()は各統合のcontainer-rendererエントリポイントへ移った
<!-- compressHTML: 'jsx' 既定 — インライン要素間の改行空白が消える -->
<span>hello</span><em>world</em>
<!-- 明示空白: -->
<span>hello</span> <em>world</em>import { defineConfig } from "astro/config";
import { unified } from "@astrojs/markdown-remark";
export default defineConfig({
markdown: { processor: unified() },
compressHTML: true, // 旧 HTML 空白圧縮に戻す場合
});npx @astrojs/upgradeパフォーマンスと Vite 8
ビルドは「ページを JS にバンドル → 疑似サーバーで HTML 生成」の 2 段である。Astro 7 は主に前者を Rust 化し、Queued Rendering で生成も高速化する。M4 Pro / 48GB 環境での計測例は次のとおり。
| サイト | 変更前 | 変更後 |
|---|---|---|
| docs.astro.build(約 6,313 ページ) | 114.54s | 73.53s |
| astro.build(約 308 ページ) | 62.70s | 24.24s |
| developers.cloudflare.com(8,431 ページ) | 386.89s | 261.94s |
Vite 8 は Rolldown を同梱し、多くのプロジェクトは設定変更なしで esbuild と Rollup を置き換える。カスタム Vite プラグインは Rollup 互換 API の範囲で継続利用が想定される。
Advanced Routing と Route Caching
src/fetch.ts でリクエストパイプライン全体を制御できる。API プロキシや astro(state) へのフォールバック、astro/hono による Hono ミドルウェアチェーン(i18n、actions、pages 等)に対応する。
Route Caching は stable である。memoryCache() プロバイダー、Astro.cache.set()、タグ付き invalidation、ルートルールが利用可能である。Netlify・Vercel・Cloudflare 向け CDN キャッシュプロバイダーは実験的である。
import { defineConfig, memoryCache } from "astro/config";
export default defineConfig({
cache: { provider: memoryCache() },
});AI 向け開発者体験
コーディングエージェントを検出し、astro dev --background で dev サーバーをバックグラウンド起動できる。astro dev --json や logger: logHandlers.json() で構造化ログを出力し、エージェントが機械可読なフィードバックを得やすくする。