Generated by GPT-5-mini| SQLite | |
|---|---|
![]() Максим Пе · CC BY-SA 4.0 · source | |
| Name | SQLite |
| Author | D. Richard Hipp |
| Developer | D. Richard Hipp and the SQLite Consortium |
| Initial release | 2000 |
| Operating system | Cross-platform |
| License | Public domain (with exceptions) |
SQLite is an embedded relational database engine commonly used in applications, devices, and operating systems for local data storage. It is designed for simplicity, portability, and minimal configuration while supporting a substantial subset of SQL and transactional semantics. Implementation choices prioritize a compact library footprint, cross-platform compatibility, and resilience in embedded contexts.
SQLite originated in the late 1990s with developer D. Richard Hipp during work related to the Tcl scripting ecosystem and early Netscape-era browsers. Early adoption grew through inclusion in projects such as Firefox and Android where the need for lightweight, file-based storage contrasted with server-based systems like MySQL, PostgreSQL, and Oracle Database. Porting and integration across platforms led to deployments within Windows, Linux, macOS, iOS, and Android kernels and userlands. Notable integrations included Mozilla Firefox, Google Chrome, Apple Safari, Ubuntu, Fedora Project, Debian, Red Hat Enterprise Linux, Microsoft Windows, and consumer devices from Apple Inc., Samsung Electronics, and Sony Corporation. The project’s influence extended into embedded hardware from Intel, ARM Holdings, and Raspberry Pi Foundation. Over time, SQLite’s track record in reliability and footprint encouraged adoption in projects such as Mozilla Thunderbird, Adobe Systems, Dropbox, WhatsApp, Skype, Telegram Messenger, Spotify, and Evernote.
The engine is implemented as a single C library designed for easy embedding into applications like LibreOffice or frameworks such as Qt and GTK. It stores an entire database in a single cross-platform disk file and provides ACID transactions comparable to server RDBMS systems including Microsoft SQL Server and IBM Db2. SQLite implements a virtual database engine (VDBE) that compiles SQL into bytecode executed by a stack-based interpreter; this resembles approaches used in PostgreSQL’s query planner and the interpreter in SQLite Consortium-led designs. Concurrency control leverages file locks compatible with POSIX and Windows API semantics; pragmatic differences with Oracle Database-style multi-version concurrency are notable. The codebase emphasizes test-driven development and includes thousands of test cases influenced by practices common at Google, Apple Inc., and Microsoft Research.
SQLite supports dynamic typing, manifest typing, and a set of storage classes that map loosely to types used in C, Python, Java, Swift, and JavaScript language bindings. SQL support includes substantial portions of the SQL92 standard along with many SQL:1999 and subsequent features such as transactions, triggers, views, indices, and common table expressions used in systems like IBM DB2 and PostgreSQL. Extensions add JSON functionality similar to MongoDB’s document model and window functions comparable to those in Oracle and SQL Server. Bindings and client libraries exist for PHP, Ruby, Perl, Node.js, Rust, Go (programming language), C#, and Java, enabling integration with frameworks such as Django, Ruby on Rails, Laravel, Spring Framework, and Electron.
SQLite emphasizes predictable performance in embedded environments, offering configurable journaling modes including rollback and write-ahead logging (WAL) comparable to techniques used in PostgreSQL and MySQL InnoDB. Benchmarks often compare SQLite to server databases like MariaDB and SQL Server Express for single-user workloads, with optimizations for indices, prepared statements, and pragma settings. Reliability is underscored by extensive testing, fuzzing efforts inspired by practices from Google OSS-Fuzz and LLVM projects, and documented durability behaviors on filesystems such as ext4, NTFS, APFS, and FAT32. Recovery and integrity checks borrow concepts familiar to database engineers from Oracle’s recovery manager and IBM fault-tolerance literature.
Common use cases include application file formats, caching layers, telemetry storage, and mobile app persistence across ecosystems like Android SDK, iOS SDK, and Windows Phone legacy projects. It appears in desktop software such as Adobe Photoshop, Microsoft Office, and Mozilla Firefox as well as server-side utilities and edge devices produced by Cisco Systems, Juniper Networks, and Netgear. IoT and embedded systems from Arduino, Raspberry Pi, Espressif Systems, and STMicroelectronics adopt SQLite for local state management. Cloud vendors and orchestration tools—teams at Amazon Web Services, Google Cloud Platform, Microsoft Azure, Kubernetes, and Docker—use SQLite in tooling, local agents, and operator components, while open-source projects like Home Assistant, Kubernetes Operators, Prometheus, and Grafana employ it for lightweight storage tasks.
Development has been led by D. Richard Hipp and contributors affiliated with organizations including the SQLite Consortium, with engineering practices informed by processes at Mozilla Foundation, Google, and Apple Inc.. The project’s source code is written in C and distributed in a public-domain-like license intended to maximize permissive use across proprietary and open-source ecosystems, analogous in permissiveness to licenses used by Apache Software Foundation projects and corporate releases by Facebook and Google. Commercial support and extended services are offered by vendors and consultants experienced with deployments in enterprise environments, including integration with systems like SAP SE and Oracle Corporation.