RaTeX:純粋な Rust で実装された、KaTeX と互換性を持つ LaTeX 描画エンジン

2026/05/05 1:19

RaTeX:純粋な Rust で実装された、KaTeX と互換性を持つ LaTeX 描画エンジン

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

要約

Japanese Translation:

RaTeX は、ごみ収集(garbage collection)を排除することで決定論的なタイミングを実現し、一貫した Rust コアを活用することにより、高性能な数学表現における画期的な成果を提供します。このアーキテクチャにより、開発者は単一のエンジンで iOS、Android、Flutter、React Native、サーバー、そして Web(WASM)を含む全てのプラットフォーム上で、複雑な数学表現—including 化学マクロ(\ce, \pu)や物理単位—をレンダリングできます。従来の WebView に依存するアプローチや、KaTeX や MathJax のような重厚なブラウザベースのライブラリーとは異なり、RaTeX は品質を損なうことなく、競合製品よりも著しく小さい JavaScript バンドルサイズ(コアは WASM 形式で配信され、約 0 kB against 競合製品の約 280–500 kB)を提供します。自動化されたテストにより、大規模なゴールデンスイートと参照画像に対するピクセル差分を通じて、既存の標準とのピクセルレベルでの一致が確認されています。この決定論的かつ軽量なソリューションは、モバイルユーザーインターフェース、サーバーサイドレンダリング、そしてフルな JavaScript ランタイムを必要としない CI レイスタートストに最適です。Rust コアから一つのエンジンをネイティブ FFI と WASM バックエンド(CoreGraphics、Skia、Canvas 2D、またはカスタムベクター)の跨って共有することで、RaTeX はサードパーティ製 SDK が化学サポート、単位スタイル、あるいはクロスプラットフォームの一貫性に欠けるという断片化問題を解決します。その結果、チームはパフォーマンスや機能の完全性を損なうことなく、エコシステム全体で信頼性と予測可能性のある数学表現レンダリングを実現できます。

本文

Rust を基盤とし、1 つのレイアウトエンジンから「ネイティブ環境」と「WebAssembly(WASM)」の両方で品質に優れた TeX 方式の数式レンダリングを提供します。

RaTeX は LaTeX の数式を読み込み、TeX スタイルのルールを適用した後、CoreGraphics、Skia、Canvas 2D および独自のベクターバックエンドなどに flat display list を出力します。このプロセスにより、「ネイティブ FFI」と「WebAssembly」環境であっても全く同一の結果が得られます。

精度と信頼性: RaTeX は、重要な点において KaTeX と完全に互換性を備えるように設計されています。継続的統合(CI)では、標準の画像群とのピクセルレベルの差異を確認する大規模なゴールデンテストスイートを実行しており、このコーパスにおける出力は概して KaTeX と同等です。サポートページには、KaTeX と並列で全ゴールデンリストを比較するための詳細なテーブルが用意されています。

適した使用シーン: 通常の Web ページ内の数式表示では、DOM 上に KaTeX を使用するのが依然として優れたデフォルト選択肢です。一方、RaTeX は、WebView を必要としないネイティブアプリ、サーバー、または埋め込みシステム向けに設計されており、モバイルから WASM まで同一のエンジンを利用できます。

どこでも利用可能なパッケージ化:

  • 用意された SDK および WASM ビルド版: Rust コアから単一ソースで展開されます。npm、Maven、pub.dev、または SPM からインストール可能です(詳細は「入門」ガイドをご覧ください。サーバーサイド PNG 生成コマンドラインツールも含まれています)。

主なプラットフォームごとの利用方法:

  • Web (WASM):
    npm install ratex-wasm
  • Android:
    io.github.erweixin:ratex-android
    (Maven)
  • Flutter:
    ratex_flutter
    (pub.dev)
  • iOS: SPM を介して直接使用

RaTeX を選択すべきタイミング:

  • ネイティブまたはサーバー環境: WebView の導入を避け、iOS、Android、Flutter、あるいは Rust サービスにおいて同じレイアウトエンジン(PNG 風ラスタライズなど)を活用したい場合。
  • ホスト上での WASM 環境: WebAssembly 上でコアを実行し Canvas で描画し、ライブデモで KaTeX との出力を比較したい場合。
  • 化学式・単位: 通常の数式の隣に
    mhchem
    スタイルの
    \ce
    \pu
    が利用可能(反応矢印や物理的単位も同一パイプライン内で処理)。

メモリ安全な Display List: レイアウトエンジンは 1 つだけであり、ホットパスにガベージコレクション(GC)を含まないため、モバイル UI、サーバー、および CI のラスタライズテストにおいて予測可能なタイミングを保証します。

どこでも利用可能: 互換性のあるプラットフォーム対応

  • C ABI: Swift、Kotlin、Dart などのネイティブ言語と互換。
  • WASM: Web 環境向け。
  • 描画エンジン: tiny-skia や独自の実装も受け入れられ、全てのバックエンドで同一の display list を出力します。
  • FFI: WebAssembly 経由でのインターフェース対応。
  • 科学計算:
    mhchem
    スタイルの化学式機能(
    \ce
    /
    \pu
    )を内蔵。反応矢印や物理単位を、通常の数式のライン上で処理可能。

ブラウザでの試行: RaTeX の WASM 版でレンダリングされた、CI で使用されている LaTeX コードの一覧を以下のギャラリーでご覧ください。

  • 数学
  • 化学
  • 物理学 詳しくは、KaTeX との比較デモページをご覧ください。

なぜ WebView スタックを採用しないのか? ブラウザ内では通常、KaTeX や MathJax は JavaScript として DOM 上で動作します。WebView を介して数式を埋め込む場合でも、結局はブラウザのスタック全体を配布することになります。RaTeX は、このアプローチを避けることを希望するホスト環境向けに、レイアウトとラスタライズ処理を Rust で完結させることで対応します。

Web ス tack との比較: RaTeX vs KaTeX/MathJax

機能RaTeXKaTeX (Web)MathJax
ランタイムPure Rust (純粋な Rust)JavaScript + DOMJavaScript + DOM
モバイル対応ネイティブ / WASMWebViewWebView
デスクトップ対応ネイティブWebViewWebView
オフライン動作可能依存する場合あり依存する場合あり
JS バンドルサイズ (典型値)0 kB (コアは WASM)〜280 kB〜500 kB
メモリモデル予測可能GC / ヒープ管理GC / ヒープ管理

RaTeX と既存のネイティブ数式 SDK の比較 WebView を使用しない場合、チームは Swift、Objective-C、または Flutter ライブラリを選択する傾向にあります。以下に広く利用されているオープンソースレンダラである

swiftMath
(Swift)、
flutter_math_fork
/
flutter_math
(Dart/Flutter)、および
iosMath
(iOS) とのハイレベル比較(化学マクロ、移植性、エンジン構造について)を示します。サードパーティ製 SDK は独自に進化するため、統合時にはバージョンの確認を推奨します。

機能RaTeXswiftMathflutter_mathiosMath
mhchem
\ce
(化学)
\pu
/ siunitx スタイルの単位
同一エンジン:ネイティブ FFI + WASM
同一 Rust コアからのモバイル+デスクトップ対応
Rust 実装の TeX レイアウトコア(ホットパスの予測可能性)

※ パフォーマンスはワークロードに依存します。Swift は ARC、Dart はトレース型 GC を採用していますが、両者とも RaTeX の Rust コアとは異なり、「ブラウザなし」な埋め込みアーキテクチャでは根本的な違いがあります。

科学 UI の配信をブラウザエンジンを埋め込まずに行う:

同じ日のほかのニュース

一覧に戻る →

2026/05/08 7:22

キャンバス(Instructure)LMS は、現在も継続中のランサムウェア攻撃の影響で利用できない状態にあります。

