Skip to content
FDFerdinand Dero Saputra
All workid

Case study — 03

ftrack

A web archiver in Rust that crawls URLs in parallel, writes WARC archives, and flags leaked secrets and API endpoints.

Role
Systems tool · personal project
Year
2026
Stack
RustTokioSQLiteChromium

01 — Context

Archiving a site for audit or preservation takes more than a recursive download. Modern sites render in JavaScript, and the output has to follow a standard other preservation tools can read.

02 — Approach

  1. 01

    Parallel crawl under a bound

    Tokio tasks run under a JoinSet and a Semaphore, so many URLs are processed at once without overwhelming the machine.

  2. 02

    Headless Chromium for SPAs

    Pages run their JavaScript before capture, so single-page apps are archived with the content a visitor actually sees.

  3. 03

    Detection rules as data

    Secret and endpoint signatures live in YAML files, so they can change without recompiling the tool.

03 — Outcome

Archives follow ISO 28500 (WARC) for interoperability with other preservation tools. Crawl state is kept in SQLite, so later runs proceed incrementally.

ISO 28500 archive format
WARC
async parallel crawling
Tokio
editable detection rules
YAML
Source on GitHub
PreviousAegisX-MiniNextdhybrid-agent
  • Blog
  • Contact
  • Resume

© 2026 Ferdinand Dero Saputra — built in Next.js & Tailwind

--:--Back to top ↑