Skip to main content

Django integration with litestream, a a standalone streaming replication tool for SQLite.

Project description

django-litestream

PyPI - Version PyPI - Python Version PyPI - Versions from Framework Classifiers MIT License

Django integration for Litestream, the SQLite replication tool. The Litestream binary is bundled in platform-specific wheels — no manual download needed. All upstream commands are available as python manage.py litestream <command>.

Note: This package tracks Litestream's upstream version. The initial release is 0.5.11, matching Litestream v0.5.11. Wrapper-only fixes (no Litestream update) use PEP 440 post-releases like 0.5.11.post1.

Installation

pip install django-litestream

Add to INSTALLED_APPS:

INSTALLED_APPS = [
    "django_litestream",
]

The binary is installed automatically on supported platforms (Linux/macOS x86_64 & arm64). On unsupported platforms, set a custom path:

LITESTREAM = {
    "bin_path": "/usr/local/bin/litestream",
}

Configuration

Configuration is generated dynamically from Django settings — no YAML file needed.

# settings.py
LITESTREAM = {
    "path_prefix": "",      # prepended to S3 replica paths
    "bin_path": "...",      # custom binary path (optional)
    "dbs": [                # databases to replicate
        {"path": "default"},
    ],
}

All Litestream config options are supported (addr, logging, mcp-addr, access-key-id, etc.).

Database aliases

Use Django database aliases instead of file paths wherever db_path is required:

python manage.py litestream restore default        # instead of /path/to/db.sqlite3
python manage.py litestream sync default

Auto-generated replicas

If no replica is specified for a database, an S3 replica is auto-generated using environment variables:

LITESTREAM = {
    "dbs": [{"path": "default"}],
}
# Uses: LITESTREAM_REPLICA_BUCKET, LITESTREAM_ACCESS_KEY_ID, LITESTREAM_SECRET_ACCESS_KEY

Explicit replica config:

LITESTREAM = {
    "dbs": [
        {
            "path": "default",
            "replica": {
                "type": "s3",
                "bucket": "my-bucket",
                "path": "db.sqlite3",
            },
        },
    ],
}

Multiple databases with path_prefix

DATABASES = {
    "default": {"ENGINE": "django.db.backends.sqlite3", "NAME": BASE_DIR / "db.sqlite3"},
    "cache":  {"ENGINE": "django.db.backends.sqlite3", "NAME": BASE_DIR / "cache.sqlite3"},
}

LITESTREAM = {
    "path_prefix": "myproject",
    "dbs": [
        {"path": "default"},           # → myproject/db.sqlite3
        {
            "path": "cache",
            "replica": {
                "type": "s3",
                "bucket": "my-cache-bucket",
                "path": "cache.sqlite3",
            },
        },
    ],
}

Custom commands

These commands are unique to django-litestream — they don't exist in upstream Litestream.

litestream config

Display the generated configuration in YAML format.

python manage.py litestream config

Useful for verifying your setup before running replication.

litestream verify

Checks backup integrity end-to-end: writes a verification row, waits for replication, restores the latest backup, and confirms the row exists.

python manage.py litestream verify default

Upstream commands

All Litestream commands are exposed as management commands. Run python manage.py litestream to see the full list. Key notes:

  • replicate: Run in production via a process manager. Use -exec to wrap your application server.
  • restore: Supports -timestamp, -generation, -index for point-in-time recovery.
  • Daemon control (info, list, register, unregister, start, stop): Communicate with a running replicate daemon over IPC.

The only difference from upstream is that Django database aliases work anywhere db_path is expected.

VFS Read Replicas

Read-only access to cloud-stored replicas without downloading the entire database. Pages are fetched on-demand.

pip install django-litestream[vfs]

This installs both django-litestream and django-litestream-vfs (the VFS extension and Python integration).

Setup

# settings.py
from django_litestream_vfs import get_vfs_databases

LITESTREAM = {
    "dbs": [{"path": "default"}],
    "vfs": {
        "prod_replica": "s3://mybucket/db.sqlite3",
    },
}

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.sqlite3",
        "NAME": BASE_DIR / "db.sqlite3",
    },
    **get_vfs_databases(),  # adds VFS replicas
}

Usage

User.objects.using("prod_replica").all()  # read-only, on-demand page fetch

VFS replicas are read-only. Only x86_64 and arm64 supported. Multiple storage backends supported (S3, GCS, Azure Blob).

License

