frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

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

https://github.com/Skyvern-AI/rustwright
7•suchintan•1d ago
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 that 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

Comments

yodon•53m ago
Given all the recent press about bun rewriting 500k lines of zig into rust at a cost of $165K tokens of Fable in an 11 day sprint, would be super interested to hear about your experience and approach.
suchintan•28m ago
We did the same thing. It took me a few iterations to get the library right, but overall I used approx 10 billion tokens here across a codex and Claude max plan

The first iteration was a rewrite using codex /goal but it ended up producing junk

The second iteration was fable controlling gpt-5.5 agents to write the code with really strong acceptance tests. This pushed the library in the right direction and is basically what you see here today

Kimi K3 is now live

https://www.kimi.com/en
673•vincent_s•5h ago•373 comments

Microsoft Comic Chat is now open source

https://opensource.microsoft.com/blog/2026/07/16/microsoft-comic-chat-is-now-open-source/
317•jervant•4h ago•77 comments

Decoy Font

https://www.mixfont.com/experiments/decoy-font
194•ray__•3h ago•68 comments

NotebookLM is now Gemini Notebook

https://blog.google/innovation-and-ai/products/gemini-notebook/notebooklm-gemini-notebook/
129•xnx•4h ago•80 comments

Detecting LLM-Generated Texts with “Classical” Machine Learning

https://blog.lyc8503.net/en/post/llm-classifier/
98•uneven9434•3h ago•69 comments

OnePlus halts operations in USA and Europe

https://community.oneplus.com/thread/2170715118587871237
467•pilililo2•9h ago•263 comments

Immersive Linear Algebra Book with Interactive Figures (2015)

https://immersivemath.com/ila/
92•srean•4h ago•14 comments

The lost joy of music piracy

https://www.pigeonsandplanes.com/read/music-piracy-what-cd-oink-nine-inch-nails-streaming
735•mcgin•15h ago•486 comments

How Our Rust-to-Zig Rewrite Is Going

https://rtfeldman.com/rust-to-zig
306•jorangreef•8h ago•168 comments

Goes-19 weather satellite enters Safe Hold mode

https://www.spaceweather.gov/news/goes-19-safe-hold
127•yabones•6h ago•63 comments

How to Train a Gen AI Kick Drum Model on Your Old Linux Desktop with 6GB VRAM

https://www.zhinit.dev/blog/training-a-kick-drum-diffusion-model
65•zhinit•4h ago•40 comments

Adaptional (YC S25) Is Hiring

https://www.ycombinator.com/companies/adaptional/jobs
1•acesohc•3h ago

Show HN: Leaves – A text-UI disk usage treemap visualizer

https://github.com/patonw/leaves
44•patonw•4h ago•12 comments

Optimizing Lua string literals to save 400 bytes

https://purplesyringa.moe/blog/guest/optimizing-lua-string-literals-to-save-400-bytes/
13•ibobev•3d ago•1 comments

Guide to data tools landscape for developers

https://sinja.io/blog/data-landscape-guide-for-developers
83•OlegWock•5h ago•24 comments

Sony deletes more movies from the accounts of people who ‘bought’ them

https://www.techdirt.com/2026/07/15/sony-deletes-a-bunch-more-movies-from-the-accounts-of-people-...
480•nekusar•7h ago•293 comments

Launch HN: Traceforce (YC S26) – Company-wide security monitoring for AI apps

15•XiaHua•3h ago•8 comments

Schema Harness Achieves ~99% on Arc‑AGI‑3 Public

https://schema-harness.github.io/
54•jasondavies•4h ago•24 comments

Let's Build PlanetScale from Scratch: Infrastructure

https://onatm.dev/2026/07/16/homescale-part-1/
122•onatm•8h ago•18 comments

Ente – Opening Our Books

https://ente.com/open/
197•Sherex•9h ago•71 comments

Human Canaries: Remembering the Munitionettes

https://www.historytoday.com/archive/great-debates/human-canaries-remembering-munitionettes
17•Thevet•2d ago•0 comments

German AI consortium releases Soofi S, an open 30B model that tops benchmarks

https://the-decoder.com/german-ai-consortium-releases-soofi-s-an-open-30b-model-that-tops-benchma...
64•amai•2h ago•10 comments

Cottage Computer Programming (1984)

https://www.atariarchives.org/deli/cottage_computer_programming.php
24•lioeters•4d ago•5 comments

Agent-talk: Enabling coding agents to work together

https://github.com/xhluca/agent-talk
25•xhluca•3h ago•10 comments

GC shape stenciling in Go generics

https://rednafi.com/go/gc-shape-stenciling/
37•ingve•4d ago•9 comments

56,000 lines of DOOM, in a language I made up

https://betlang.dev/about/
28•ghuntley•3h ago•19 comments

1,300 Beautiful Wildlife Illustrations from the 19th Century Now Restored

https://www.openculture.com/2026/07/explore-1300-beautiful-wildlife-illustrations-from-the-19th-c...
230•gslin•16h ago•45 comments

Teardown: A Generic 7-Port USB 3.0 Hub That Wasn't

https://goughlui.com/2026/07/09/teardown-a-generic-7-port-usb-3-0-hub-that-wasnt/
192•speckx•4d ago•89 comments

CD Sales Growth Outpaced Vinyl in the First Half of 2026

https://consequence.net/2026/07/the-cd-revival-is-getting-hard-to-ignore/
8•speckx•2h ago•4 comments

Show HN: A modern port of Linux to a ten-year-old QWERTY phone

24•tmzt•3h ago•4 comments