SQLite is a C-language library that implements a small, fast, self-contained SQL database engine. Unlike PostgreSQL or MySQL where you need to install a separate server, configure users, manage connections and all that bullshit, SQLite just reads and writes to a single file on disk. That's it. No daemon, no configuration files, no service restarts when it crashes.
Core Architecture and Design
SQLite's architecture consists of eight main components that somehow work together without making you want to throw your laptop out the window:
- SQL Compiler: Tokenizer, Parser, and Code Generator that convert SQL text into bytecode
- Virtual Machine: Executes the bytecode programs using a register-based virtual machine
- B-tree: Manages database pages and implements the storage engine
- Pager: Handles reading, writing, and caching of database pages
- OS Interface: Provides abstraction layer for different operating systems
The whole database is just one file. Copy it, email it, put it on a USB drive - it works. No installation scripts that break, no service configuration hell, just a file that contains your entire database. I've literally emailed SQLite databases as attachments.
Current Status and Versioning
As of September 2025, SQLite version 3.50.4 (released July 30, 2025) represents the latest stable release. SQLite follows a unique versioning approach where the file format has remained stable and backward compatible since version 3.0 (released in 2004), with developers pledging to maintain compatibility through 2050. This backward compatibility promise is actually kept - I've opened 15-year-old SQLite files in the latest version without issues.
Key characteristics that actually matter in the real world:
- Size: Less than 750KB when compiled with all features enabled (smaller than most JavaScript frameworks)
- Memory Usage: Uses barely any RAM unless you enable WAL mode, then it's a different story with shared memory
- Standards Compliance: Implements most SQL-92 but has some weird quirks that will bite you (more on that later)
- ACID Properties: Full ACID compliance with serializable transactions - this actually works, unlike some other databases
Real-world gotcha: The file permissions matter more than you think. If your web server can't write to both the database file AND the directory containing it, you'll get cryptic "database is locked" errors. Learned that one at 3am when deployment failed. Stack Overflow has 1000+ questions about this exact issue.
It's Literally Everywhere
SQLite is everywhere - like, literally everywhere. The developers claim over a trillion databases in active use, which sounds like marketing bullshit until you think about it. Your phone probably has dozens of SQLite databases right now.
Every smartphone runs on SQLite:
- Android: Uses SQLite for contacts, SMS, call logs, and basically every app's local storage
- iOS: Core Data is SQLite underneath - Apple just wrapped it in Objective-C complexity
- Web Browsers: Firefox, Chrome, and Safari use SQLite for bookmarks, history, and cached data
The database is embedded everywhere: Windows 10, macOS, Skype, Dropbox, and probably your smart toaster. I've found SQLite databases in desktop applications I forgot I had installed.
Fun fact: The SQLite website itself runs on SQLite and handles 400K-500K requests per day. It's SQLite all the way down.
But how does SQLite actually compare to the heavyweight databases everyone talks about? Let's look at the numbers.