Build a Compiler from Scratch, Part 1.2: Intermediate Representation and Code GenerationJun 24, 2025·13 min read
Build your own SQLite, Part 6: Overflow pagesUp to this point, we've been using simple test databases where the data for each row fits within a single page. However, in the wild, it is quite common for a row to be larger than a single page (typically 4096 bytes), especially when using variable-...Jul 7, 2025·13 min read
Build your own SQLite, Part 4: reading tables metadataAs we saw in the opening post, SQLite stores metadata about tables in a special "schema table" starting on page 1. We've been reading records from this table to list the tables in the current database, but before we can start evaluating SQL queries a...Feb 3, 2025·6 min read
Build your own SQLite, Part 3: SQL parsing 101After discovering the SQLite file format and implementing the .tables command in part 1 and part 2 of this series, we're ready to tackle the next big challenge: writing our own SQL parser from scratch. As the SQL dialect supported by SQLite is quite ...Nov 18, 2024·9 min read
Build your own SQLite, Part 2: Scanning large tablesIn the previous post, we discovered the SQLite file format and implemented a toy version of the .tables command, allowing us to display the list of tables in a database. But our implementation has a jarring limitation: it assumes that all the data fi...Aug 24, 2024·8 min read
Build your own SQLite, Part 1: Listing tablesAs developers, we use databases all the time. But how do they work? In this series, we'll try to answer that question by building our own SQLite-compatible database from scratch. Source code examples will be provided in Rust, but you are encouraged t...Jul 22, 2024·13 min read
Build an HTTP server with Rust and tokio - Part 1: serving static filesIn this episode, we'll extend our server to serve static files. We'll also refactor our code to support connection reuse, and implement a graceful shutdown mechanism. If your didn't follow the previous episode, you can find the code on GitHub. As we ...May 20, 2023·6 min read
Build a web server with Rust and tokio - Part 0: a simple GET handlerBuild a web server with Rust and tokio - Part 0: the simplest possible GET handler Welcome to this series of blog posts where we will be exploring how to build a web server from scratch using the Rust programming language. We will be taking a hands-o...May 11, 2023·7 min read