Read/Write Compressed Databases

ZIPVFS is an add-on to the public domain version of SQLite that allows an application to read and write database files that are compressed using application-supplied compression and decompression functions.

A version of SQLite that is equipped with ZIPVFS is able to read and write ordinary database files created using a public domain version of SQLite in addition to reading and writing compressed database files.


An application that intends to make use of ZIPVFS must first initialize the ZIPVFS module using a call to this interface:

int zipvfs_create_vfs(
  char const *zName,
  char const *zParent,
  void *pCtx,
  int (*xCompressBound)(void *, int nSrc),
  int (*xCompress)(void *, char *aDest, int *pnDest, char *aSrc, int nSrc),
  int (*xUncompress)(void *, char *aDest, int *pnDest, char *aSrc, int nSrc)

Each call to the "zipvfs_create_vfs()" function creates a new ZIPVFS backend for SQLite. The last four arguments are use to specify the application-supplied compression and decompression functions. The first argument is the name of the new ZIPVFS backend. The second argument is the name of an existing backend that ZIPVFS is applied on top of. The 2nd argument can be NULL to use the default backend.

After one or more ZIPVFS backends have been created, new SQLite database connnections that uses one of those backends can be created by invoking the sqlite3_open_v2() interface and providing the name of the desired ZIPVFS backend as the fourth parameter.

An SQLite database connection that uses a ZIPVFS backend works mostly like any other SQLite database connection; it just generates a smaller database file. But there are some restrictions on ZIPVFS databases:


When you purchase a license for ZIPVFS, you will be issued a username and password with which you can log onto the configuration management system for ZIPVFS. There you will be able to download the source code and read detailed instructions on how to compile and use ZIPVFS. (Note: It is not difficult to compile ZIPVFS - the entire extension consists of a single file of C source code that you simply append to an ordinary SQLite amalgamation source file and recompile.) Your license will perpetual and so your username and password will not expire. You can log into the ZIPVFS website as often as you like to download updates and enhancements to ZIPVFS.


The ZIPVFS is licensed software. Here is a copy of a sample license agreement. Your license is perpetual. You can ship as many compiled, binary copies of SQLite with your commercial product as long as each copy is attached to your product in such a way that it cannot be separated from your product. Normally this means that you should statically link ZIPVFS with your product, thought exceptions to this rule can be made as circumstances require. There are no per-copy royalties or fees and there are no license renewals.

If you upgrade to a newer version of the public-domain SQLite and your ZIPVFS module stops working, you can request a free update. There is no limit to the number of updates, however you must request the updates. Updates are not sent automatically.

Your ZIPVFS license is valid for multiple products as long as all products are developed and maintained by a single team. For the purposes of this paragraph a "team" is a group of people who work together and all know each others names. For smaller organizations, an entire company is usually considered a single team. However, for larger firms, we may ask that different project teams each acquire their own separate license.

The cost of a perpetual source code license for ZIPVFS is US $4000. You can order on-line or send email to or call during east-coast business hours: +1.704.948.4565.


The base price of ZIPVFS does not include support. We will answer a few simple questions to help you get started, and we will fix any bugs you find within 90 days of purchase. But for help beyond this, we ask that you obtain an Annual Maintenance Subscription for SQLite. An Annual Maintenance Subscription entitles you to support for both SEE and for the public-domain SQLite code.

Higher levels of support are available on a negotiated basis. Baseline support packages include a Technical Support Agreements and SQLite Consortium Membership. Consortium membership is the highest level of support offered. The US $4000 ZIPVFS license fee is waived for Consortium members.

Additional Information

If you have other questions about SQLite, please contact us directly at or by phone at +1.704.948.4565 during east-coast business hours.