## Japanese Translation: 2026 年 5 月 7 日、ShinyHunters 集団と見做されるランサムウェア攻撃により、Instructure の Canvas プラットフォーム(Canvas Beta および Canvas Test を含む)が停止し、調査が行われる間、すべての環境にアクセスできなくなる事態となった。この侵害は Instructure の確認によると、学生名、ID 番号、メール地址、および私信を含む情報を暴露させ、約 9,000 の学校で活動する約 2.75 億人の学生、教職員、スタッフに影響を与えた。ShinyHunters は、影響を受けた学校がサイバーアドバイザリーファームと連絡をとり、「TOX」へ私下に連絡して漏洩期限である 2026 年 5 月 12 日までのデータ漏洩防止に向けた解決策の交渉を行うよう要求し、加えて被害者リストへのリンクも提供した。ShinyHunters は以前にも AT&T、Ticketmaster、Rockstar Games、ADT、Vercel など大手組織を標的にしており、高度な手口を示している。Instructure は以前にも過去のアシインを受け、セキュリティを強化するためのパッチを展開していた。この事実は、大規模な学習管理システムが協調的なランサムウェア作戦に対して極めて脆弱であることを示すと同時に、漏洩期限前に大量のプライバシー侵害を防ぐため、教育機関に脅威アクターとの緊急交渉を迫っている。 ## Text to translate: ## Summary: On May 7, 2026, a ransomware attack attributed to the ShinyHunters group disabled Instructure's Canvas platform (including Canvas Beta and Canvas Test), leaving all environments inaccessible while an investigation proceeds. The breach affected roughly 275 million students, teachers, and staff across 9,000 schools, exposing student names, ID numbers, emails, and private messages per Instructure's confirmation. ShinyHunters demanded that affected schools contact a cyber advisory firm and reach out to "TOX" privately to negotiate a settlement before a data leak on May 12, 2026; the attackers also provided a link to a list of claimed victims. ShinyHunters has previously targeted major organizations such as AT&T, Ticketmaster, Rockstar Games, ADT, and Vercel, indicating sophisticated tactics. Instructure had previously deployed patches to strengthen security following a prior breach. The incident underscores the acute vulnerability of large-scale learning management systems to coordinated ransomware operations and forces educational institutions to urgently negotiate with threat actors to prevent mass privacy violations before the leak deadline.

2026/05/08 4:21

ディリー frag: ユニバーサル Linux LPE(ローカル・プリミティブ型エクスプロイト)

## 日本語翻訳: 「Dirty Frag」は、2026 年 5 月時点ですでにパッチが存在せず、攻撃者が瞬時に完全なルート権限によるシステム制御を可能にする重要な Linux セキュリティ欠陥である。この脆弱性は 2 つの異なる攻撃手法を連結することで、認証バイパスと必須ファイル(例:`/etc/passwd`)の書き換えを実現し、バックドアアクセスを作成することを許可する。技術的には、暗号化通信によく用いられる `esp4`、`esp6`、または `rxrpc` などの特定のカーネルモジュールを標的にしており、サンボクس化された環境内での「ESP 認証バイパス」トリックを用いたり、システムページのキャッシュに悪意のあるルートシェルを記述したりすることで攻撃を行う。通常のソフトウェアアップデートとは異なり、深刻さの理由から情報公開が制限されており、まだ正式な CVE(Common Vulnerabilities and Exposures)は存在しない。影響を受けるユーザーは、手動で脆弱なモジュールをカーネル設定から無効化しない限り、即時に完全なる侵害のリスクに直面している。管理者は、システムパスワード内の特定のバイトシグネチャを確認することで、自らの環境が曝されているかを検証できる。この状況は、「Copy Fail」といった以前にもある脆弱性と類似しており、これもまた別個のバグを連結させていた。「Dirty Frag」に対するパッチが開発されるまで、組織は不正な権限昇進と主要な Linux ディストリビューション全体にわたるデータ漏洩を防ぐため、これらの危険なコンポーネントを能動的に取り除く必要がある。

2026/05/08 8:02

一時的に新しいソフトウェアをインストールしない方がいいかもしれません。

## Japanese Translation: この文書は、Anubis ソフトウェアリリース版 v1.25.0-46-gd3a00da のための情報クレジットとして機能し、マスコットデザインを CELPHASE に帰属させ、サイトは🇨🇦(カナダ)で❤️(愛)を持って構築されたことを示しています。また、ウェブサイトは Techaro セキュリティインフラストラクチャによって保護されていることも記載されています。これら全ての要素は、視覚的な制作の帰属、開発の場所、セキュリティパートナーシップを確認するためのアトリビューションタグとして機能し、より広い歴史的背景や分析的な文脈を提供していません。 ## Text to translate: This passage serves as an informational credit for the Anubis software release, v1.25.0-46-gd3a00da. It attributes the mascot design to CELPHASE and indicates that the site was built with ❤️ in 🇨🇦 (Canada). The text also notes that the website is protected by Techaro security infrastructure. Collectively, these elements function as attribution tags that confirm visual authorship, location of development, and security partnerships, while offering no broader historical or analytical context.