Astro 7.0

2026/07/08 3:30

Astro 7.0

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

Astro 7 は、構造化の大幅な改修を通じて、例外抜けた速度、安定性、そして高度な開発者機能に重点を置いた主要なリリースです。バンドリング、コンパイル、Markdown 処理における Go ロジックをネイティブ Rust コードに置き換えたことで、ビルド時間は 15〜61% 高速化しており、一部のサイトでは最大 2 倍の改善が見られます。新しいアーキテクチャには、queue ベースのレンダリング(現在、デフォルトかつ安定版)や、esbuild および Rollup の代わりに Rust ベースのバンドラーである Rolldown を採用した Vite 8 サポートが含まれており、既存の設定との互換性層が実装されています。

.astros コンパイラは

oxc
パーサーと Lightning CSS を使用して Rust で再書式化されており、厳格な JSX 処理の導入およびランタイムエラーを防ぐための無音 HTML 補正の廃止を除き、後方互換性が維持されています。Markdown および MDX 処理は、統合パイプラインよりもデフォルトで Erika による Rust プロセッサである Sätteri を採用し、コンテンツ量が多いサイトにおけるビルド時間の大幅な短縮を実現しています。

高度なユーザーは、Cloudflare Workers、Deno、Bun、Hono と互換性のある標準

fetch
ハンドラーパターンを利活用して
src/fetch.ts
経由でリクエストパイプラインに対して前例のない制御権限を獲得できます。ステータス安定版のルートキャッシングは、ルート上のディレクティブまたは
routeRules
を介したプラットフォーム非依存 API によって導入され、ライブコンテンツコレクションとの無効化連携が自動的に統合されます。実験的な CDN キャッチャープロバイダー(Netlify、Vercel、Cloudflare)は、キャッシュディレクティブをエッジネットワークにプッシュし、より高速なレスポンス時間を実現します。

AI 関連の機能強化には、開発サーバーの自動背景検知(

astro dev --background
)と、コーディングエージェントが検出された際に有効化される構造化 JSON ログ記録が含まれます。アップグレードパスは、自動化された CLI(
npx @astrojs/upgrade
)または
npm install astro@latest
による手動インストールの両方をサポートします。最終的に、Astro 7 は Rust に動力を与えられたより高速で堅牢な基盤を確立し、現代ウェブ開発の効率性においてフレームワークをリードする地位へ位置づけます。

本文

Astro 7 リリースのお知らせ:全面的な「スピード」強化と AI 機能拡充

Astro 7 がリリースされました。今回の更新は**「スピード」**を最優先テーマとしており、ビルド速度の劇的な向上、高度なルータリング機能、および AI 開発環境との親和性向上が特徴です。

🔍 リリースハイライト

  • Vite 8へのアップデート(Rolldown バンドラ―採用)
  • パフォーマンス向上: Rust コンパイラ化によるビルド速度の劇的な改善
  • 高度なルーティング:
    src/fetch.ts
    を通じた完全なリクエストパイプライン制御
  • ルートキャッシング: 安定版への昇格と実験的 CDN キャッシュプロバイダーの実装
  • AI 機能拡張: バックグラウンド開発サーバー、構造化 JSON ログ出力
  • コミュニティ: コントリビューターへの感謝

🚀 アップグレード手順

既存プロジェクトを Astro 7 に移行するには、以下のコマンドを実行してください。

推奨方法(自動化ツール)

npx @astrojs/upgrade

手動アップグレード

npm install astro@latest

新規プロジェクトについては、単に最新版を使用すれば自動的に Astro 7 が採用されます。詳細な移行手順は アップグレードガイド を参照ください。


⚡ パフォーマンスと Vite 8

Astro 7 はこれまでのバージョン中最も高速です。特に大規模なサイト構築においては、ビルド時間の大幅な短縮が期待できます。

Rust コンパイラによる加速

