BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Meta社、Rustで構築された高性能なPython型チェッカー「PyreFly」をオープンソース化

Meta社、Rustで構築された高性能なPython型チェッカー「PyreFly」をオープンソース化

原文リンク(2025-05-27)

現在アルファ版であるPyreflyは、Meta社が開発した新しいオープンソースのPython型チェッカーで、最大限のパフォーマンスを実現するためにRustで構築されている。Pyre、Pyright、MyPyといったツールに触発されており、以前Instagramのコードベースで使用されていたOCamlベースの型チェッカーPyreを置き換えることを目的としている。

私たちは、インクリメンタル計算のためのカスタムエンジンを構築し、漸進的型付け理論に関する長年の経験とRustの専門知識を基に型チェックアルゴリズムを設計しました。この技術をオープンソース化することで、あらゆる規模のプロジェクトに役立つことを願っています。

Meta社のエンジニアによると、Pyrefly開発の主な動機は、応答性の高いIDE型チェックをサポートする必要性にあった。Instagramの型システムが複雑化するにつれて、従来のPyreではこれを実現することがますます困難になっていたためだ。

私たちは代替ソリューションを模索し、コードナビゲーションのためにPyrightのようなコミュニティツールを活用しました。しかし、コードナビゲーション、大規模な型チェック、他のサービスへの型のエクスポートを可能にする拡張性のある型チェッカーの必要性が高まり、Pyreflyの開発をゼロから始めることにしました。

Pyreflyは高性能を追求して設計されており、効率を最大化するためにRustで実装されている。Meta社によれば、Pyreflyは大規模なコードベースにおいて1秒間に180万行のコードが確認可能であり、これにより、キー入力ごとに型チェックを実行することが可能になる。

Meta社のベンチマークによると、PyreflyはInstagramのコードベース全体を13.4秒で型チェックできるのに対し、Pyreでは100秒以上かかる。同様に、PyreflyはPyTorchの型チェックをわずか2.4秒で完了するが、Pyrightでは35.2秒、MyPyでは48.1秒かかる。

Meta社は性能面以外にも、安全性、クロスプラットフォーム対応、そしてブラウザーベースのPlaygroundエクスペリエンスを実現するWebAssemblyへのコンパイル機能から、Pyreflyの構築にRustを選択した。

Pyreflyは、注釈付きのPythonコードベースの型チェックに加えて、注釈のないコードにも役立つことを目指している。そのため、Pyreflyは戻り値やローカル変数の型を自動的に推論し、開発者が希望すれば推論された型をコードに明示的に挿入可能だ。

Meta社は、未解決のバグと開発中の機能のため、Pyreflyをアルファ版としてリリースしましたが、今夏にはベータ版への移行を予定している。また、Visual Studio Code用の拡張機能はVisual Studio Marketplaceで入手できる。

PyreflyはRustで書かれた唯一のPython型チェッカーではない。開発者ツールを専門とする会社Astral社は、最近Tyをプレビュー版として公開した。TyはPythonの公式仕様に基づいてRustで書かれた手書きのパーサーを使用している。また、試してみたい方のためにプレイグラウンドも提供している。Astral社が開発したその他のツールには、Rustで書かれたRuffリンターuvパッケージマネージャーがある。

作者について

この記事に星をつける

おすすめ度
スタイル

特集コンテンツ一覧

BT