Documentation Source Text

Artifact Content
Login

Artifact 2e802808d7cf2e1a5a585bbefbc419aaddc5e375:


<title>About SQLite</title>

<h1 align=center>About SQLite</h1>

<table align="right" border="1" cellpadding="10" hspace="20" cellspacing="0">
<tr><td>
<b>See Also...</b>
<p><ul>
<li> <a href="features.html">Features</a> </li>
<li> <a href="faq.html">Frequently Asked Questions</a> </li>
<li> <a href="famous.html">Well-known Users</a> </li>
<li> <a href="books.html">Books About SQLite</a> </li>
<li> <a href="quickstart.html">Getting Started</a> </li>
<li> <a href="lang.html">SQL Syntax</a>
<ul>
<li> <a href="pragma.html#toc">Pragmas</a>
<li> <a href="lang_corefunc.html">SQL functions</a>
<li> <a href="lang_datefunc.html">Date &amp; time functions</a>
<li> <a href="lang_aggfunc.html">Aggregate functions</a>
</ul>
</li>
<li> <a href="c3ref/intro.html">C/C++ Interface Spec</a>
<ul>
<li> <a href="cintro.html">Introduction</a>
<li> <a href="c3ref/funclist.html">List of C-language APIs</a>
</ul>
</li>
<li> <a href="tclsqlite.html">The TCL Interface Spec</a>
<li> <a href="http://www.sqlite.org/src/timeline">Development Timeline</a> </li>
<li> <a href="http://www.sqlite.org/src/wiki?name=Bug+Reports">Report a Bug</a> </li>
</ul></p>
</table>

<p>SQLite is a in-process library that implements a
<a href="selfcontained.html">self-contained</a>, 
<a href="serverless.html">serverless</a>,
<a href="zeroconf.html">zero-configuration</a>,
<a href="transactional.html">transactional</a>
SQL database engine.
The code for SQLite is in the
<a href="copyright.html">public domain</a> and is thus free for
use for any purpose, commercial or private.
SQLite is currently found in more applications than we can
count, including several <a href="famous.html">high-profile projects.</a></p>

<p>SQLite is an embedded SQL database engine.
Unlike most other SQL databases, SQLite does not have a separate
server process.  SQLite reads and writes directly to ordinary disk
files.  A complete SQL database with multiple tables, indices,
triggers, and views, is contained in a single disk file.
The database file format is cross-platform - you can freely copy a database
between 32-bit and 64-bit systems or between 
[http://en.wikipedia.org/wiki/Endianness | big-endian] and
[http://en.wikipedia.org/wiki/Endianness | little-endian]
architectures.  These features make SQLite a popular choice as
an <a href="whentouse.html#appfileformat">Application File Format</a>.
Think of SQLite not as a replacement for 
[http://www.oracle.com/database/index.html|Oracle] but
as a replacement for [http://man.he.net/man3/fopen|fopen()]</p>

<p>SQLite is a compact library.
With all features enabled, the [library size] can be less than 350KiB,
depending on the target platform and compiler optimization settings.
(64-bit code is larger.  And some compiler optimizations
such as aggressive function inlining and loop unrolling can cause the
object code to be much larger.)  If optional features are omitted, the
size of the SQLite library can be reduced below 200KiB.  SQLite can also
be made to run in minimal stack space (4KiB) and
very little heap (100KiB), making SQLite a popular database engine 
choice on memory constrained gadgets such as cellphones, PDAs, and MP3 players.
There is a tradeoff between memory usage and speed.  
SQLite generally runs faster the more memory
you give it.  Nevertheless, performance is usually quite good even
in low-memory environments.</p>

<p>SQLite is 
<a href="testing.html">very carefully tested</a> prior to every
release and has a reputation for being very reliable.
Most of the SQLite source code is devoted purely to testing and
verification.  An automated test suite runs millions and millions of
test cases involving hundreds of millions of individual SQL statements
and achieves [test coverage | 100% branch test coverage].  
SQLite responds gracefully to memory
allocation failures and disk I/O errors.  Transactions are
[http://en.wikipedia.org/wiki/ACID|ACID]
even if interrupted by system crashes or power failures.  
All of this is verified by
the automated tests using special test harnesses which simulate 
system failures.
Of course, even with all this testing, there are still bugs.
But unlike some similar projects (especially commercial competitors)
SQLite is open and honest about all bugs and provides
<a href="http://www.sqlite.org/src/rptview?rn=2">bugs lists</a>
including lists of
<a href="http://www.sqlite.org/cvstrac/wiki?p=DatabaseCorruption">
critical bugs</a> and
minute-by-minute <a href="http://www.sqlite.org/src/timeline">
chronologies</a> of bug reports and code changes.</p>

<p>The SQLite code base is supported by an
<a href="crew.html">international team</a> of developers who work on
SQLite full-time.
The developers continue to expand the capabilities of SQLite
and enhance its reliability and performance while maintaining
backwards compatibility with the 
<a href="c3ref/intro.html">published interface spec</a>,
<a href="lang.html">SQL syntax</a>, and database file format.
The source code is absolutely free to anybody who wants it,
but [professional support] is also available.</p>

<p>We the developers hope that you find SQLite useful and we
charge you to use it well: to make good and beautiful products that
are fast, reliable, and simple to use.  Seek forgiveness for yourself
as you forgive others.  And just as you have received SQLite for free,
so also freely give, paying the debt forward.</p>