Vidact:React を直接の DOM 操作に変換するコンパイラ

2026/09/03 5:34

Vidact:React を直接の DOM 操作に変換するコンパイラ

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

要約

Japanese Translation:

Vidact は、React 19 の特定のサブセットをビルド時に純粋な Vanilla JavaScript にコンパイルすることを目的とした画期的なツールです。これはアプリケーション実行時における標準的な React ランタイムの必要性を効果的に排除します。関数型コンポーネントを直接 DOM コードに変換することで、Counter アプリでは 8.0 kB、TodoMVC では 11.8 kB という極めて圧縮されたランタイムサイズを実現しており、その効率性は顕著です。このアプローチはプレコンパイルされたコードの配信によって重いライブラリの使用を回避しフットプリントを大幅に削減しますが、クラス型コンポーネント、

createRef
、ほとんどの
Children
ヘルパー、React DevTools といったサポート対象の機能への厳格な準拠を要求します。また、従来の React ランタイムを期待するサードパーティ製パッケージは明示的に除外されます。さらに、マウント後に状態を設定する行為も制限され、テキストノードと属性からの読み取りのみが許可されています。本ツールは「Vidact Start」と呼ばれる環境も提供しており、単一のコンパイラ記述からファイルベースのルート、サーバーサイドレンダリング(SSR)、ハイドレーション、クライアント側ナビゲーション、そしてサーバーローダーをすべてサポートします。したがって、未サポートの機能を利用しようとするユーザーは即座にコンパイルエラーが発生し、標準的な React を読み込むためのフォールバックメカニズムが存在しません。現在ベータ版で一般的なユースケースに対して実績のある指標が示されていますが、Vidact の採用には、開発者が標準的なパターンを代替可能な互換性のある実装に置き換えるという移行経路へのコミットメントが必要であり、このことで上記の顕著なサイズおよびパフォーマンス上の利点を享受できることになります。

本文

Vidact: React 19 サブセットへのコンパイルと最適化

Vidact はバニラ JavaScript に React コンポーネントをコンパイルするツール です。ビルド時に関数型コンポーネントを読み取り、それに対応する DOM コードを生成します。

主な特徴と動作原理

  • マウント時の実行: コンポーネント本体は マウント時のみ一度実行 されます。
    • その後の
      setState
      呼び出しにより、状態を参照しているテキストノードや属性のみが更新されます(※ベータ版機能)。
  • サポート範囲:
    • 文書化された React 19 の一部サブセットのみをサポートしています。
    • サポートされていない機能は、ビルド時にコンパイルが拒否されます。
    • React ランタイムに対して事前にコンパイルされたパッケージ(ソースコードそのもの)は含まれません。
  • エラーハンドリング:
    • 制限された API を使用した場合、フォールバック経路(React の読み込み)はありません。
    • コンパイラはビルドを停止し、問題の原因となった API を明示的に名前付けて報告 します(静かに動作が低下することはありません)。

実装サイズとパフォーマンス

以下のすべての例は、Vidact でコンパイルされ、このページにマウントされた通常の React です。サイズは gzip 圧縮済み です。

  • 8.0 KB: カウンターアプリ(ランタイムを含む)
    • ファイル:
      tests/runtime-size/fixtures/counter.tsx
  • 11.8 KB: TodoMVC(ランタイムを含む)
    • ファイル:
      examples/todomvc/src/TodoApp.tsx

非同期データロードと SSR

Vidact Start はファイルベースのルート、サーバーサイドローダー、SSR、ハイドレーション、クライアント側ナビゲーションを提供します。同一コンパイラがサーバービルドとブラウザビルドの両方を生成するため、サーバーから送信されるマークアップとクライアントでハイドレーションする DOM の双方は、1 つのコンポーネント記述から由来します。

実装例:製品ページでの非同期ロード

import { defineFileRoute } from '@vidact/start'

// ローダー関数(サーバーサイドで実行)
const loader = async ({ params }) => ({
  product: await findProduct(params.productId), // 非同期データ取得
})

// コンポーネント本体
export function ProductRoute({ loaderData }) {
  return <h1>{loaderData.product.name}</h1>
}

// ルートの定義(サーバーとクライアントに共通)
export const Route = defineFileRoute({
  loader,
  component: ProductRoute,
})

サポートされず、ビルドが停止する機能

以下の機能は Vidact のサブセットに含まれません。これらを使用するとビルドが失敗します。

  • クラス型コンポーネント
  • createRef
    API
  • Children ヘルパーの大部分
  • React DevTools
  • React ランタイムに対して事前にコンパイルされたパッケージ(ソースコード非同期)

詳細な API 対応状況と状態については、公式ドキュメント をご覧ください。

同じ日のほかのニュース

一覧に戻る →

2026/09/03 0:12

Gemini 3.8 Flash および Gemini 3.8 Flash Cyber

