Abstract
Many developers entertain the notion that they could write a 'curl' clone in a weekend. After all, how hard could it be to send a network request and print the result?
In reality, they vastly oversimplify the intricacies involved.
My command-line tool lychee, an async Rust link checker, initially anticipated as a weekend venture, has now extended into two years and still counting.
This journey unveils the deceptive complexity of what appears to be a rudimentary task on the surface.
Throughout the developmental process, I encountered a plethora of challenges that added layers of complexity. Some of these included handling rate limiting, navigating around incorrect status codes, mastering the art of URL parsing, dealing with timeouts, and grappling with client-side rendering using JavaScript.
We will go through each of these challenges step by step, and explore the Weirdness of the Web.
Furthermore, we delve into the essential skills required in the development process, exploring the often-overlooked aspects of funding open-source projects and the relentless world of open-source maintenance. These insights shine a light on the harsh realities and the hidden rewards of this crucial part of software development.
The rabbit hole goes deep. How deep, you ask?
Join the talk to find out.