Astro 7 リリース - コンパイラもMarkdownもRust化、Vite 8でビルドが最大61%速く

Astro 7 リリース - コンパイラもMarkdownもRust化、Vite 8でビルドが最大61%速く

作成日:
読了:7
更新日:

コンテンツ系 Web フレームワーク Astro のメジャー版 Astro 7 が、2026年6月22日にリリースされました。テーマはずばり 「Rust 化」.astro コンパイラ・Markdown 処理系・バンドラのいずれもが Rust 製になり、ビルドが大きく速くなりました。この記事では、Astro 7 の目玉と 6→7 の破壊的変更を、Astro 公式を一次ソースに整理します。前メジャーはAstro 6 の新機能を参照してください。

目玉は「3つの Rust 化」

領域Astro 7
.astro コンパイラGo 製Rust 製に書き換え
Markdown / MDX 処理unified(remark/rehype)Sätteri(Rust 製)がデフォルト
バンドラesbuild + RollupVite 8 + Rolldown(Rust 製)

その結果、ビルド時間は公式報告で15〜61%短縮。例として docs.astro.build114.54秒 → 73.53秒に短縮されています。JSツールチェーンの Rust 化(Vite 7 と RolldownOxc / OxlintBun の Zig→Rust)の流れが、Astro でも一気に進んだ格好です。

Sätteri: Rust 製 Markdown 処理系

Astro 7 最大の体感ポイントが Sätteri(Astro 6.4 で導入、7 でデフォルト化)です。

  • Rust 製の Markdown/MDX パイプライン。GFM テーブル・タスクリスト・Smartypants・ディレクティブなどをコンパイル時にネイティブ処理する
  • 従来の unified は「プラグインごとに AST を全走査」するため積み重なると重い。Sätteri は単一パス+ネイティブで速い

WARNING

Sätteri は remark / rehype プラグインを実行しません(バグではなくアーキテクチャ上の仕様。Rust の AST は JS プラグインを直接動かせない)。remark-tocrehype-autolink-headings などに依存している場合は、明示的に unified へ戻す必要があります。

unified(remark/rehype)に戻す
import { unified } from '@astrojs/markdown-remark';
import remarkToc from 'remark-toc';
 
export default defineConfig({
  markdown: {
    processor: unified({ remarkPlugins: [remarkToc] }),
  },
});

プラグインへの依存がなく、GFM・Smartypants 程度で足りるサイト(特に記事数の多いドキュメント)は、Sätteri のままビルド短縮の恩恵を受けられます。

その他の新機能

  • 高度なルーティング: src/fetch.ts をエントリポイントに、リクエストパイプライン全体を制御できる
  • Route Caching: プラットフォーム非依存のキャッシュAPI(Netlify / Vercel / Cloudflare の CDN と連携)が安定化
  • Queued Rendering安定版に(従来は実験的)。公称「約2.4倍高速
  • バックグラウンド開発サーバー: astro dev --backgroundAIエージェントの検出に対応
  • JSON ログ: 構造化ログ出力(CLIフラグ/設定)

6→7 の破壊的変更

メジャー更新なので、移行時の注意があります。

  • HTML の厳格化: 「自動補正をやめた」。閉じ忘れタグや未終端の属性は自動修正されずエラーになる
  • 空白の扱い: インライン要素間の空白を JSX 風に折りたたむ(改行が可視スペースを生まなくなる)
  • Sätteri がデフォルト: remark/rehype 利用者は @astrojs/markdown-remark で明示オプトイン
  • Route Caching の移行: cache / routeRulesexperimental からトップレベル設定へ移動

NOTE

上記のほか、Node.js の最低要件など環境面の変更がある可能性があります。アップグレード時は必ず公式の v7 アップグレードガイドで前提条件を確認してください(npx @astrojs/upgrade が用意されています)。

まとめ

  • Astro 7(2026-06-22)は 「Rust 化」メジャー.astro コンパイラ・Sätteri(Markdown)・Vite 8/Rolldown がすべて Rust 製に
  • ビルドは15〜61%短縮(docs.astro.build で114.54秒→73.53秒)
  • Sätteri デフォルト化が最大の注意点。remark/rehype は明示オプトインが必要
  • 新機能は 高度ルーティング(src/fetch.ts)・Route Caching・Queued Rendering 安定化・バックグラウンド dev サーバー
  • 破壊的変更は HTML 厳格化・空白の折りたたみ・Sätteri/Route Caching の移行npx @astrojs/upgrade で更新

「フレームワークの足回りを Rust で固める」流れの、いまいちばん分かりやすい実例が Astro 7 です。プラグイン依存さえ整理できれば、ビルド短縮の恩恵は大きいので、ドキュメントサイトから試す価値があります。

参考リンク

Astro 6 の新機能 - 開発と本番の差を埋める新 astro dev、Fonts API、移行の注意点

Astro 6 の新機能 - 開発と本番の差を埋める新 astro dev、Fonts API、移行の注意点

9

Astro 6 の新機能と移行ポイントを公式リリースノートをもとに整理します。Vite の Environment API を使い本番ランタイムを開発時に走らせる新しい astro dev、組み込み Fonts API、Live Content Collections と CSP の安定化、実験的な Rust コンパイラ。さらに 6.1 の変更と、Node 22.12 必須・Vite 7・レガシー Content Collections 廃止・ViewTransitions から ClientRouter への置き換えといった 5.x からの破壊的変更まで、Astro 6.0/6.1 を一次ソースでまとめます。

タイムゾーンと日付の正しい扱い方 - UTC・ISO 8601・夏時間の罠と JavaScript Date

タイムゾーンと日付の正しい扱い方 - UTC・ISO 8601・夏時間の罠と JavaScript Date

9

日付とタイムゾーンの扱いを実務目線で整理します。UTC とオフセットとIANAタイムゾーン(Asia/Tokyo)の違い、ISO 8601 / RFC 3339 の推奨フォーマット、Unixエポック、JavaScript の Date のハマりどころ(月が0始まり・日付のみ文字列はUTC解釈・getTimezoneOffsetの符号)、夏時間(DST)で生じる「存在しない時刻」と「重複する時刻」、そして「保存はUTC・表示時に変換・IANA識別子で扱う」などのベストプラクティスを、MDN・RFC 3339・IANA を一次ソースにまとめます。