Loading...

Build your own SQLite

Learn about SQL syntax, SQLite's file format, B-trees and more

Start Building
sqlite
C#
sqlite
Go
sqlite
JavaScript
sqlite
Python
sqlite
Ruby
sqlite
Rust
sqlite
C++
sqlite
Gleam
sqlite
Java
sqlite
TypeScript
sqlite
Zig
sqlite
C
sqlite
Clojure
sqlite
Elixir
sqlite
Kotlin

This challenge requires a CodeCrafters Membership.

You're welcome to study the full challenge structure and stage instructions for free. A membership is needed for submitting code and viewing solutions.

Want to try a free challenge? Try Build your own Kafka — it's free during beta.

SQLite is a popular SQL database engine. In this challenge, you'll build your own version of SQLite that is capable of reading a SQLite database file and answering basic SQL queries like SELECT and using indexes.

Along the way, you'll learn about the SQLite file format, SQL syntax and more.

Base Stages

SQLite is a popular SQL database engine. In this challenge, you'll build your own version of SQLite that is capable of reading a SQLite database file and answering basic SQL queries like SELECT and using indexes.

Along the way, you'll learn about the SQLite file format, SQL syntax and more.

Print page size
Very easy
We'd expect a proficient developer to take < 5 minutes to complete this stage.
Print number of tables
Hard
We'd expect a proficient developer to take more than 1 hour to complete this stage.
Print table names
Hard
We'd expect a proficient developer to take more than 1 hour to complete this stage.
Count rows in a table
Medium
We'd expect a proficient developer to take 30 minutes to 1 hour to complete this stage.
Read data from a single column
Hard
We'd expect a proficient developer to take more than 1 hour to complete this stage.
Read data from multiple columns
Hard
We'd expect a proficient developer to take more than 1 hour to complete this stage.
Filter data with a WHERE clause
Hard
We'd expect a proficient developer to take more than 1 hour to complete this stage.
Retrieve data using a full-table scan
Hard
We'd expect a proficient developer to take more than 1 hour to complete this stage.
Retrieve data using an index
Hard
We'd expect a proficient developer to take more than 1 hour to complete this stage.