RSSAmplifier

Blog

Sylvain Kerkour

(Ab)using technology for fun & profit.

kerkour.comRSS feed ↗50 posts

Latest posts

Failure of the week: encoding images to AVIF without keeping the originals

I was reading about the AV1 video codec and the derived AVIF image format and decided to experiment with it. The results are impressive: PNG file size can be divided

Building scalable backend services with Rust and PostgreSQL

While Rust is not as productive as Go and its legendary standard library to write backend service, Rust's rich type system, compiler-enforced correctness and zero-cost abstraction make it a great

How Firecracker microVMs work under the hood to sandbox untrusted code and AI agents

Between user code and rogue AI agents, there recently has been huge regain in interest for sanboxing solutions. We've seen last time how to use landlock to drop the privileges

Diskless infrastructure

In the same way that correct software architecture can bring many benefits in terms of costs and performance, a good architecture for infrastructure can significantly improve the reliability and reduce

Writing everyday against the global lobotomy

AI. The risks are real. (just kidding, this article is 100% human produced) How? I have a huge backlog of ideas to write about. The most important part is to

Rust service hardening and production checklist

There isn't a lot of resources about how to actually deliver Rust projects to your users: workflows, security hardening and artifacts management, so here is the checklist I use to

Are 128-bit symmetric keys really secure against quantum computers?

Quantum computers are a threat to traditional cryptography, more specifically to asymmetric cryptography (signatures and key exchanges) with Shor's algorithm enabling fast factoring of big numbers.

Optimize the common cases

One thing I've learned working on https://github.com/rust-stdx/stdx (Rust's extended standard library), is that libraries often have common cases that are worth optimizing for.

Go releases are exciting (especially 1.27)

Go 1.27rc2 was released 10 days ago and Go 1.27 is due for August. Let's be honest, this release is freaking awesome! Generic methods? Yeah! UUID in the standard library?

From microservice to subprocess

You were going to pack your bag and go back home when your manager stops you and tell you about this new feature. To surf the meme wave, you will

Understanding the Rust hype for the busy developer

First, let's be clear, this post is not intended to fuel any programming language holy war. I wrote this post because I've sometime been late to understand the benefits of

The discourse about software craftsmanship conveniently ignores distribution

I've always considered myself a software craftsman. I love clean APIs, efficient code and great user experience. If our entire world is about to be rewritten in Rust governed by

Even if 90% of AI-discovered vulnerabilities are made up, it's still terrifying

Developers working on popular projets are inundated with hallucinated vulnerability reports, leading people to downplay the risks associated with AI-assisted vulnerability hunting. But hear me out: it should wake you

Momentum is why the spice continues to flow

People are sometime wondering how I can be so 'productive' with my blog (granted that publishing brainfarts can be called 'produtivity'). Come here, I will tell you my secret. I

smallvec is probably one of the most underrated Rust crates

Hear me out: While Rust, the language, gives you all you need to build libraries and programs that can scale from microcontrollers to big servers and everything in between, in

Investigating why RustCrypto is slow: Deep dive into SIMD instructions and hardware acceleration

Now that I have your attention, let's be clear, RustCrypto packages are not 'slow', they are most probably 'fast enough' for your use case. Yet, I couldn't unsee how faster

S3 is a better abstraction than NFS / networked block storage

While I agree that S3 is far from perfect and I would love to see a newer S4, the Super Simple Storage Service, from what we've learned in the past

High-performance Rust: Understanding and eliminating heap fragmentation

I'm currently working on a TLS (Transport Layer Security) implementation for stdx (Rust's extended standard library), and one of the main requirements is to be able to use it on

Deep dive into iroh: A replacement for WireGuard or a P2P layer for your application?

Just last week, the iroh project announced the release of its v1.0. What is iroh? Well, I'm glad you're asking because it's a very interesting project that I'm following for

QUIC is much more than a replacement for TCP

Most of the literature about QUIC RFC 9000 describes it as a replacement for TCP + TLS, with the traditional use case of communication over IP in mind. It's true,

Hashing at 130 GB/s with XXH3, Rust and AVX-512

