Skip to main content

Add your description here

Project description

SQLPile - SQL-Based Multi-Layered Caching (Arrow + SQLite + Postgres)

Full-featured multi-layered distributed cache using SQL databases. Why build a cache on top of a database? Largely because SQL has similar interfaces across many different databases, and it's easy to scale out. This project is a work in progress, and is not yet ready for production use.

Think about this project as if it's like Ibis, but for SQL caching. The goal is to have a simple interface that can be used to cache data in a SQL database. The project is designed to be used with a SQL database, and is not designed to be used with a NoSQL database. Just use redis at that point.

Installation

pip install sqlpile

Usage

from sqlpile import sqlpile
import sleep


@sqlpile
def expensive_function():
    sleep.sleep(10)
    return 1


def main():
    for _ in range(10):
        # Moves slow at first, but speeds up over time
        print(expensive_function)

Features

  • Multi-layered caching using local (SQLite) and remote (Postgres) databases
  • Serialization and compression of cached values using cloudpickle and lz4
  • Hashing of cache keys using xxhash for efficient lookup
  • Automatic caching of function results using a decorator
  • Asynchronous support with asyncio and aiosqlite
  • Dependency management using pyproject.toml and hatch
  • Code style enforcement with ruff

Configuration

from sqlpile.config import Config

config = ApplicationSettings(
    local_database_type="sqlite",
    local_database_name="cache.db",
    remote_database_type="postgresql",
    # ...
)

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

sqlpile-0.2.2.tar.gz (2.6 MB view details)

Uploaded Source

Built Distribution

sqlpile-0.2.2-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file sqlpile-0.2.2.tar.gz.

File metadata

  • Download URL: sqlpile-0.2.2.tar.gz
  • Upload date:
  • Size: 2.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.1

File hashes

Hashes for sqlpile-0.2.2.tar.gz
Algorithm Hash digest
SHA256 f6fc0490ff1d4bbf465a7bbd2826a5350752175b38d8c926de023b07ec1fef5d
MD5 b7bf39bba9613fc6c19b1c27734b041f
BLAKE2b-256 80089a32db102983937b85a5ddedd7595ef5291f50ac07ccb2a7cd9bb856edcb

See more details on using hashes here.

File details

Details for the file sqlpile-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: sqlpile-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 8.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.1

File hashes

Hashes for sqlpile-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 618415e0935fbb9a7eecd5a1d2f349c4d82426fc04fb7a22fe6e3dc4a0c3f966
MD5 fba1ab4b0f3f7e4921e32c93e8dd4a45
BLAKE2b-256 f1e64cc6d877bc6ec242d340a6e0873baf6c7413ea8b307e0e4a01b69ce8a954

See more details on using hashes here.

Supported by

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