# # Run this TCL script to generate HTML for the index.html file. # set rcsid {$Id: index.tcl,v 1.64 2002/08/13 20:45:41 drh Exp $} puts { SQLite: An SQL Database Engine In A C Library

SQLite: An SQL Database Engine In A C Library

} puts "This page was last modified on [lrange $rcsid 3 4] UTC
" set vers [lindex $argv 0] puts "The latest SQLite version is $vers" puts " created on [exec cat last_change] UTC" puts {

} puts {

Introduction

SQLite is a C library that implements an embeddable SQL database engine. Programs that link with the SQLite library can have SQL database access without running a separate RDBMS process. The distribution comes with a standalone command-line access program (sqlite) that can be used to administer an SQLite database and which serves as an example of how to use the SQLite library.

SQLite is not a client library used to connect to a big database server. SQLite is the server. The SQLite library reads and writes directly to and from the database files on disk.

} puts {
Quick Links:
} puts {

Features

} puts {

Current Status

A Change Summary is available on this website. You can also access a detailed change history, view open bugs, or report new bugs at the CVS server.

Complete source code and precompiled binaries for the latest release are available for download on this site. You can also obtain the latest changes by anonymous CVS access:

cvs -d :pserver:anonymous@cvs.hwaci.com:/home/cvs/sqlite login
cvs -d :pserver:anonymous@cvs.hwaci.com:/home/cvs/sqlite checkout sqlite
When prompted for a password, enter "anonymous".

Note that the CVS server is located on a cable modem with a dynamic IP address. The IP address changes every 3 or 4 months. After an IP address change occurs it usually takes a day or two for the new DNS information to propagate. So if you have trouble accessing the CVS server, it could be because the IP address has recently changed. Try again in a few days.

Whenever either of the first two digits in the version number for SQLite change, it means that the underlying file format has changed. See formatchng.html for additional information.

} puts {

Database File Format Change - Version 2.6.0 - 2002 July 17

Beginning with version 2.6.0, the SQLite database file format changed in an incompatible way. If you open a database file from version 2.5.6 or earlier with version 2.6.0 or later of the library, then the file format will be converted automatically. This is an irreversible operation. Once the conversion occurs, you will no longer be able to access the database file from older versions of the library. If the database is large, the conversion might take some time. (Allow 1 to 2 seconds per megabyte of database under Linux.) If the database is read-only, the conversion cannot occur and the attempt to open the database will fail. It is suggested that you make backup copies of older database files before attempting to open them with version 2.6.0 or later of the library.

} puts {

Documentation

The following documentation is currently available:

The SQLite source code is 35% comment. These comments are another important source of information.

} puts {

Click to subscribe to sqlite

Mailing List

A mailing list has been set up on yahooGroups for discussion of SQLite design issues or for asking questions about SQLite.

} puts {

Professional Support and Custom Modifications

} puts {

If you would like professional support for SQLite or if you want custom modifications to SQLite preformed by the original author, these services are available for a modest fee. For additional information contact:

D. Richard Hipp
Hwaci - Applied Software Research
704.948.4565
drh@hwaci.com
} puts {

Building From Source

} puts {

To build sqlite under Unix, just unwrap the tarball, create a separate build directory, run configure from the build directory and then type "make". For example:

$ tar xzf sqlite.tar.gz       Unpacks into directory named "sqlite" 
$ mkdir bld                   Create a separate build directory 
$ cd bld
$ ../sqlite/configure
$ make                        Builds "sqlite" and "libsqlite.a" 
$ make test                   Optional: run regression tests 
} puts {

Related Sites

For information bindings of SQLite to other programming languages (Perl, Python, Ruby, PHP, etc.) and for a list of programs currently using SQLite, visit the Wiki documentation at:

http://cvs.hwaci.com:2080/sqlite/wiki
} puts { }