{"guid":"22e6795c-c2fa-4959-89ac-8932939fe4c7","title":"Writing a link checker in Rust in a weekend (plus two years)","subtitle":null,"slug":"froscon2023-2867-writing_a_link_checker_in_rust_in_a_weekend_plus_two_years","link":"https://programm.froscon.org/2023/events/2867.html","description":"Many developers suffer from the \"curl\" syndrome: they think they could\nwrite curl on a weekend. After all, how hard could it be to send a network request and print the result?\nI thought the same when I started writing a link checker called lychee in async Rust. After just one weekend (and two more short years) I got the basics to work. Follow me on my journey through the weirdness of the web and how seemingly simple things can get complex pretty quickly.\n\n\n\nHow hard could it be?\n\nThat's a question a lot of developers routinely ask when they look at a seemingly simple task like writing a \"curl clone\" or a word count tool. As developers, we often underestimate the amount of work it takes to build a fast, robust and correct tool from scratch, which handles all the real-world edge cases.\n\nBy sharing the trials and tribulations of my development process, I aim to shed light on the reality of software development, the importance of appreciating the work done by countless open-source developers, and the skills needed to successfully navigate the path from concept to functional tool. I will also briefly touch on the difficulties of funding such open source projects.\n\n","original_language":"eng","persons":["Matthias Endler"],"view_count":248,"promoted":false,"date":"2023-08-06T15:15:00.000+02:00","release_date":"2023-08-06T00:00:00.000+02:00","updated_at":"2026-03-23T13:00:05.766+01:00","tags":["froscon2023","2867","2023","Development"],"length":3252,"duration":3252,"thumb_url":"https://static.media.ccc.de/media/events/froscon/2023/2867-22e6795c-c2fa-4959-89ac-8932939fe4c7.jpg","poster_url":"https://static.media.ccc.de/media/events/froscon/2023/2867-22e6795c-c2fa-4959-89ac-8932939fe4c7_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/froscon/2023/2867-22e6795c-c2fa-4959-89ac-8932939fe4c7.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/froscon/2023/2867-22e6795c-c2fa-4959-89ac-8932939fe4c7.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/froscon2023-2867-writing_a_link_checker_in_rust_in_a_weekend_plus_two_years","url":"https://api.media.ccc.de/public/events/22e6795c-c2fa-4959-89ac-8932939fe4c7","conference_title":"FrOSCon 2023","conference_url":"https://api.media.ccc.de/public/conferences/froscon2023","related":[],"recordings":[{"size":485,"length":3252,"mime_type":"video/webm","language":"eng","filename":"froscon2023-2867-eng-Writing_a_link_checker_in_Rust_in_a_weekend_plus_two_years_webm-hd.webm","state":"new","folder":"webm-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2023-08-06T22:06:55.605+02:00","recording_url":"https://cdn.media.ccc.de/events/froscon/2023/webm-hd/froscon2023-2867-eng-Writing_a_link_checker_in_Rust_in_a_weekend_plus_two_years_webm-hd.webm","url":"https://api.media.ccc.de/public/recordings/68543","event_url":"https://api.media.ccc.de/public/events/22e6795c-c2fa-4959-89ac-8932939fe4c7","conference_url":"https://api.media.ccc.de/public/conferences/froscon2023"},{"size":181,"length":3252,"mime_type":"video/webm","language":"eng","filename":"froscon2023-2867-eng-Writing_a_link_checker_in_Rust_in_a_weekend_plus_two_years_webm-sd.webm","state":"new","folder":"webm-sd","high_quality":false,"width":720,"height":576,"updated_at":"2023-08-06T18:13:53.862+02:00","recording_url":"https://cdn.media.ccc.de/events/froscon/2023/webm-sd/froscon2023-2867-eng-Writing_a_link_checker_in_Rust_in_a_weekend_plus_two_years_webm-sd.webm","url":"https://api.media.ccc.de/public/recordings/68471","event_url":"https://api.media.ccc.de/public/events/22e6795c-c2fa-4959-89ac-8932939fe4c7","conference_url":"https://api.media.ccc.de/public/conferences/froscon2023"},{"size":49,"length":3252,"mime_type":"audio/mpeg","language":"eng","filename":"froscon2023-2867-eng-Writing_a_link_checker_in_Rust_in_a_weekend_plus_two_years_mp3.mp3","state":"new","folder":"mp3","high_quality":false,"width":0,"height":0,"updated_at":"2023-08-06T17:47:23.887+02:00","recording_url":"https://cdn.media.ccc.de/events/froscon/2023/mp3/froscon2023-2867-eng-Writing_a_link_checker_in_Rust_in_a_weekend_plus_two_years_mp3.mp3","url":"https://api.media.ccc.de/public/recordings/68454","event_url":"https://api.media.ccc.de/public/events/22e6795c-c2fa-4959-89ac-8932939fe4c7","conference_url":"https://api.media.ccc.de/public/conferences/froscon2023"},{"size":32,"length":3252,"mime_type":"audio/opus","language":"eng","filename":"froscon2023-2867-eng-Writing_a_link_checker_in_Rust_in_a_weekend_plus_two_years_opus.opus","state":"new","folder":"opus","high_quality":false,"width":0,"height":0,"updated_at":"2023-08-06T17:47:04.265+02:00","recording_url":"https://cdn.media.ccc.de/events/froscon/2023/opus/froscon2023-2867-eng-Writing_a_link_checker_in_Rust_in_a_weekend_plus_two_years_opus.opus","url":"https://api.media.ccc.de/public/recordings/68453","event_url":"https://api.media.ccc.de/public/events/22e6795c-c2fa-4959-89ac-8932939fe4c7","conference_url":"https://api.media.ccc.de/public/conferences/froscon2023"},{"size":141,"length":3252,"mime_type":"video/mp4","language":"eng","filename":"froscon2023-2867-eng-Writing_a_link_checker_in_Rust_in_a_weekend_plus_two_years_sd.mp4","state":"new","folder":"h264-sd","high_quality":false,"width":720,"height":576,"updated_at":"2023-08-06T17:45:37.103+02:00","recording_url":"https://cdn.media.ccc.de/events/froscon/2023/h264-sd/froscon2023-2867-eng-Writing_a_link_checker_in_Rust_in_a_weekend_plus_two_years_sd.mp4","url":"https://api.media.ccc.de/public/recordings/68450","event_url":"https://api.media.ccc.de/public/events/22e6795c-c2fa-4959-89ac-8932939fe4c7","conference_url":"https://api.media.ccc.de/public/conferences/froscon2023"},{"size":505,"length":3252,"mime_type":"video/mp4","language":"eng","filename":"froscon2023-2867-eng-Writing_a_link_checker_in_Rust_in_a_weekend_plus_two_years_hd.mp4","state":"new","folder":"h264-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2023-08-06T17:24:21.970+02:00","recording_url":"https://cdn.media.ccc.de/events/froscon/2023/h264-hd/froscon2023-2867-eng-Writing_a_link_checker_in_Rust_in_a_weekend_plus_two_years_hd.mp4","url":"https://api.media.ccc.de/public/recordings/68434","event_url":"https://api.media.ccc.de/public/events/22e6795c-c2fa-4959-89ac-8932939fe4c7","conference_url":"https://api.media.ccc.de/public/conferences/froscon2023"}]}