Skip to content

rundef/sqlalchemy-memory

Repository files navigation

sqlalchemy-memory

PyPI - Version CI Documentation PyPI - Downloads

In‑memory SQLAlchemy 2.0 dialect for blazing‑fast prototyping

A pure‑Python SQLAlchemy 2.0 dialect that runs entirely in RAM. It avoids typical database I/O and ORM overhead while maintaining full compatibility with the SQLAlchemy 2.0 Core and ORM APIs. Ideal for rapid prototyping, backtesting engines, simulations.

❓ Why ?

This project was inspired by the idea of building a fast, introspectable, no-dependency backend for SQLAlchemy.

It is useful for:

  • Prototyping new applications

  • Educational purposes

  • Testing ORM logic without spinning up a real database engine

Unlike traditional in-memory solutions like SQLite, sqlalchemy-memory fully avoids serialization, connection pooling, and driver overhead, leading to much faster in-memory performance while keeping the familiar SQLAlchemy API.

It is also perfect for applications that need a lightweight, high-performance store compatible with SQLAlchemy, such as backtesting engines, simulators, or other tools where you don't want to maintain a separate in-memory layer alongside your database models.

Data is kept purely in RAM and is volatile: it is not persisted across application restarts and is cleared when the engine is disposed.

✨ Features

  • SQLAlchemy 2.0 support: ORM & Core expressions, sync & async modes
  • Zero I/O overhead: pure in‑RAM storage (dict/list under the hood)
  • Commit/rollback support
  • Index support: indexes are recognized and used for faster lookups
  • Lazy query evaluation: supports generator pipelines and short-circuiting
    • first()-style queries avoid scanning the full dataset
    • Optimized for read-heavy workloads and streaming filters

📊 Benchmark

Curious how sqlalchemy-memory stacks up?

View Benchmark Results comparing sqlalchemy-memory to in-memory SQLite

📦 Installation

pip install sqlalchemy-memory

📘 Documentation

👉 See the official documentation for usage examples

🧪 Testing

Simply run make tests

📄 License

This project is licensed under the MIT License. See LICENSE for details.

About

Fast in‑RAM SQLAlchemy 2.0 dialect: no DB, fully ORM/Core, ideal for prototyping & simulations

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published