Tsrs:TypeScript を Rust に移植したプロジェクト

2026/10/20 22:18

Tsrs:TypeScript を Rust に移植したプロジェクト

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

要約▶

Japanese Translation:

Cloudflare、VoidZero、および Owner.com は、「tsrs」というプロジェクトに協力しており、これは TypeScript コンパイル言語の高性能な Rust 版で、Oxc ツールチェーン内で育種されました。単なるフォークではなく、このプロジェクトは個別の実装を維持し、公式 TypeScript チームとともに言語の方針については完全な制御を保ちつつ、Cloudflare および他者が特定の最適化を主導できるようにしています。最先端の AI を利用して移植プロセスを加速させ、Rust の優れた WebAssembly サポートを活用することで、Go など他の代替手段が使用する重いガベージコレクタのオーバーヘッドを避け、ブラウザや低電力 IoT デバイスといった環境をターゲットとしています。ベンチマークの結果、tsrs は TypeScript 7.0 より最高で 8 倍高速であり、メモリ使用量は約 70% 減少しています。これらの利点の一部はすでに公式 TypeScript 7.1 ベータ版にマージされており、さらに高速化されています。プロジェクトには、特定のハードウェアに対して速度を優先する適応型構成モードが含まれており、ブラウザ内で完全にエンカプスルされた開発環境を実現し、組み込みデバイス上で安全な実行を可能化することを目的としています。今後の取り組みとしては、言語サーバープロトコル機能を維持しつつアップストリームでの最適化を継続するため、コードベースの統合に重点を置きます。

本文

Cloudflare と VoidZero が TypeSript を Rust で再実装:「tsrs」プロジェクトの概要と展望

クラウドフラアール(Cloudflare)とボイドゼロ(VoidZero)は、Owner.com のマックス・シュウェンク氏と共に**「tsrs」**というプロジェクトに取り組んでいます。

プロジェクト概要

  • tsrsとは、TypeScript コンパイラのスロットポートであり、Rustで実装されたものです。
  • TypeScript チームとの緊密な連携のもと開発が進められ、Oxc JavaScript コンパイルツールチェーンの一環としても育成されています。
  • 主要な目標:
    • 開発者が型チェック待ち時間よりも実際の開発作業に時間を費やすよう支援すること。
    • TypeScript をより高速かつメモリ効率よくすることで、ブラウザ内やあらゆる環境での完結した開発環境の実現を促すこと。

開発方針と互換性について

  • TypeScript のフォークは行わない: 言語の設計や方向性のコントロールは完全にながれ TypeScript チームに委ねます。
  • TypeScript チームによる長期的なビジョン維持を尊重し、コミュニティへの採用を導く姿勢に変化はありません。
  • Rust 版は TypeScript チームの意思決定(機能選定など)を厳格に追従し、互換性の喪失を防ぎます。
  • 言語仕様の解釈や実装の詳細については、TypeScript チームのみが決断します。

パフォーマンスとメモリ効率の向上

Rust による初期ベンチマーク結果は非常に有望です。

  • tsrs の性能: 同等数の型チェックワーカーを使用した場合、TypeScript 7.0 より最大 8 倍高速化され、かつ約70%のメモリ使用量を削減。
  • 上位統合の影響: TypeScript 7.1 ベータ版でも最大 2.5 倍の高速化が実現しており、tsrs の最適化が一部上位へ統合されています。
  • ベンチマーク条件の統一: 以前は大型マシンや特殊オプションで性能主張が高まっていた事例がありましたが、TypeScript チームとの協議により、現在では同一の設定条件下での比較が保証されています。
  • デフォルト設定の適応性: マシンの種類に応じて構成を適応的に変更し、より多くのメモリ消費换取にさらなる高速化を実現します。

実験版の入手方法

Rust による忠実なスロットポートを手に入れるには、npm から以下を実行してください。

npm install tsrs
npx tsrs

なぜ今 Rust ポートなのか?

近年、AI モデルを活用した大規模コード変換が可能になり、Go や C++ による完全再設計版や「忠実なポート(faithful ports)」が登場しています。これにより、より高速な TypeScript への需要が高まっています。

なぜ Rust を選ぶのか?

TypeScript の Go ポート版ですでに 10 倍の高速化が達成されているにもかかわらず、Rust が必要とされる理由は単なる速度ではありません。

  • WebAssembly(Wasm)環境での実行: Rust+Wasm の組み合わせは特に強力です。
  • メモリ管理モデルの違い:
    • Go を Wasm にコンパイルする場合、ガーベッジコレクション(GC)も一緒にコンパイルする必要があります。
    • Rust はメモリ管理モデルにより、WebAssembly ゲストとホスト間の直接的かつ効率的なメモリ操作が可能です。
  • Cloudflare Workers での活用:
    • WebAssembly をサポートしており、wasm-bindgen の新機能により Workers でネイティブ Rust の実行も可能になりました。
    • 小さなメモリフッターは実利となり、以前はできなかった環境でも完全に封閉された開発システムを実行できるようになります。

