HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
Skyvern-AI
rustwright
Python2026–2026
Skyvern-AI / rustwright

rustwright

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

2Distinct people
3Mentions
0Explicit recommenders
953GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

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

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:03:16 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by week3 dated mentions

Observed mentions: 2026-07-15 16:57:28 UTC to 2026-08-16 12:51:59 UTC. Weeks start Monday, UTC.

0122026-07-13 00:00:00 UTC to 2026-07-20 00:00:00 UTC (exclusive): 2 mentions; 2 submissions, 0 commentsJul 132026-07-20 00:00:00 UTC to 2026-07-27 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-07-27 00:00:00 UTC to 2026-08-03 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsJul 272026-08-03 00:00:00 UTC to 2026-08-10 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-08-10 00:00:00 UTC to 2026-08-17 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 commentsAug 10

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Jul 132026-07-13 00:00:00 UTC2026-07-20 00:00:00 UTC220
Jul 202026-07-20 00:00:00 UTC2026-07-27 00:00:00 UTC000
Jul 272026-07-27 00:00:00 UTC2026-08-03 00:00:00 UTC000
Aug 32026-08-03 00:00:00 UTC2026-08-10 00:00:00 UTC000
Aug 102026-08-10 00:00:00 UTC2026-08-17 00:00:00 UTC110

What Hacker News says

3 sources
suchintan·Jul 15, 2026Submission

Rustwright: Playwright rewritten in Rust that uses 70% less memory

Hey everyone, Suchintan from Skyvern (YC S23) here. We're open sourcing something we built internally: Rustwright: Playwright on an in-process Rust CDP engine. It’s a full rewrite of Playwright in Rust using CDP, which consumes 70% less memory than Playwright’s node driver, and is 2.55x faster to boot. We run a lot of browser automations at Skyvern, and while we were doing some performance tuning, we realized the playwright driver was the source of a lot of wasted memory and CPU cycles. We built Rustwright to solve that problem, and instead of making it an internal library, we thought this might be valuable to the open source community The core idea fits in two lines: playwright-python: your code ──pipe──► Node driver ──CDP──► Chrome rustwright: your code ─────── raw CDP ────────► Chrome The way playwright-python works is tha
Read the rest
t it pipes every call through a bundled Node driver process. This brings its own added memory / cpu overhead, whereas Rustwright drives Chrome over raw CDP from a Rust core, effectively skipping that overhead. Replacing Playwright’s node driver with a direct CDP connection changes three things: 1. Less abstraction means less complexity. The driver subprocess and its pipe sends CDP commands straight to Chrome instead of going through a middle layer with its own overhead. In our experimentation, the new engine is approx. 2.55× faster and uses 70% less memory than playwright 2. No Playwright driver fingerprint. Stock playwright screamed “I’m a bot” as anyone used it, and while well intentioned, created a frustrating rite of passage for new developers. With this rewrite, the driver doesn’t exist, so its famous signatures (__playwright__binding__ globals, Runtime.enable on the default path (the well-known console-serialization leak)) don’t exist. We just want to be clear: this means there are no Playwright-specific automation fingerprints, the library is not "undetectable" 3. An interoperable rust wrapper makes migration easy: Because rustwright is meant to be interoperable with Playwright, a developer does not need to migrate every callsite to direct CDP. Instead, they can just a one-line import change: from rustwright.sync_api import sync_playwright.All events (clicking / typing) go through the rust shim and execute real CDP calls (not synthetic DOM calls). Complex cases like cross-origin iframes also auto-attach with frame_locator() routing across origins, as you would want them to. Rustwright is built on Tokio (WebSocket, plus opt-in Unix-pipe transport) and the bindings are exposed to other languages in-process through thin language specific bindings (eg PyO3 bindings for Python and napi-rs bindings for Node). We’re planning on adding support for more languages soon :) Want to give it a try? Change one line of code! pip install rustwright - from playwright.sync_api import sync_playwright + from rustwright.sync_api import sync_playwright Let us know what you think: https://github.com/Skyvern-AI/rustwright
12 points · Open discussion

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.