RSSAmplifier

Blog

Arnaud Gourlay's blog

Yet another programming blog

agourlay.github.ioRSS feed ↗10 posts

Latest posts

The transmission

Tractors, beige boxes and what's next My father was very fond of tractors. He would never miss an occasion to stop for any tractor we came across on holidays, at a fair or an agricultural museum. His eyes would light up and he would start commenting on the particular models in front of us. As a kid I understood to some degree that tractors were special to my father, but it took me much longer…

New Key-Value Store in Rust at Qdrant

I have been working at Qdrant for a while now, where I get the opportunity to work on very interesting problems. This article is an external publication regarding my latest contributions to a new key-value storage engine specialized for our needs. The storage is not yet available as a standalone crate for the moment; in the meantime, there are a few pointers to get started reading the code for the…

Playing guitar tablatures in Rust

If you ever tried to learn guitar, chances are you are familiar with guitar tablatures. It is a simple way to visualize music for guitar, using ASCII characters to represent strings and frets as an alternative to sheet music. For instance, here are the first four measures of the song "Smoke on the Water" by Deep Purple: e|-----------------|-----------------|-----------------|-----------------|…

Rust Meetup Linz: Qdrant - a vector search engine in Rust

I had the privilege and pleasure to give a talk at the Rust Meetup Linz about my work as a full time contributor on the Qdrant vector search engine. I wanted the talk to be rather accessible given that vector search engines have recently been gaining popularity. The presentation is structured roughly in two parts: First the focus is on the use cases for the technology to really understand where it…

Follow up on cracking ZIP archives in Rust

In a previous article , we explored how to build - step by step - a CLI in Rust to brute-force protected ZIP archives. The outcome of this research was the creation of the project zip-password-finder . Since the last publication, the project has been slowly evolving to mitigate the shortcomings that were highlighted. In this follow-up entry we will go over the improvements made and the latest…

Support for thread dump in hprof-slurp 0.5.0

This short article is an announcement for the 0.5.0 release of the hprof-slurp project. The goal of this project is to build a JVM heap dump analyzer written in Rust specialized for very large heap dumps. This release introduces the support for reporting the traces of the threads found in the heap dump. Meaning, users can now see which part of their application was running at the time of the dump!…

Brute forcing protected ZIP archives in Rust

This article explains how to brute force the password of protected ZIP archives using Rust. It is primarily targeted at beginner Rust developers, but it will surely be interesting to a wider audience. The full code with better error handling and proper command line arguments (CLI) is available at zip-password-finder . Context A while back, I found myself in possession of a ZIP archive containing…

A performance retrospective using Rust (part 3)

This article is the third part of a performance retrospective regarding the hprof-slurp project. It is highly recommended to start with the first part to get a good grasp of the context. In this edition, we will focus on an arguably minor performance issue that will teach us a bit more about Rust along the way. A short disclaimer: this article has been written using Rust 1.62.1 and its conclusions…

A performance retrospective using Rust (part 2)

This article is the second part of a performance retrospective regarding the hprof-slurp project. It is highly recommended to start with the first part to get a good grasp of the context. We left off after a presentation of the project and a detailed description of the benchmarking methodology used to measure performance gains. In this article we will focus on a specific issue that has been…

A performance retrospective using Rust (part 1)

This is the first article in a series regarding making a simple JVM heap dump analyzer in Rust faster over time. Although it is primarily targeted at intermediate Rust developers, it will surely be relevant for engineers interested in performance in general. Performance optimization is highly context-dependent so it makes sense to spend some time explaining what problem we are trying to solve.…