SkillAgentSearch skills...

Oxyde

Oxyde ORM is a type-safe, Pydantic-centric asynchronous ORM with a high-performance Rust core designed for clarity, speed, and reliability.

Install / Use

/learn @mr-fatalyst/Oxyde
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<p align="center"> <img src="https://raw.githubusercontent.com/mr-fatalyst/oxyde/master/logo.png" alt="Logo" width="200"> </p> <p align="center"> <b>Oxyde ORM</b> is a type-safe, Pydantic-centric asynchronous ORM with a high-performance Rust core designed for clarity, speed, and reliability. </p> <p align="center"> Inspired by the elegance of <a href="https://www.djangoproject.com/">Django's ORM</a>, Oxyde focuses on explicitness over magic, providing a modern developer-friendly workflow with predictable behavior and strong typing throughout. </p> <p align="center"> <img src="https://img.shields.io/github/license/mr-fatalyst/oxyde"> <img src="https://github.com/mr-fatalyst/oxyde/actions/workflows/test.yml/badge.svg"> <img src="https://img.shields.io/pypi/v/oxyde"> <img src="https://img.shields.io/pypi/pyversions/oxyde"> <img src="https://static.pepy.tech/badge/oxyde" alt="PyPI Downloads"> </p>

Heads up! Oxyde is a young project under active development. The API may evolve between minor versions. Feedback, bug reports, and ideas are very welcome. Feel free to open an issue!

Features

  • Django-style API — Familiar Model.objects.filter() syntax
  • Pydantic v2 models — Full validation, type hints, serialization
  • Async-first — Built for modern async Python with asyncio
  • Rust performance — SQL generation and execution in native Rust
  • Multi-database — PostgreSQL, SQLite, MySQL support
  • Transactionstransaction.atomic() context manager with savepoints
  • Migrations — Django-style makemigrations and migrate CLI

Performance

Benchmarks vs popular Python ORMs (avg ops/sec, higher is better):

| Database | Oxyde | Tortoise | Piccolo | Django | SQLAlchemy | SQLModel | Peewee | |------------|-------|----------|---------|--------|------------|----------|--------| | PostgreSQL | 1,475 | 888 | 932 | 736 | 445 | 431 | 80 | | MySQL | 1,239 | 794 | — | 714 | 536 | 505 | 461 | | SQLite | 2,525 | 1,882 | 469 | 1,294 | 588 | 567 | 548 |

Full benchmark report: Documentation

Installation

pip install oxyde

Quick Start

1. Initialize Project

oxyde init

This creates oxyde_config.py with your database settings and model paths.

2. Define Models

# models.py
from oxyde import Model, Field

class User(Model):
    id: int | None = Field(default=None, db_pk=True)
    name: str
    email: str = Field(db_unique=True)
    age: int | None = Field(default=None)

    class Meta:
        is_table = True

3. Create Tables

oxyde makemigrations
oxyde migrate

4. Use It

import asyncio
from oxyde import db
from models import User

async def main():
    await db.init(default="sqlite:///app.db")

    # Create
    user = await User.objects.create(name="Alice", email="alice@example.com", age=30)

    # Read
    users = await User.objects.filter(age__gte=18).all()
    user = await User.objects.get(id=1)

    # Update
    user.age = 31
    await user.save()

    # Delete
    await user.delete()

    await db.close()

asyncio.run(main())

Transactions

from oxyde.db import transaction

async with transaction.atomic():
    user = await User.objects.create(name="Alice", email="alice@example.com")
    await Profile.objects.create(user_id=user.id)
    # Auto-commits on success, rolls back on exception

FastAPI Integration

from fastapi import FastAPI
from oxyde import db

app = FastAPI(
    lifespan=db.lifespan(
        default="postgresql://localhost/mydb",
    )
)

@app.get("/users")
async def get_users():
    return await User.objects.filter(is_active=True).all()

Database Support

| Database | Min Version | Status | Notes | |------------|-------------|--------|-------| | PostgreSQL | 12+ | Full | RETURNING, UPSERT, FOR UPDATE/SHARE, JSON, Arrays | | SQLite | 3.35+ | Full | RETURNING, UPSERT, WAL mode by default | | MySQL | 8.0+ | Full | UPSERT via ON DUPLICATE KEY, FOR UPDATE/SHARE |

Connection URLs:

postgresql://user:password@localhost:5432/database
sqlite:///path/to/database.db
sqlite:///:memory:
mysql://user:password@localhost:3306/database

Ecosystem

Oxyde Admin

Auto-generated admin panel for Oxyde ORM with zero boilerplate.

  • Automatic CRUD, search, filters, export
  • FastAPI, Litestar, Sanic, Quart, Falcon
  • Theming, authentication, bulk operations
pip install oxyde-admin

GitHub →

Documentation

Full documentation: https://oxyde.fatalyst.dev/

Contributing

If you have suggestions or find a bug, please open an issue or create a pull request on GitHub.

License

This project is licensed under the terms of the MIT license.

View on GitHub
GitHub Stars649
CategoryData
Updated1d ago
Forks7

Languages

Python

Security Score

100/100

Audited on Mar 27, 2026

No findings