## Japanese Translation: 現在のサマリーは物語的な流れに優れていますが、キーポイントリストに含まれる具体的な定量基準が不足しています。以下の改善版では、これらの特定のデータポイントを統合しつつ、読みやすさを維持しています: ## 改善されたサマリー: Google は Gemini 3.8 を導入し、**Gemini 3.8 Flash** と専門的な **Gemini 3.8 Flash Cyber** の 2 つのバリエーションを特徴としています。標準的な **Flash** バリエーションは、100 万入力トークンあたり$0.75、100 万出力トークンあたり$3.75(以前の価格と同様)で提供されており、推論能力において著しい飛躍を実現し、プロンプト注入に対する堅牢性を備えた HLE-Verified で 54.9% のスコアを達成しました。複雑なエンジニアリングタスク(DeepSWE)、法律・金融ベンチマークにおいて、より大きな最前線モデルを上回る性能を示しました。 **Flash Cyber** バリエーションは、新しい Fairwind プログラムを通じて認定されたセキュリティ専門家のみが利用でき、標準モデルに比べて許可された防衛者に対してより寛容な緩和措置を備えています。このバージョンは脆弱性発見においてかつてないスピードを発揮し、例えば重要な基盤的な欠陥を検出するのに通常必要だった数ヶ月に対して 2 時間未満で特定しました。また、Wiz や Collinear などが実施した内部ペネトレーションテストベンチマークにおいて、Flash Cyber は 20 のプログラミング言語にわたり 70% 以上の成功率を達成し、コストも大幅に低下(2.3 倍〜5.2 倍の削減)しました。さらに、Google のクラウド脆弱性研究チームは、Chrome の脆弱性に対してベストクラスの商用モデルよりも 2.6 倍多くの正しいパッチを生産したと報告しており、これにより効率的な脅威検出における新しい業界標準としての地位を確立しました。

2026/08/31 21:01

ImHex を使った未知のファイル形式のリバースエンジニアリング

## Japanese Translation: ここで詳述される主な成就是不動の ImHex 解析ツールを用いて、FEZ の独自バイナリセーブファイル形式を完全な構造定義へと逆工学するに至ったことである。JetBrains Rider を用いてゲームの .NET コンポーネントをデコンパイルすることで、研究者は `EasyStorage` ライブラリ内部にある特定のロジック、特にデータシリアライゼーションを担当する `PCKsaveDevice` コンポーネントを特定した。このコンポーネントは、Windows の FILETIME タイムスタンプとシリアライズされたゲームデータを含まれる 4096 バイトのバッファー内で動作する。このプロセスには、ImHex 内にカスタムのパターンを作成して複雑な内部レイアウト(7 ビット符号化文字列、`OneTimeTutorials` のようなキー値ペアのリスト、`LevelSaveData` のようなネスト構造、`ActorType` のような列挙体など)をマッピングする作業が含まれた。注目すべきは、FEZ のセーブファイルが OS 固有のパスに格納されながら暗号化も標準的なマジックヘッダーも含まず、今や完全にデコード可能になった点である。ImHex で設定された後、ユーザーは強調表示された Hex View を通じて生データを閲覧し、Pattern Data View を通じて編集可能な値を変更することができる。その結果、プレイヤーは公式のゲーム内ツールに依存せずにセーブファイルを独自に編集する能力を得る一方で、開発者はこのオープンな定義を用いて安全にゲーム状態を分析したり、バックアップユーティリティを作成したりできるようになる。なお、著者は秘密や終盤コンテンツに関する重いス ポイラーがあるため、FEZ をプレイしてから本文を読むことを推奨していることに注意されたい。

2026/09/03 7:36

Launch HN: ロナン・エックス(YC S26)– 個別最適化されたペプチドとGLP-1

## Japanese Translation: 本サービスは、GLP-1 減量治療を転換させ、硬直した標準プロトコルを、患者それぞれの唯一無二の医療歴および耐容性に合わせた、極めて個別化された医師主導のケア計画で置き換えます。吐き気や疲労などの副作用に対応せずにはいられない固定的なラベルアプローチとは異なり、本モデルは必要に応じてターゲッティングされたサポートを加え、耐容性と一貫性を向上させます。重要な安全機能として厳格な「失敗時に閉じる(fail-closed)」検証プロセスがあります:患者が選択した薬局(例:Elite Care Pharmacy LLC または別の希望薬局)の認可を受けた薬剤師は、調剤薬をリリースする前に、すべての詳細が特定の患者チャートと一致することを確認し、棚から決して取られないロット追跡可能な成分を使用します。これにより投与前の精密性が確保され、有効期限(beyond-use date)の制限とともに、リリース時に薬剤師の署名が含まれます。このプロセスは医師主導の権限チェーンに従い—医師が処方し、認可された薬剤師が検証してリリースする—with 何人も医師の判断を上回ることはできません。すべての工程には「失敗時に閉じる」ゲートが組み込まれており、検証が失敗した場合(例:処方がチャートと一致しないか、ロットが追跡できない場合)は注文が停止し、何も出荷されません。品質保証は完全に行間ごとのチェックに依存し、必要に応じて冷鏈要件を満たす温度感知包装、配送、トラッキングを使用します。調剤製剤は通常、現金払いによるブランド名のリスト価格よりもコストが低い傾向がありますが、実際のコストは計画、薬局、州によって異なります。これにより、ブランド医薬品と比較して長期的な持続可能性が向上します。なお、調剤薬は FDA の直接承認の枠外で運営され、ブランド版からの臨床試験データは直接的に適用できないことに注意が必要です。将来のリフィルは決して自動的ではなく、継続的な医師によるレビューを必要とするため、治療計画は患者の体が初期週間にわたって安定化するにつれて適応させることができます。本サービスは HIPAA 準拠とエンドツーエンド暗号化を維持し、ケア全体を通じて高水準のプライバシーを確保します。究極的には、このアプローチは業界を「ワンサイズフィッツオール」なラベルから、安価さ、安全性、品質保証、医療監督が個別化された検証と継続的な医師監督を通じてバランスされている厳格なシステムへとシフトさせます。

Vidact:React を直接の DOM 操作に変換するコンパイラ | そっか~ニュース