Skip to main content

RSN DB

A Rust-powered embedded database for Python — fast, secure, and optionally opinionated.

PyPI version Python Rust License: MIT

Installation · Quick start · Documentation · Security · Changelog


RSN DB is a single-file embedded database with a native Rust engine and a Python API. Use it like a lightweight local datastore, a graph-aware knowledge store (GraphRAG), or an agent-friendly shell with optional MemPalace AI memory integration.

Highlights

  • Performance — Rust core, zstd compression, optimized indexes
  • Security — AES-256-GCM encryption at rest, SHA-256 integrity checks, path guards, DoS limits
  • Persistence — Explicit save() / load() / snapshot() with JSON engine snapshots
  • GraphRAG — Ingest text and query relationships without an external LLM
  • Personality modes — Professional, Friendly, or Snarky CLI feedback (130+ snark lines, mood/vitals in Snarky mode)
  • AI memory — Session memory sidecar plus optional official MemPalace bridge
  • Agent-friendly CLI — Non-interactive -c, --json, --no-prompt for automation
RSN DB installation

Installation

pip install rsn_db

Optional extras

# Official MemPalace integration (local-first AI memory)
pip install 'rsn_db[mempalace]'

# Development / tests
pip install 'rsn_db[dev]'

Requires Python 3.9+.

Windows (cmd / PowerShell)

Prebuilt wheels are published for Windows (win_amd64). Install with:

pip install -U rsn_db
rsn-db --version

If pip appears stuck at "Building wheel", it is compiling Rust from source because no wheel matched your platform/Python. Either:

  1. Upgrade to the latest version (needs a published Windows wheel): pip install -U rsn_db
  2. Use the alias after install: rsn-db (not rsn) if another program owns that name
  3. Or install Rust + Visual Studio Build Tools and wait several minutes for the source build to finish

Prebuilt wheels are published for common Linux targets; other platforms build from source via maturin (Rust toolchain required).


Quick start

Beginners (recommended)

from rsn_db.beginners import quick_start, insert_many, records_to_dicts
from rsn_db import Query

db = quick_start("my_app.rsndb", mode="friendly")
db.create_table("tasks", {"title": {"type": "string", "required": True}})
insert_many(db, "tasks", [{"title": "Learn RSN DB"}, {"title": "Ship the release"}])
print(records_to_dicts(db.query(Query("tasks"))))
db.save()

Context manager (auto-save on exit)

from rsn_db import open_db

with open_db("shop.rsndb") as db:
    db.create_table("products", {"name": {"type": "string", "required": True}})
    db.insert("products", {"name": "Widget", "price": 9.99})

Core API (full control)

from rsn_db import Database, Query

db = Database(
    storage_path="data.rsndb",
    encryption_key="change-me-in-production",
    compression="zstd",
    mode="professional",
)

db.create_table("users", {"name": {"type": "string", "required": True}})
db.insert("users", {"name": "Alice", "age": 30})

rows = db.query(Query("users").where_eq("name", "Alice"))
db.save()
db.snapshot("backup.rsndb")

See documentation/BEGINNERS.md for a guided walkthrough.


CLI

Two console commands are installed — same program, pick either:

Command When to use
rsn Default on macOS/Linux
rsn-db Recommended on Windows if rsn conflicts with another tool in cmd/PowerShell

Interactive shell:

rsn
# Windows alternative:
rsn-db

Automation / agents

rsn --no-prompt -c "SHOW TABLES"
rsn-db --mode snarky -c "PULSE"
rsn-db --storage ./app.rsndb --json -c "COUNT users"
rsn-db --help

REPL commands (non-exhaustive)

Category Examples
Tables SHOW TABLES, DESCRIBE users, COUNT users
GraphRAG INGEST …, GRAPH_QUERY …
Alive (Snarky) PULSE, MOOD, VITALS, ACHIEVEMENT
MemPalace MEMPALACE HELP, MEMPALACE SEARCH …, MEMPALACE REMEMBER …
Transactions BATCH, COMMIT, ROLLBACK
RSN DB interactive session

MemPalace integration

RSN DB wraps the official MemPalace/mempalace package (wings → rooms → drawers, ChromaDB, local-first). Install the extra, then:

from rsn_db import open_db

