Repolode
go-rod

go-rod/rod

A Go library that drives Chrome through the DevTools Protocol for web automation and scraping, with auto-waiting and browser download.

Stars
7,136
Forks
489
Open issues
216
Last commit
3 months ago

What is it?

Rod is a high-level driver built directly on the Chrome DevTools Protocol, aimed at web automation and scraping in Go. It offers a chained, context-based API so long-running tasks can be easily timed out or cancelled, and elements are waited on automatically before actions run.

Beyond basic control, Rod includes higher-level helpers such as WaitStable, WaitRequestIdle, HijackRequests and WaitDownload. It can correctly handle nested iframes and shadow DOMs, and it can find or download a browser automatically through its launcher package. The library is documented as thread-safe, and its low-level packages can be used to build custom tooling.

Rod's maintainers note 100% test coverage enforced in CI, and a leakless mechanism is used so that a crash does not leave browser processes behind. Documentation, an API reference and a Chinese API doc are provided.

Key features

  • 01Chained context API for setting timeouts and cancelling long-running tasks.
  • 02Automatically waits for elements to be ready before acting on them.
  • 03Finds or downloads a browser automatically via the launcher package.
  • 04Helpers for request hijacking, download waiting and stable-page detection.
  • 05Handles nested iframes and shadow DOMs.
  • 06Avoids leftover browser processes after a crash.

Use cases

  • Scraping data from JavaScript-heavy websites in a Go service.
  • Writing end-to-end browser tests in Go.
  • Automating repetitive web workflows such as form filling or downloads.
  • Building custom browser automation tools on top of the low-level CDP packages.

In collections

Topics

FAQ

What is rod?
A Go library that drives Chrome through the DevTools Protocol for web automation and scraping, with auto-waiting and browser download. Rod is a high-level driver built directly on the Chrome DevTools Protocol, aimed at web automation and scraping in Go. It offers a chained, context-based API so long-running tasks can be easily timed out or cancelled, and elements are waited on automatically before actions run.
Is rod free to use? What license does it have?
rod is open source under the MIT license. Check the license terms before using it in commercial products.
Is rod still maintained?
Updated within 6 months. The last commit to rod was on Aug 11, 2026.
What can I use rod for?
Scraping data from JavaScript-heavy websites in a Go service. Writing end-to-end browser tests in Go. Automating repetitive web workflows such as form filling or downloads. Building custom browser automation tools on top of the low-level CDP packages.
Where can I get rod?
The source code and installation instructions are on GitHub: https://github.com/go-rod/rod

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects