In-memory SQLAlchemy 2.0 dialect for blazing‑fast prototyping.
Project description
sqlalchemy-memory
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/listunder 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.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sqlalchemy_memory-0.4.0.tar.gz.
File metadata
- Download URL: sqlalchemy_memory-0.4.0.tar.gz
- Upload date:
- Size: 23.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d0e1e4199d84a440d516aa2a23ad5271658b7de19c3a6e3dd19f25df3bef9c0a
|
|
| MD5 |
2a96f7c40bc5ffc586c397abd2dd6219
|
|
| BLAKE2b-256 |
ec326421a518c5e9bde10f1002df82b624f32112f51b474b04b3075fb02111bf
|
File details
Details for the file sqlalchemy_memory-0.4.0-py3-none-any.whl.
File metadata
- Download URL: sqlalchemy_memory-0.4.0-py3-none-any.whl
- Upload date:
- Size: 21.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8960324ab3a52e40b258ffb74e577a9e7d029c48846e90e806ddf419f91536bc
|
|
| MD5 |
b3ad46ae7dd049934cd9f7313af84a5e
|
|
| BLAKE2b-256 |
2ab9f4ad379eb3b083f2dfce8d5eab155c6cd50b2043463b5d7d44a69dc81334
|