with open_db("app.rsndb", mempalace=True) as db:
    db.remember("User prefers Tuesday deploys")
    print(db.palace_search("deploy schedule"))
    db.sync_to_mempalace()

Use only official sources: GitHub, PyPI, mempalaceofficial.com.

Details: documentation/mempalace.md


Session memory

Lightweight JSON sidecar for conversation turns — no extra install:

from rsn_db import SessionMemory

mem = SessionMemory.for_database("app.rsndb")
mem.add("user", "Remember: staging uses port 8081")
mem.add("assistant", "Noted.")
mem.save()

With MemPalace enabled, RsnDatabase.sync_to_mempalace() pushes turns into your palace.


GraphRAG

Ingest unstructured text and query it locally:

db.ingest("RSN DB was built with Rust and exposed to Python via PyO3.", source="docs")
print(db.graph_query("What is RSN DB built with?"))

Personality modes

Mode Behavior
Professional Minimal, neutral output
Friendly Helpful tone with light personality
Snarky Full commentary, 130+ remark pool, mood tracking, ambient PULSE / VITALS

Set via Python (mode="snarky"), CLI (--mode snarky), or saved preference on first run.


Security

RSN DB is designed with a security-first posture:

Control Description
Encryption at rest AES-256-GCM (optional encryption_key)
Integrity SHA-256 checksums on persisted blocks
Path guard Blocks absolute paths and directory traversal
DoS limits Caps on batch size, recursion depth, command length
Safe imports SQLite/JSON import respects declared schema types

Full write-up: documentation/security.md · documentation/threat_model.md


Documentation

Document Description
BEGINNERS.md First-time user guide
mempalace.md Official MemPalace bridge
security.md Security features and guidance
threat_model.md STRIDE threat model
patchnotes.md Version history
examples/ Usage examples

Development

git clone https://github.com/Enderchefcoder/RSN_DB.git
cd RSN_DB
pip install maturin pytest pytest-cov 'mempalace>=3.3.5,<4'
maturin develop --release
pytest tests/ --cov=rsn_db --cov-config=pyproject.toml
cargo clippy -- -W clippy::pedantic

License

MIT — see LICENSE.


Built with Rust and Python · GitHub · PyPI

Release files for rsn-db 0.4.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rsn-db 0.4.6
File Size Uploaded
rsn_db-0.4.6.tar.gz 1.5 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for rsn-db 0.4.6
File Interpreter ABI Platform
rsn_db-0.4.6-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details
rsn_db-0.4.6-cp39-abi3-manylinux_2_34_x86_64.whl CPython 3.9 abi3 Linux glibc 2.34+ x86-64 Details

Total release size: 6.6 MB

Release files / rsn_db-0.4.6.tar.gz

Download URL rsn_db-0.4.6.tar.gz
Size 1.5 MB
Tags Source
SHA-256 checksum
How to use checksums
c24898378f5baf5fc505412e76fd3cfee2c77fb29098d4643aa9e664724e6faa
BLAKE2b-256 checksum
How to use checksums
4edd3856d358f7be28b6105e882f31353d8e6aeabd4c55d2428dda85c265c607
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / rsn_db-0.4.6-cp39-abi3-win_amd64.whl

Download URL rsn_db-0.4.6-cp39-abi3-win_amd64.whl
Size 2.6 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
f3e0a20ab48a65bca0248437f70711d2e9bb7a0d921adf74689e3dab282243b3
BLAKE2b-256 checksum
How to use checksums
5df5440e9f9dd34e5f906be103a7e9412240ef3be89b4fc2064c94bd461e30ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / rsn_db-0.4.6-cp39-abi3-manylinux_2_34_x86_64.whl

Download URL rsn_db-0.4.6-cp39-abi3-manylinux_2_34_x86_64.whl
Size 2.5 MB
Tags CPython 3.9 Linux glibc 2.34+ x86-64 abi3
SHA-256 checksum
How to use checksums
6817f96fa8f75b7dc192b98c67279285fd80635afb255b94f2d2bfdd39a394b1
BLAKE2b-256 checksum
How to use checksums
20c838433512f39412a05fe7ad9eb3f5582640451ca2efeb7685e9cc6914e275
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.4.6 This release

3 release files

0.4.5

3 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.2.1

1 release file

0.2.0

1 release file

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page