Skyvern-AI/rustwright

Playwright's API on a Rust CDP engine — Chromium browser automation for Python & Node, no driver subprocess. (Alpha)

解決する課題

Rustwright は、Chromium ブラウザを自動操作するための高パフォーマンスなドロップイン置き換えツールです。Node.js ドライバープロセスの必要性を排除することで、実行速度の低下やメモリ使用量の増加を防ぎます。また、ウェブサイトがボットを検出するために使用する「自動化フィンガープリント」を低減し、ブラウザ自動化をより静かに実行可能にします。

動作方法

Node ドライバー経由でのコマンドパイプではなく、Tokio を基盤とするネイティブ Rust エンジンを使用し、Chrome DevTools Protocol (CDP) を介して Chromium と直接通信します。Python および Node.js 用の軽量バインディングを提供し、開発者が馴染み深い Playwright API を使いながらも、ネイティブ Rust コアの利点を享受できます。

対象ユーザー

  • AIエージェント開発者: HTML の生データではなく、コンパクトなアクセシビリティスナップショットや要素参照(element references)を用いてウェブと対話する必要がある開発者。
  • 自動化エンジニア: ブラウザ自動化タスクにおいて、より高速な実行速度と低メモリオーバーヘッドを求める開発者。
  • ウェブスクレイピング/自動化スペシャリスト: Playwright 固有の検出シグネチャを回避したいユーザー。

主な特徴

  • パフォーマンス: ローカル診断では、playwright-python と比較して最大 2.55 倍高速で、メモリ使用量は約 70% 少ない。
  • エージェント対応: ネイティブ MCP(Model Context Protocol)サーバーとエージェント用 CLI を搭載。要素参照(e1, e2)を使ってブラウザを制御可能。
  • ステルス性: Playwright 固有のドライバーシグネチャを削除し、デフォルトでヘッドレスのアイデンティティを正規化。
  • 相互運用性: Playwright Python 同期 API の大部分(約 96%)と互換性あり。
  • 信頼性の高い入力: クリックや入力のデフォルトでは、合成 DOM 呼び出しではなく、実際の CDP 入力イベントを使用。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト