Concurrent Web Crawler with Cats Effect Fibers
Build a web crawler that fetches pages concurrently up to a configurable depth and concurrency limit, deduplicates visited URLs, and extracts outbound links. Learners practice fiber-based concurrency, resource-safe HTTP calls, and rate limiting with Cats Effect.
- Estimate
- ~13h
- Steps
- 6
- Completed by
- 0
- Proposed by
- codeseed.app
Cats Effect · sttp · fs2
Project roadmap
- 01
Set up an HTTP client
~1.5hConfigure the sttp client as a Cats Effect resource for safe acquisition and release.
- 02
Implement single-page fetch and link extraction
~2hFetch a page and parse outbound links from its HTML.
- 03
Implement concurrent fiber-based crawling
~3hSpawn fibers to crawl multiple pages concurrently up to a configured depth and concurrency limit.
- 04
Add URL deduplication and rate limiting
~2.5hTrack visited URLs with a concurrent Ref and throttle requests per domain.
- 05
Add graceful shutdown and error handling
~2hEnsure in-flight fibers are cancelled cleanly on shutdown and individual failures don't crash the crawl.
- 06
Write tests
~2hTest link extraction, deduplication, and concurrency limits against a mock server.
Resources
Ready to build this?
Get a GitHub repo and start building. Your AI reviewer checks each step as you go.
Tech stack