MIT. The bundled Litestream binary uses the Apache 2.0 license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_litestream-0.5.12.tar.gz (10.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

django_litestream-0.5.12-py3-none-win_arm64.whl (36.3 MB view details)

Uploaded Python 3Windows ARM64

django_litestream-0.5.12-py3-none-win_amd64.whl (39.7 MB view details)

Uploaded Python 3Windows x86-64

django_litestream-0.5.12-py3-none-manylinux2014_x86_64.musllinux_1_1_x86_64.whl (38.7 MB view details)

Uploaded Python 3musllinux: musl 1.1+ x86-64

django_litestream-0.5.12-py3-none-manylinux2014_aarch64.musllinux_1_1_aarch64.whl (35.9 MB view details)

Uploaded Python 3musllinux: musl 1.1+ ARM64

django_litestream-0.5.12-py3-none-macosx_11_0_arm64.whl (37.2 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

django_litestream-0.5.12-py3-none-macosx_10_9_x86_64.whl (39.8 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

django_litestream-0.5.12-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file django_litestream-0.5.12.tar.gz.

File metadata

  • Download URL: django_litestream-0.5.12.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for django_litestream-0.5.12.tar.gz
Algorithm Hash digest
SHA256 14a9d3a19d2b6db4477d045f5afa73fff7cbcbb881d4bd3990ab3ff9d56c57f4
MD5 c50654f6bb9f2678c098e4d5e77a2875
BLAKE2b-256 49be8fd010918ac94d83aa13276677d45c435ed0407860ec2bd50303f3ae6e3c

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_litestream-0.5.12.tar.gz:

Publisher: publish.yml on Tobi-De/django-litestream

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file django_litestream-0.5.12-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for django_litestream-0.5.12-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 aad4909fd6126ea292b7cbfb6e4413b9e8cae55b8c9617def6f477ac678dbc9e
MD5 7ddf6987bb146c029ac7248b3928e01e
BLAKE2b-256 254a8c79343470dec1219bda8a97b8fc3c6420dd4f393c07fc93f3d2dbf5783d

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_litestream-0.5.12-py3-none-win_arm64.whl:

Publisher: publish.yml on Tobi-De/django-litestream

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file django_litestream-0.5.12-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for django_litestream-0.5.12-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 49a15bfeea5828107151d6618de4650b5b79e6e4f6318e179606d45b65d1436d
MD5 8985bba8f46ec81614da972da3fc575d
BLAKE2b-256 d9ac117f2b17ee7b48ac7b66cf50ebfc9e1e599d9021b1c7e96c416810b0ef6c

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_litestream-0.5.12-py3-none-win_amd64.whl:

Publisher: publish.yml on Tobi-De/django-litestream

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file django_litestream-0.5.12-py3-none-manylinux2014_x86_64.musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for django_litestream-0.5.12-py3-none-manylinux2014_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 3bce3c88c0bdb50c1d9d1816244bf5d12a6e496656563c2669adbdf5a49e87d4
MD5 c4723e86e97e9bbf77b6ab0a747f9d9b
BLAKE2b-256 3614e05d2301f39474255c345fc0c739ef4edd3abd830171b7654a1b89536e62

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_litestream-0.5.12-py3-none-manylinux2014_x86_64.musllinux_1_1_x86_64.whl:

Publisher: publish.yml on Tobi-De/django-litestream

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file django_litestream-0.5.12-py3-none-manylinux2014_aarch64.musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for django_litestream-0.5.12-py3-none-manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 5d7a05d7fe973c9b0b4f04e741dffcb1fe0e238199d507fc4281ee3574d8ec5a
MD5 51b8fd8cf9d792ba1c3ae9f3cd5dc3ff
BLAKE2b-256 1835fb3c9e653d18d2a8574fd51f3b63faddf6e377d3f7e5519392624ae21780

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_litestream-0.5.12-py3-none-manylinux2014_aarch64.musllinux_1_1_aarch64.whl:

Publisher: publish.yml on Tobi-De/django-litestream

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file django_litestream-0.5.12-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for django_litestream-0.5.12-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b41519d112ad9dc02480ef8090070b2e1e201c2a98d947f4f99fc122f23290cd
MD5 81b1222b5ee6acbd4833d2e6a8f15c9b
BLAKE2b-256 969613c938ecea86e4e69cd2dc0f2abfe89d2797b3550dae7e7488321db677db

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_litestream-0.5.12-py3-none-macosx_11_0_arm64.whl:

Publisher: publish.yml on Tobi-De/django-litestream

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file django_litestream-0.5.12-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for django_litestream-0.5.12-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9b9ce0cf9aa0d86f2324dba808a542956dade5153d0955303c357e5d38eab0b9
MD5 163cb58622794a64d4fbc1b0c389e408
BLAKE2b-256 b995214e431c061c8077142f3d6f3f91d88d6b8039abc29fbbf9b3fc955f4da6

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_litestream-0.5.12-py3-none-macosx_10_9_x86_64.whl:

Publisher: publish.yml on Tobi-De/django-litestream

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file django_litestream-0.5.12-py3-none-any.whl.

File metadata

File hashes

Hashes for django_litestream-0.5.12-py3-none-any.whl
Algorithm Hash digest
SHA256 dd64e025d3ad21e1be2e1069ff388748b292b8970eac88dc5b116388b85d356e
MD5 419a598de102a149a9040bb85c4c3ac3
BLAKE2b-256 efbc36ded1648e0e7b3553c5c416c6649e3f333a2fe7bfcfbef0378114a05752

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_litestream-0.5.12-py3-none-any.whl:

Publisher: publish.yml on Tobi-De/django-litestream

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page