I just ran a quick benchmark comparing the different xxHash hashing functions on an AMD Zen 5 EPYC processor (in pure Rust, from https://github.com/rust-stdx/stdx), and Ho My G..., XXH3 is

Why stdx is not on crates.io

Why stdx is not on crates.io While I think that the xxx aspect of stdx has been well received, a lot of Rust developers were suffering with the current status

BLAKE3 at 13GB/s on Zen 5

Just ran a quick benchmark comparing different hashing functions on a Zen 5 EPYC processor (in pure Rust, from https://github.com/rust-stdx/stdx), and Ho My G..., BLAKE3 on Zen 5 is crazy

All they wanted is faster horses

When something is so obvious to you, and yet the status quo is moving in the opposite direction, congratulations, you have found an opportunity. Tt's time to get your hands

Git commit prompt injection

It's now common knowledge that LLMs / AI agents are vulnerable to all kind of injections, so attackers are being more and more creative to find new entrypoints. One commonly

Announcing stdx, Rust's extended standard library: simplicity, performance and supply chain security for everyone

From embedded firmware (where it's badly needed) to big servers passing by cross-platform applications used by billions of people, the foundations of the computing stack are being rewritten in Rust.

A new architecture for Rust monorepos

I've just saw a project using the dreaded monorepo architecture: service1-package1/ service1-package2/ service1-package3/ ... service2-package1/ service2-package2/ ... I don't like it because packages are not grouped by context and domain.

We are in the golden age of Open Source. Surf the wave until it crashes.

While a few people complain that AI is 'stealing Open Source', training on Open Source code and giving nothing in return, I'm currently living the complete opposite: we are in

Async Rust: deep dive into cooperative scheduling and Tokio's architecture

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

Keep calm and embrace (Rust) monorepos

Use monorepos My very unscientific analysis of the Rust ecosytem has come to the conclusion that Rust developers are wasting way too much time managing packages and dependencies. Whoever has

Scaling Rust codebases: Lessons learned organizing large projects and managing errors

As a Rust project grows in size, it can take a non-trivial amount of efforts to keep it in a clean state that will not impede your and your co-workers'

The limits of Rust, or why you should probably not follow Amazon, Cloudflare and Discord

'Is Rust a great fit for this project?' I get this question quite frequently so I think it's time to write down my thoughts if it can help to avoid

Cross-platform Rust: Analyzing how WhatsApp, Signal and more are shipping Rust to billions of devices

The cheapest way to learn is to learn from others, so I always take a day every week to see what other organizations are doing and how they are doing

All databases will eventually be (re)written in Rust

Turso, Neon, Polars, Databend, Materialize, DataFusion, InfluxDB, Quickwit and even ripgrep. Outside of DuckDB and PostgreSQL's core, most, if not all, the most-impactful projects in the database world are now

Cryptographic Right Answers: Post-Quantum Edition

There recently has been a lot of noise about quantum computing breakthroughs recently after Google's articles Quantum frontiers may be closer than they appear and Safeguarding cryptocurrency by disclosing quantum

A Roadmap for Building an Extended Standard Library for Rust

Supply Chain attacks are all the rage these days, with many high-profile attacks that were carried against the Python ecosystem (with litellm), JavaScript (with axios) and WordPress in the last

Supply chain nightmare: How Rust will be attacked and what we can do to mitigate the inevitable

An essential part of being able to say 'I told you so' is in fact having told you so. Well, here we are. For those living under a rock (lucky

Bugs that the Rust compiler catches for you: The revolution of compiler-enforced correctness

Over the decades, Humans have proved to be pretty bad at producing bug-free software. Trying to apply our approximative, fuzzy thoughts to perfectly logical computers seems doomed. While the practice

Building pentest devices with Rust and ESP32-C6 microcontrollers

Growing up with James Bond, Alex Rider and Inspector gadget, I've naturally always been fascinated by gadgets that enable the hero to spy and fight the badies. Fast forward a

Building small and secure Docker images for Rust: scratch vs alpine vs debian

While Docker is now the main way to distribute backend software and CLI tools, you may be wondering how to build minimal and secure Docker images for your Rust projects.

AI (and) Maximalism

I think I've finally understood why some people find value and love to tinker with AI assistants such as WhateverClaw while I find them (mostly) useless or even the idea

Rust is slowly but surely eating PostgreSQL: Deep dive into Neon, ParadeDB, PgDog and more

While most people see PostgreSQL as a simple database, like MariaDB or CLickHouse, it has in fact evolved into a 'data kernel', managing how data is stored and queried, in

Using Rust and Postgres for everything: patterns learned over the years

I love simple, boring and reliable tools. In the software world, the two best are without a doubt Rust and PostgreSQL. One example: a backend service I'm working on processes

My AI wishlist

May the hardware shortages empower European and Chinese companies to drastically boost investments into RISC-V hardware so it could become a viable architecture for production workloads earlier than expected.

Breaking SHA-2: length extension attacks in practice with Rust

Some time ago, we saw that SHA-2 (SHA-256 & SHA-512) should probably be your function of choice for 2030 and beyond, because SHA-3 is too slow and BLAKE3 is (unfortunately)

Is NIST's cryptography backdoored?

While common people suffer from insecure systems (data theft, identity and financial fraud, blackmail...), governments love to be able to stick their nose wherever they want, whenever they want, something

How Rust and Its Compiler Have Revolutionized Software Engineering and Reliability

A lot of reasonable people may perceive my enthusiasm for Rust as misguided fanaticism, but it isn't. It's cold pragmatism. Sherlock Holmes liked to say 'When you have eliminated the

How much time did you use your phone this weekend?

How much time (and how many times) did you use your phone this weekend? What about at this restaurant? While waiting for red lights? In bed, before sleeping and just

Deploying Rust to production checklist

While a lot of time is spent on design patterns and low-level tricks such as SIMD accelerations, I'm suprised that very few resources are available to actually deploy Rust software

Deep dive into Turso, the "SQLite rewrite in Rust"

I love Rust and I love SQLite, so you can guess. Iwas pretty excited when I lerned that 'SQLite was rewritten in Rust' What is SQLite, actually? 2 things: a