.astro
コンポーネントのコンパイル処理を Go から Rust に書き換えました。

  • 後方互換性の維持: 例外を除いて既存のコードとの対応を保証します。
    • HTML の是正処理の停止: マークアップを修正せず、ユーザー意図を尊重(従来は要素順序変更などを行っていました)。
    • JSX スタイルの厳密化: 未閉タグや不完全な属性は無視されず、エラーとして報告します。
    • 空白文字処理の変更: JSX の慣習に従い、要素間の改行を可視スペースとして保持しないようにしました。

Markdown および MDX の Rust 化

Markdown パイプラインを unified (JavaScript) から Sätteri (Rust) に置き換えました。

  • ビルド時間の劇的な短縮( Astro ドキュメント例:1 分以上短縮)。
  • 多くの Markdown プラグイン機能(GFM、スマート句読点、数式等)をネイティブに内蔵。
機能旧方式 (unified)新方式 (Sätteri)
GFM (テーブル、フッターノート等)プラグイン別途必要内蔵(デフォルト有効)
スマート句読点プラグイン別途必要内蔵
見出し IDプラグイン別途必要内蔵
数式 / ファントマター等プラグイン別途必要内蔵

Sätteri のカスタマイズ

機能追加には

features
オプションを使用できます。また、既存の
unified
ベースのパイプラインも継続して利用可能です。

// 例:Sätteri の機能設定
import { defineConfig } from 'astro/config';
import { satteri } from '@astrojs/markdown-satteri';

export default defineConfig({
    markdown: {
        processor: satteri({
            features: {
                directive: true, // コンテナディレクティブ有効
                math: true,      // 数式有効
            },
        }),
    },
});

🎯 高度なルーティングとキャッシング

Vite 8 と Rolldown

Astro 7 は Vite 8 を採用し、バンドラとして Rolldown(Rust ベース)を統合しました。

  • Rollup の API をそのままサポートしつつ、ベンチマークでは 10〜30 倍の高速化を実現。
  • 互換性層により、既存設定が自動的に移行されます。

ルートキャッシング (Route Caching)

オンデマンドレスポンスに対するキャッシング機能が安定版となり、プラットフォーム独立の API が提供されました。

キャッシュプロバイダーの設定

import { defineConfig, memoryCache } from 'astro/config';

export default defineConfig({
    cache: { provider: memoryCache() }, // メモリベースのプロバイダー
    routeRules: {
        '/blog/[...path]': { maxAge: 300, swr: 60 },
    },
});

使用例

---
// ページ内の明示的な設定
Astro.cache.set({
    maxAge: 120, // 2 分間キャッシュ
    tags: ['products'], // タグによる無効化
});
---

CDN キャッシュプロバイダー(実験的)

Netlify、Vercel、Cloudflare の環境では、ホストの CDN を利用した高速なキャッシングが可能です。

import { defineConfig } from 'astro/config';
import { cacheNetlify } from '@astrojs/netlify/cache';

export default defineConfig({
    adapter: netlify(),
    cache: { provider: cacheNetlify() }, // CDN を活用
});

🤖 AI 開発環境への対応

バックグラウンド開発サーバー

AI エージェントによる開発フローを考慮し、

astro dev --background
という新コマンドが追加されました。

  • AI エージェントは開発サーバーを背景プロセスとして扱い、フリーズや重複起動を防ぐことができます。
  • シェル側でのポーリング不要で、ロックファイルによる管理強化。
# 例:バックグラウンド起動
$ astro dev --background
Dev server running at http://localhost:4321 (pid 12345)
Status: astro dev status

構造化された JSON ログ出力

AI エージェントやログ集約システム(Kibana, Loki など)との連携を強化するため、JSON フォーマットが自動的に有効になります。

  • 色付き出力などを自動で除いた、機械可読なフォーマット。
  • カスタムハンドラ (
    compose
    ) を使用し、人間用とツール用のログを両立可能。
import { defineConfig, logHandlers } from 'astro/config';