エージェントとの組み合わせによる可能性

  • Cloudflare 上のサンドボックス化された環境内で開発ツールのエンドツーエンド実行が可能に。
  • WebAssembly を利用することで、クライアントサイドのブラウザ、組み込みデバイス、IoT アプリケーションなどでも安全な実行環境を構築できます。

tsrs ポートのメンテナンス方針

Theo Browne 氏と共に、「tsc-rs」と「tsrs」を単一パッケージへ統合し、TypeScript の全機能(LSP やコンテンツマッパーなど)をサポートするよう進めています。

Vinext と Next.js の同期手法を参考に、以下のプロセスを採用しています:

  • 朝のレビュー: エージェントが変更内容をレビューし、diff を取得。Vinext に影響がある項目についてトラッキングイシューを開く。
  • 夜のテスト: Next.js のテストスイートを Vinext で実行しながら、互換性マトリクスを再生成。
  • ギャップの解消: テストやイシューで問題が見つかった場合、エージェントが両方のコードベースの変化を特定し、再現例を作成・テストポート・修正提案を行う。

TypeScript への適用方針も同様です:

  • アップストリームの TypeScript から逸脱した振る舞いを導入しないよう注意します。
  • パフォーマンス向上を発見した際は、Go ベースのコードベースにも還元し、すべての関係者にメリットを提供。
  • 現時点では診断情報の表示順序などに違いがありますが、安定版リリース時には差異を最小限に抑えます。

今後の展望

Cloudflare は既に Vite、Rolldown、Oxlint、Oxfmt など多くの Rust ツールをホストするエコシステムです。1,000 万人超の開発者が利用する中で、以下の取り組みを進めています:

  • 開発ツールチェーンの改善: より高速で、移植性が高く、多くの環境で容易に実行できるツールチェーンの実現。
  • スタックへの統合: tsrs を実験的にスタックに深く統合し、Oxlint 向けに型認識機能付きの lint ルールなどを展開予定。
  • オープンソースとしての維持: Vinext と同様、健全なオープンソースプロジェクトとして運営し、TypeScript そのものを邪魔しない姿勢を堅持します。

Oxc チームがコードベースの再設計を開始し、より高速で保守性の高いシステムを実現していることも認識しています。TypeScript チームおよび JavaScript コミュニティと協力し、最高の品質かつ最も高速な TypeScript 実装の構築を共に進めていくことを目指します。

同じ日のほかのニュース

一覧に戻る →

2026/10/21 3:29

許認可付きシムシティ

## Japanese Translation: 「Permit Pending」は、プレイヤーの役割を全能な計画者から市町村行政の実態に直面する脆弱な選出された職吏へと転換させることで、都市シミュレーションを再定義します。明確な勝利条件を持つ従来のゲームとは異なり、このサンドボックス体験は市民が市長を罷免するまで無限に続き、成功の鍵はインフラを整備することのみならず、複雑な官僚主義と政治的課題に対応して生き延びるかに依存することが強調されています。すべての建設プロジェクトは必要な審議会の招集、法的レビュー、さらには潜在的な訴訟を引き起こし、霧などに関する懸念を抱える住宅所有者、業界団体、環境保護主義者からの自然な反対を誘発します。プレイヤーは 4 年ごとの再選に直面する 7 議席の評議会において多数派を維持するため、公聴会で譲歩を行わなければなりません。有権者 turnout が高いグループは時間とともに過剰な影響力を行使するため、変動する政治情勢への適応が求められます。ヒートマップなどの診断ツールにより住民の人口統計が可視化され、特定の政策がなぜ反発やゲーム内の新聞「The Gazette」で報じられたスキャンダルへと至るのかを説明します。いくつかの法的訴訟は市長の任期を超えて継続することもでき、インフラストラクチャに関する決定は土地価格、家賃、雇用、税金、サービスにわたって実質的な経済における予期せぬ結果を生み出します。ブラウザベースのサンドボックスであり勝利画面やキャンペーンモードを備えず、最初の訪問後にはオフラインで動作し、プレイヤーは村として新たなスタートを切るか、他人の都市から既存の問題を引き継ぐことができます。

2026/10/21 7:21

連邦当局は、ランサム交渉担当者による ShinyHunters の金銭要求サイト運営を疑っている

