git404hub

what is rakers fr?

tbro/rakers — explained in plain English

Analysis updated 2026-05-18

16RustAudience · developerComplexity · 3/5Setup · easy

tl;dr

Rust CLI that runs a page's JavaScript with QuickJS or Boa and prints the post-render HTML, as a lightweight prerender alternative to headless browsers.

vibe map

mindmap
  root((rakers))
    Inputs
      URL
      HTML file
      Piped stdin
    Outputs
      Rendered HTML
      JSON report
      Diff view
      Clean snapshot
    Use Cases
      Crawler prerender
      Scraper of SPA pages
      Static archival
    Tech Stack
      Rust
      html5ever
      QuickJS
      Boa

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

what do people make with this?

VIBE 1

Prerender a React or Vue SPA so a crawler can read the visible text

VIBE 2

Pipe HTML through rakers in a scraper pipeline without spinning up a browser

VIBE 3

Diff the raw and post-script HTML of a page to debug client-side rendering

VIBE 4

Produce a clean static snapshot for archival or search indexing

what's the stack?

Rusthtml5everQuickJSBoa

how it stacks up fr

tbro/rakerscelestia-island/ratatui-markdowndollspace-gay/thermite
Stars161616
LanguageRustRustRust
Setup difficultyeasyeasyhard
Complexity3/52/55/5
Audiencedeveloperdeveloperresearcher

Figures from each repo's GitHub metadata at analysis time.

how do i run it?

Difficulty · easy time til it works · 5min

Prebuilt binaries cover Linux x86-64 and Apple Silicon, building from source needs cargo and, for QuickJS, a C toolchain.

in plain english

Rakers is a small command-line program written in Rust that takes a web page that depends on JavaScript and returns the page after the JavaScript has finished running. Many modern websites send back a near-empty HTML shell and then build the visible content with code from frameworks like React, Vue, Angular, Svelte, or Preact. Rakers simulates running that code so the result is plain HTML that a search crawler, scraper, or archival tool can read without needing a real browser. The project is sold on two numbers: starting up in milliseconds rather than 1 to 2 seconds, and using around 10 megabytes of memory rather than around 300. The README is clear that it gets these numbers by giving up some compatibility breadth. Page parsing is done by html5ever, the same HTML5 parser used inside the Servo browser project. JavaScript execution uses one of two engines, picked when the program is built: QuickJS, a small C engine wrapped in Rust, which is the default, or Boa, a pure-Rust engine that needs no C compiler but may stop working on large modern bundles. Using the tool is direct. You can pass it a URL, an HTML file, a JavaScript file, or you can pipe HTML on standard input. By default it prints the rendered HTML to standard output, but the -o flag writes to a file. Other flags let you set the user agent, add request headers, limit how many external scripts get fetched, set a per-script time limit, or filter the output to elements that match a CSS selector. Three output modes are useful for different jobs. The pretty flag indents the HTML for human reading. The json flag returns a small object with the raw size, the rendered size, and the HTML string, which is handy for scripts. The diff flag shows a side-by-side comparison of the page before and after running scripts. A clean mode strips out script tags and preload hints to produce a static snapshot like the kind that prerendering services give to search bots. Installation is either downloading a single prebuilt binary for Linux x86-64 or macOS Apple Silicon, or building from source with cargo install.

prompts (copy fr)

prompt 1
Walk me through using rakers to prerender a Next.js page from a URL and save the cleaned HTML
prompt 2
Help me pick between the QuickJS and Boa engines in rakers for a heavy modern bundle
prompt 3
Show me how to filter rakers output to a CSS selector and emit the diff mode
prompt 4
Help me wire rakers into a Rust scraping pipeline that streams pages over stdin

Frequently asked questions

what is rakers fr?

Rust CLI that runs a page's JavaScript with QuickJS or Boa and prints the post-render HTML, as a lightweight prerender alternative to headless browsers.

What language is rakers written in?

Mainly Rust. The stack also includes Rust, html5ever, QuickJS.

How hard is rakers to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is rakers for?

Mainly developer.

peek the repo → explain another one

This repo across BitVibe Labs

double-check against the repo, no cap.