export default defineConfig({
    logger: logHandlers.compose(
        logHandlers.console(), // 人間向け表示維持
        logHandlers.json()      // JSON フォーマット追加
    )
});

💡 コミュニティへの感謝

Astro 7 を支えるすべてのコアチームメンバーおよびコントリビューターの皆様に深く感謝申し上げます。

コアチーム: Alexander Niebuhr, Armand Philippot, Chris Swithinbank, Emanuele Stoppa, Erika, Florian Lefebvre, Fred Schott, HiDeoo, Luiz Ferraz, Matt Kane, Matthew Phillips, Reuben Tier, Sarah Rainsberger, Yan Thomas。

また、コード、ドキュメント、レビュー、テストに多大な貢献を果たされた以下の皆様にも心からの感謝を申し上げます: 0x K., 0xRozier, AceCodePt, Adam Chalemian, Adam Matthiesen, Adam McKee, Adam Page, Agus Setiawan, Ahmad Yasser, Alejandro Romano, Alex, Alex Dombroski, Alex Launi, Alexander Flodin, Alexis Aguilar, Aly Cerruti, Amar Reddy, Andreas Deininger, Andrei Alba, Antony Faris, Ariel K, Ash Hitchcock, atsbob, B Sai Thrishul, Barry, Ben Limmer, Bernd Strehl, BitToby, btea, Burra Karthikeya, buschtrisha77, Calvin Liang, Cameron Pak, Cameron Smith, Carlos Lázaro Costa, chaegumi, Chan, Chase McCoy, ChrisLaRocque, Ciaran Moran, Corbin Crutchley, CyberFlame, Daniel Bodky, Daniel Lo Nigro, Daniel Zamyatin, Daniil Sivak, Dario Piotrowicz, dataCenter430, Dawid Gaweł, Desel72, dfedoryshchev, Dom Christie, done, Dor Alagem, Dream, Ed Melly, Ed Melly, Edgar, Ellie, Em Poulter, Eric Grill, Eric Mika, Eryk Baran, Eveeifyeve, fabon, farshad, Felipe Arce, Felix Schneider, Felmon, fkatsuhiro, G Taki@MAX, Giray, Gokhan Kurt, Great Journey, Greg L. Turnquist, Harsh Agarwal, Haz, helio-cf, Henri Fournier, Henri Koskenranta, Henry, Igor Koop, Jack Lukic, Jack Moorhouse, Jack Shelton, jahndan, James Basoo, James Garbutt, James Murty, James Opstad, Jason P. Cochrane, Jett Way, Jimmy, joel hansson, John Mortlock, Johnny Noble, Jon Ege Ronnenberg, Joost de Valk, Jordan Demaison, Josh Soref, JPette1783, Julian Wolf, Julien Cayzac, Junseong Park, Justin Francos, Kai, kato takeshi, Kedar Vartak, Kendell, Kevin Brown, knj, Koji Wakamiya, Konrad Szajna, Kristijan, KTrain, Kumar Gautam, Kyle McLean, Lee Freeman, Leif Marcus, Leonie, Lieke, liruifengv, LongYC, Louis Escher, Luke Deen Taylor, MA2153, Mark Ignacio, Martin DONADIEU, Martin Heidegger, Martin Trapp, Matheus Baroni, Mathieu Mafille, Matthew Justice, Matthias, Matthieu Tremblay, Mavik, Max Malkin, maxim, meyer, Michael Giraldo, Mike Pagé, Milo, Minh Lê, Misrilal, MkDev11, Mochammad Farros Fatchur Roji, moktamd, Naren, Natan Sągol, Nicolò Paternoster, Ntale Swamadu, oab24413gmai, ocavue, Oliver Speir, oliverlynch, Ossaid, Patrick Linnane, Peter Philipp, Phaneendra, Pierre G., pierreeurope, Quetzal Rivera, R A, Raanelom, Rafael Yasuhide Sudo, Rahul Dogra, Rayan Salhab, Rodrigo Santos, Rohan Santhosh Kumar, Roman, Roman Kholiavko, Sam Richard, sanchezmaldonadojesusadrian14-coder, Sanjaiyan Parthipan, sanjibani, Schahin, Sebastian Beltran, Sebastien Barre, Shinya Fujino, Stefan Machhammer, Stel Clementine, Tay, Tee Ming, thelazylama, Timo Behrmann, tmimmanuel, Tobias Breit, Tom Callahan, Tomasz Cz-Sokołow, travisBREAKS, Tristan Bessoussa, Umut Keltek, Utpal Sen, Vagno, Varun Chawla, Victor Berchet, Vladyslav Shevchenko, Yagiz Nizipli, yy, 翠。

📢 お問い合わせ

Astro 7 をご利用中、何かご意見や問題がございましたら、以下からお気軽にお問い合わせください。

  • Discord
  • GitHub Issues
  • Bluesky / Twitter / Mastodon

同じ日のほかのニュース

一覧に戻る →

2026/07/08 3:24

Kokoro を活用したローカル動作・CPU対応で高品質な TTS(テキスト対話)

## Japanese Translation: 2026 年 3 月 31 日にリリースされた Kokoro-82M は、わずか 8200 万パラメータだけで英語・中国語・ヒンディー語の極めてリアルな声を生成する特段に軽量な Text-to-Speech モデルです。CPU 上で完結するように設計されており、高価な GPU の依存を回避できます(GPU はローカルの LLL推論用に留保されます)。同モデルは AMD Ryzen チップを搭載した標準的なプロセッサ、Intel Core i7 システム、Apple M シリーズ CPU にもデプロイ可能です。ベンチマーク結果では、各種ハードウェア上で合成時間が 5 秒以内となっています:Intel Core i7-4770K で約 4.7 秒、Apple M2 Pro で 4.5 秒、短かい段落では AMD Ryzen 7 8745HS で低至くとも 1.5 秒です。 最も簡単なデプロイ方法では、プリダウンロード済みの音声モデルを含む Kokoro-FastAPI コンテナイメージ(約 5 GB)を使用します。ユーザーは `podman run -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-cpu` コマンドで Podman を使用してサービスを開始し、`localhost:8880/web` でウェブ UI にアクセスすることで、オーディオを直接生成・再生できます。コンテナは OpenAI 互換の音声 API を公開しており、JavaScript(`./speak.js`)および Python(`./speak.py`)スクリプトなどの実装例があります。音声モデルは環境変数 `TTS_VOICE` を使用して選択でき(全リストは HuggingFace で確認可能)、出力は MP3 ファイルとして保存され、SoX がインストールされている場合は自動再生も可能です。 音声認識と Text-to-Speech の両方が必要なアプリケーション向けには、オプションの Speaches コンテナ化サービスが Whisper とシームレスに統合され、また OpenAI API 互換性もサポートしています。リソース要求を低く抑えつつ、簡潔なデプロイオプションを提供することで、Kokoro-82M は自然で多言語の音声合成を開発者のワークフローや広範なアプリケーションに統合するためのハードルを大幅に低下させます。

2026/07/07 21:38

StreetComplete:1 つの小さなクエストで OpenStreetMap を修正していくプロジェクト

## Japanese Translation: StreetComplete は、誰でも現在地から OpenStreetMap の精度を向上させるシンプルな方法を提供します。アプリは生地図上に不足している情報を簡単な「クエスト」として表示し、利用者に特定の場所を訪れて短く質問に答えるよう促し、データギャップを埋めます。このアプローチにより、高度な編集スキルや専用ソフトがなくても OpenStreetMap が最新の状態を保つことができます。ユーザーがタスクを完了すると、その貢献は瞬時にグローバルデータベースで更新され、直ちにその名前でクレジットされます。このメカニズムにより、地図の改善は情報を収集した実際の観察者まで追跡可能になります。したがって、ナビゲーションや地域発見のためのストリートレベルの詳細はより正確かつ信頼性が高まります。究極的には、このツールはマッピングを民主化し、無関心な訪問者を能動的な貢献者に転換させます。これにより、遠隔編集や大規模な専門チームに依存することなく、簡単な現場での相互作用を通じて正確な地理データが継続的に拡張されるコミュニティが育まれます。

