What is SQLite?

SQLite is a tiny, file-based database that lives inside your program. It doesn’t need a separate server or complex setup - you just open a single file and start storing data.

Let's break it down

  • tiny: very small in size, usually just a few megabytes.
  • file-based: all the data is kept in one ordinary file on your disk.
  • database: a structured way to keep and retrieve information.
  • lives inside your program: the code you write talks directly to SQLite; there’s no outside service.
  • doesn’t need a separate server: you don’t have to install or run another piece of software to use it.
  • open a single file: you point SQLite at a file path and it creates or uses that file for storage.
  • start storing data: you can add, read, change, or delete information right away.

Why does it matter?

Because it lets developers add reliable data storage to apps without the hassle of managing a full-blown database server, saving time, money, and technical overhead.

Where is it used?

  • Mobile apps (iOS, Android) keep user settings and offline content in SQLite.
  • Web browsers store bookmarks, history, and extensions data with SQLite files.
  • Small desktop utilities (e.g., password managers, note-taking apps) use it for local data.
  • Internet-of-Things devices embed SQLite to log sensor readings without heavy resources.

Good things about it

  • Zero-configuration: just copy the library and start using it.
  • Very small footprint: minimal disk space and memory usage.
  • ACID-compliant: guarantees safe, consistent transactions.
  • Cross-platform: works the same on Windows, macOS, Linux, Android, iOS, etc.
  • Public-domain code: free for any purpose, commercial or not.

Not-so-good things

  • Not ideal for heavy concurrent write workloads; many writers can cause lock contention.
  • Limited scalability: performance drops with very large (multi-gigabyte) databases.
  • Fewer advanced features compared to enterprise systems (e.g., no built-in user authentication, limited stored-procedure support).
  • No built-in replication or clustering for high-availability scenarios.