SQLite is a Self Contained System

*** DRAFT ***
SQLite is a Self Contained System

SQLite is "stand-alone" or "self-contained" in the sense that it has very few dependencies. It runs on any operating system, even stripped-down bare-bones embedded operating systems. SQLite uses no external libraries or interfaces (other than a few standard C-library calls described below). The entire SQLite library is encapsulated in a single source code file that requires no special facilities or tools to build.

A minimal build of SQLite requires just these routines from the standard C library:

- memcmp()
- memcpy()
- memmove()
- memset()
- strcmp()
- strlen()
- strncmp()

Most builds also use the system memory allocation routines:

- malloc()
- realloc()
- free()

But those routines are optional can can be omitted using a compile-time option.

Default SQLite builds contain appropriate VFS objects for talking to underlying operating system, and those VFS objects will contain operating system calls such as open(), read(), write(), fsync(), and so forth. All of these interfaces are readily available on most platforms, and custom VFSes can be designed to run SQLite on even the most austere embedded devices.

*** DRAFT ***