2026/07/07 23:23

Chat Control バージョン 1.0 と 2.0 の解説

## Japanese Translation: 欧州連合(EU)は、企業に対し、子供による性虐待資料(CSAM)を検出するために私信をスキャンすることを義務付ける有効期限を迎えた暫定権能(チャットコントロール 1.0,規制 EU 2021/1232)の復活を図ろうとしている。当初 2024 年 8 月 3 日に有効期限が切れる予定だったこの措置は、2 回延期された——最初に 2026 年 4 月 3 日(2024 年 4 月 29 日の議決)、続いてさらに 2028 年 4 月まで(2025 年 12 月 18 日の提案)。2026 年 3 月 26 日、下院での投票で改正案 34 が否決されず、その一方で不特定の写真やテキストの自動評価を禁止する改正案 34 が僅差(307 対 306)で可決されたことを受け、無効化措置に基づく自発的スキャンの法的根拠は 2026 年 4 月 4 日に終了した。にもかかわらず、主要プラットフォーム(Google、Meta、Microsoft、Snap)は自発的に引き続きスキャンを行うと発表した。 しかし、立法上の行き違いが生じている:欧州議会の LIBE 委員会は 2026 年 3 月 2 日に延期を拒否し、欧州議会は 2026 年 3 月 11 日、広範な自動分析に対する保護性指令を採用し、理事会は同年 3 月中旬に欧州議会の条件を拒否した。これに対し、EU の大使たちは 2026 年 6 月 26 日に手続の簡素化を通じて暫定復活を推進することに合意し、理事会は同年 7 月 2 日にも自らの立場を採用した。2026 年 7 月 7 日、欧州議会は緊急手続を承認するため 331 対 303 の投票を行い、その際に関連する委員会を bypass して、有効期限を迎えた特別措置を迅速処理する手続きをとった。この議題に対する法的拘束力のある投票は木曜日(7 月 9 日)に予定されており、絶対多数である 361 人の欧州議会議員の賛成が必要となる。 同時に、「チャットコントロール 2.0」と呼ばれる恒久解決策を確立するための努力も停滞している。委員会は 2022 年 5 月 11 日、プラットフォームに対し暗号化全体(エンドツーエンド)を迂回して検出と報告を行うことを求める恒久規制を提案した。2023 年 11 月、欧州議会は E2E スキャンに反対する保護性指令を採用し、視覚情報のみを対象とした分析、特定の裁判所命令の要件のみを受け入れること、また年齢認証の義務化を拒否することを要請した。2025 年 12 月から 2026 年 5 月までの 4回のトリログ(三回協議)ラウンドに加えて、2026 年 6 月 29 日の「最終」ラウンドも失敗に終わったが、チャットコントロール 2.0 に関する合意は依然として達されていない。 2026 年 6 月 10 日、理事会の法務部は、裁判所の承認なしに行われる自発的スキャンは、EU 基本権憲章第 7 条(プライバシーとデータ保護)に抵触する一般化されたスキャンであるとして警告した。恒久 CSA 規制について 5回のトリログラウンドが完了後なお合意に至らず、2025 年 10 月にドイツの議長国としての任務でリスク評価と軽減義務への重点が移行している状況において、EU は児童安全の強化とデジタル権限の維持という狭いバランスを navigate しなければならない。7 月 9 日の緊急投票は、国家関連のスキャン手続に議論を伴う形で再び導入することを強いるリスクがあり、これにより憲法上の保護や公共の信頼に関連する新たな法的課題が引き起こされる可能性がある。