## Japanese Translation: # 結論: 調査は驚くべき事実を明らかにしており、主要なランサムウェア集団「ShinyHunters」が、その伸縮サイトの管理を担当する米国の企業やカナダの企業のトップ経営者から直接的な支援を受けていることが判明した。従来の助言とは異なり、これらの仲介人は積極的に交渉を促進し、場合によっては被害者よりも先に機密データの窃取の詳細を知っていることもある。あるカナダの経営者は、脅迫される前に政府機関のファイルが盗まれていたことをFBIに報告しなかった。この深い協力関係は2019年以来進化しており、殺人依頼計画を含む計画や、「Rey」のような現在の指導者を「Ghostbyte」であるDaniel Tobokなどの以前の人物と結びつけるものも含まれている。 このスキャンダルは業界内で重大な利益相反の問題を浮き彫りにしている:ランソムの一部割合を受け取る仲介人は、攻撃を止めるのではなく、結果としてより高い支払いを促すように無意識に動機付けられる可能性がある。起訴はEdward Dubrovskyのような個人や未起訴の米国コンサルタントを対象としており、企業の過失か積極的な共犯が深刻な法的結果をもたらすことを示している。当局は被害者にランソムの支払いを行わないよう明確に警告しており、データは通常二次的な伸縮のために利用可能であり続けるためである。最終的に、この事件は以前会社を支援していた交渉サービスに対する信頼を破壊しており、一部のサイバー犯罪ネットワークが効果的に動作するためには内部の経営者への依存が不可欠であることを証明している。 ## Text to translate: Summary: A disturbing investigation reveals that major ransomware group ShinyHunters receives direct support from high-level executives at U.S. and Canadian firms who manage its extortion websites. Unlike traditional advice, these intermediaries actively facilitate negotiations, sometimes knowing sensitive data theft details before the victims do. One Canadian executive failed to alert the FBI regarding stolen agency files prior to their threatened release. This deep collaboration has evolved since 2019, involving plans for murder-for-hire and linking current leaders like "Rey" to former figures such as Daniel Tobok ("Ghostbyte"). The scandal highlights a critical conflict of interest within the industry: negotiators charging percentages of ransoms may inadvertently incentivize higher payments rather than stopping attacks. Prosecutions are now focusing on individuals like Edward Dubrovsky and uncharged U.S. consultants, demonstrating that corporate negligence or active collusion carries severe legal consequences. Authorities explicitly advise victims against paying ransoms, as data often remains accessible for secondary extortion. Ultimately, this case destroys trust in negotiation services that previously assisted companies, proving that some cybercriminal networks rely entirely on insider executives to operate effectively.

2026/10/20 18:08

DeepInfer:DeepSeek モデル向けの高性能推論フレームワーク

## Japanese Translation: DeepInfer は、NVIDIA SM100 GPU および Huawei Ascend 950 NPU 上でスケールサービング能力を備え、DeepSeek-V4.1-Flash モデルの DeepSeek の本番サービスを支えるオープンソースの高パフォーマンス推論フレームワークです。主に vLLM に構築され、SGLang および TensorRT-LLM を念頭に置いて設計されています。最適化されたカーネル(FlashMLA、DeepGEMM、DeepEP、TileKernels、DeepSelect、カスタム TileLang)と、Attention DP、バランスの取れた CP、MoE EP+EPLB、DSpark、信頼度に基づく検証、SWA 有界再生非同期スケジューリング、バッチ不変推論、決定論的サンプリング、構造化出力(regex/JSON スキーマ/EBNF)を含む高度な並列化戦略を支援します。 コア機能は環境変数経由で設定可能であり、DEEPINFER_ENABLE_MTP_VARLEN=1 で DSpark/検証を有効化し、DEEPINFER_USE_NEXTN_DECODE(デフォルト:5)で最大ドラフト長を制御します。デフォルトの V4.1 設定に対しては、DEEPINFER_YOCO_PREFILL_TRUNCATION_MODE=compact と DEEPINFER_YOCO_PREFILL_KEEP_TOKENS=140 でデコーダー SWA 有界再生非同期スケジューリングを設定します。デフォルトで CPU バッチスケジューリングとデバイス実行のオーバーラップを可能にするため、非同期スケジューリングを有効化し、NVIDIA 上で DEEPINFER_BATCH_INVARIANT=1 でバッチ構成間での同等の結果を実現するバッチ不変推論を活性化します。DEEPINFER_BATCH_INVARIANT=1、DEEPINFER_ENABLE_MTP_VARLEN=0、SamplingParams の固定 seq_seed を使用することで NVIDIA 上で決定論的サンプリングを実現し、SamplingParams に so_args={"schema_type": ..., "schema": ...} を渡すことで生成を regex/JSON スキーマ/EBNF に制限します。 完全な本番環境のセットアップには、専用の KV キャッシュシステムの統合、 disaggregated 形式での prefill/decode 操作の実施、およびデータ並列レプリカ間での負荷分散(初回リリースには含まれていない)が最終的には必要となる可能性があります。ユーザーは Linux、GCC ≥13.0、Python 3.12、CUDA 13(NVIDIA)または CANN 9.2(Ascend)、そして空の Python 3.12 環境の作成、DEEPINFER_ACCELERATOR=nvidia または ascend のエクスポート、および ./build.sh の実行からすぐに始めることができます。オフライン推論はデフォルトで deepseek-ai/DeepSeek-V4.1-Flash-1017 チェックポイントを使用し、初回実行時に Hugging Face キャッシュにダウンロードするか、DEEPINFER_HF_MODEL_DIR を介してオーバーライドします。例コマンドは python examples/offline_inference.py です。パフォーマンスベンチマークは 1 スケールアップドメイン内での prefill に 4 SM100 GPU、decode に 64 を使用して測定されました(再現は run_sweep.sh で可能;詳細は eval/README.md を参照)。このフレームワークは Apache License 2.0 の元でリリースされており、GitHub(https://github.com/deepseek-ai/DeepInfer)上で DeepSeek-AI(2026)に帰属しています。