# About

APSW 3.47.2.0 released 8 December 2024.

Use with SQLite 3.47.1 or later, Python 3.9 and later.

APSW has been under continuous development since 2004.

## What APSW does

APSW lets you get the most out of the SQLite embedded relational database engine from Python, and the most out of Python from SQLite. APSW glues together the complete SQLite C API and Python’s C API, staying up to date with both SQLite and Python.

It is recommended to use the builtin `sqlite3` module if you want SQLite to appear interchangeable with the other database drivers.

Use APSW when you want to use SQLite fully, and have an improved developer experience. See more about the differences between APSW and sqlite3.

## Dependencies

APSW has no dependencies other than Python itself, and SQLite which is included in PyPI releases. When doing your own builds, you can provide SQLite, or have APSW fetch it and include it statically in the extension.

## Hosting

APSW is hosted at https://github.com/rogerbinns/apsw with source releases at Github and `pip install apsw` at PyPI. See the installation details.

## Mailing lists/contacts

- Python SQLite discussion group (preferred)

- Github discussions

- You can also email the author at rogerb@rogerbinns.com

## Issue tracking

You can find existing and fixed bugs by clicking on Issues and using “New Issue” to report previously unknown issues.

## Backwards compatibility

Great effort is expended to ensure your code using APSW continues to work without maintenance as Python, SQLite, and APSW update over time. The very rare breaks are documented in the change log. 20 year old code still works unchanged!

## APSW and SQLite versions

SQLite has approximately quarterly releases. These include tweaks, bug fixes, and new functionality based on the billions of SQLite databases in use, and the many programs that use SQLite (eg almost every browser, mail client, photo library, mobile and desktop OS). Despite these changes, SQLite retains backwards and forwards compatibility with the file format and APIs.

APSW wraps the SQLite C API. That means when SQLite adds new constants or APIs, then so does APSW. You can think of APSW as the Python expression of SQLite’s C API. You can lookup SQLite APIs to find which APSW functions and attributes call them.

Consequently the APSW version mirrors the SQLite version, with an additional final number on the end to reflect APSW iterations. For example the SQLite `3.42.1` release would have APSW `3.42.1.0` as the corresponding release with the final `.0` incrementing if there are more APSW releases for the same SQLite version.

You can use APSW with the corresponding version of SQLite, or any newer version of SQLite. You could use the original 2004 release of APSW with today’s SQLite just fine, although it wouldn’t know about the new APIs and constants.

## Python versions

APSW supports all supported Python versions, including versions under development. Once a Python release goes end of life, there will be one final APSW release supporting that version of Python.

Last APSW release
Python version | APSW release
--- | ---
3.8 | 3.46.1.0
3.6, 3.7 | 3.43.0.0
2.3 - 3.5 | 3.37.0-r1