Small. Fast. Reliable.
Choose any three.
Using SQLite on a Network

SQLite database files may be shared accross a network using a network filesystem. This is never a particularly efficient method and may have problems (depending on the filesystem, or may simply not be available. These are alternative techniques for remote access to SQLite databases.

uSQLiteServer and Client (http://users.iol.it/irwin/)

The uSQLiteServer implements a simple ASCII protocol to access an SQLite database over sockets. The corresponding C client allows access to the server using exec/callback functions similiar to those in the C API interface. It is not a drop in replacement but should be easy to retrofit. There is also a basic security implementation to control access to the database. It is in the public domain.

SQL4Sockets (http://www.oneledger.co.uk/sql4sockets.html)

A client/server implementation of SQLite with servers available for Win32, Linux and Mac. Communication with the server is via delimited text over a TCP socket. A freeware version is available.

For REALbasic developers there are also open source, cross platform client classes which provide a nice wrapper that shield you from the delimited text protocol.

SQLite ODBC Driver (http://www.ch-werner.de/sqliteodbc/)

OpenSource BSD Licensed (Windows and Linux)

Note that this is in an experimental state and any feedback is appreciated.

So far it has been tested with SQLite 2.8.17 and SQLite 3.4.1 on Windows NT/2000 in MS Excel 97 (MSQUERY) with SQLite database files created on Linux. It also runs on Linux with unixODBC 2.* and with libiodbc 3.*.

Note: Using ODBC does not imply client/server or networking. The ODBC driver for SQLite accesses the SQLite database file directly just like SQLite does.

All ODBC does is add a standardized API layer between the database and the application. So it should be no better or worse than directly accessing the database file from the API.

SQLiteDBMS (http://sqlitedbms.sourceforge.net/)

SQLiteDBMS is a database management server for SQLite. It allows an sqlite3 process to be accessed via a TCP/IP network. It provides Extended SQL, SSL, basic authentication, prepared statement, query cache, WebDAV and table level access control. It includes a simple Web server that takes HTTP requests and sends XML responses.

BSD license (beta)

SQLiteDbServer (http://www.terrainformatica.com/sqlitedbserver/)

Commercial license. Windows (NT and above) platforms only.

SQLiteDbServer is a lightweight, multithreaded TCP/IP sqlite-based database server, implemented as an NT Service. It's pretty fast, and the whole communication between clients and server is encrypted and compressed. It currently relies on SQLiteDb ActiveX COM wrapper, but it will be extended in order to provide a standard way of passing data (XML?).