kerkour.com
Building a crawler in Rust: Building a crawler in Rust: Design and Associated Types Building a crawler in Rust: Synchronization (Atomic Types and Barriers) Building a crawler in Rust: Implementing the crawler Building a crawler in Rust: Scr...
Rust Walkthroughs
2022-04-27
~3 min read
kerkour.com
Last week we saw how to design a crawler. Today we are going to see implementation details: how to use Rust's synchrnoization primitives to make our crawler as efficient as possible. This post is an excerpt from my book Black Hat Rust Build...
Rust Walkthroughs
2022-04-20
~2 min read
kerkour.com
axum's router does not natively support hostname-based routing, which may be useful if you need to serve multiple applications with a single server. Fortunately, it's easy to compose multiple Routers to route your requests depending on the...
Rust Walkthroughs
2022-04-20
~1 min read
kerkour.com
While solving a not-so-easy lifetime problem in Rust related to async closures, I came to think: Is life too short to fight the borrow checker? I mean, don't get me wrong, I love solving problems and the beauty of efficient and correct code...
Observations/Thoughts
2022-04-13
~1 min read
kerkour.com
Building a crawler in Rust: Building a crawler in Rust: Design and Associated Types Building a crawler in Rust: Synchronization (Atomic Types and Barriers) Building a crawler in Rust: Implementing the crawler Building a crawler in Rust: Scr...
Rust Walkthroughs
2022-04-13
~4 min read
kerkour.com
Unfortunately, using threads is not a free and easy win. Concurrency issues are the fear of a lot of developers. Due to their unpredictable behavior, they are extremely hard to spot and debug. They can go undetected for a long time, and the...
Rust Walkthroughs
2022-04-06
~4 min read
kerkour.com
I sincerely believe that Rust is a huge step forward in terms of software reliability and performance, which directly translate to $$ and time saved. It solves a lot of problems that I face every day as a developer, such as immutability and...
Observations/Thoughts
2022-03-30
~1 min read
kerkour.com
This post contains excerpts from my book Black Hat Rust Now we have a mostly secure RAT, it's time to expand our reach. Until now, we limited our builds to Linux. While the Linux market is huge server-side, this is another story client-side...
Rust Walkthroughs
2022-03-30
~6 min read
kerkour.com
Rust is designed by a committee, by choice. If you ever have managed a project, you should smell the unfocused monstrosity coming from 100 KM away. And yet, after many years, I've come to the conclusion that in Rust's case, it's a huge asse...
Observations/Thoughts
2022-03-23
~1 min read
kerkour.com
I've been interested in functional programming since a friend introduced Haskell to me at University. While I never successfully learned Haskell as it's too far from what I was using day to day (C and Node.js), a new language perfectly mixi...
Rust Walkthroughs
2022-03-09
~9 min read
kerkour.com
Let us not beat around the bush: Rust is not easy to learn. I think it took me nearly 1 year of full-time programming in Rust to become proficient and no longer have to read the documentation every 5 lines of code. It's a looong journey but...
Observations/Thoughts
2022-03-02
~4 min read
kerkour.com
This post is part 3 of the series: The foundations of end-to-end encryption and contains excerpts from my book Black Hat Rust about Security, Rust and Cryptography. When 2 parties, let's say Alice and Bob, want to exchange messages over an...
Rust Walkthroughs
2022-03-02
~3 min read
kerkour.com
Recurrent jobs For recurrent jobs (a.k.a. CRON jobs), I use the lightspeed_scheduler crate. let job = Job::new("kernel", "dispatch_delete_old_data", Some(3), move || { let kernel_service_inner = kernel_service.clone(); Box::pin(async move {...
Rust Walkthroughs
2022-03-02
~1 min read
kerkour.com
Table of contents The frameworks Performance Ecosystem and Community JSON deserialization Routing Middleware State Conclusion Want to learn Rust, Cybersecurity and Cryptography? Get my book Black Hat Rust! The frameworks as of February 2022...
Rust Walkthroughs
2022-02-23
~6 min read
kerkour.com
Rust is loved for its reliability, and a good chunk of its reliability comes from its error handling ergonomics. I know that there already are a few guides about error handling in Rust, but I found these guides to be too long and not straig...
Observations/Thoughts
2022-02-09
~4 min read
kerkour.com
This post is part 2 of the series: The foundations of end-to-end encryption and contains excerpts from my book Black Hat Rust about Security, Rust and Cryptography. Building an end-to-end encrypted service Let's say we want to build a servi...
Rust Walkthroughs
2022-02-09
~2 min read
kerkour.com
Rust is a rather large and complex programming language with a lot of features. But I have good news: less than 20% of the features will bring you more than 80% of the results. Here are the features I consider indispensable to learn when yo...
Observations/Thoughts
2022-02-02
~4 min read
kerkour.com
Last week, we saw the difference between Cooperative and Preemptive scheduling and how it enables resources-efficient I/O operations. Today, we are going to learn how runtimes work under the hood. This post contains excerpts from my book Bl...
Miscellaneous
2022-02-02
~3 min read
kerkour.com
Threads were designed to parallelize compute-intensive tasks. However, these days, a lot of applications (such as a network scanner) are I/O (Input / Output) intensive. Thus, threads have two significant problems: They use a lot of memory (...
Observations/Thoughts
2022-01-26
~3 min read
kerkour.com
There are many architectural patterns to design web applications. A famous one is the "Clean Architecture" by Robert C. Martin This architecture splits projects into different layers in order to produce systems that are Independent of Frame...
Rust Walkthroughs
2022-01-26
~6 min read