Вход на сайт

Просмотр новости

Найдите то, что Вас интересует

oxyde: Type-Safe, Pydantic-Centric Async ORM

Дата публикации: 20-02-2026 00:33:33



Основное содержимое страницы с новостью.

Logo

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

Inspired by the elegance of Django's ORM, Oxyde focuses on explicitness over magic, providing a modern developer-friendly workflow with predictable behavior and strong typing throughout.

68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6d722d666174616c7973742f6f78796465 badge.svg 68747470733a2f2f696d672e736869656c64732e696f2f707970692f762f6f78796465 68747470733a2f2f696d672e736869656c64732e696f2f707970692f707976657273696f6e732f6f78796465 PyPI Downloads


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
  • Transactions — transaction.atomic() context manager with savepoints
  • Migrations — Django-style makemigrations and migrate CLI

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

Quick Start

1. Initialize Project

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

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.

Схожие новости

#Наименование новостиТональностьИнформативностьДата публикации
1Oxyde ORM - Django-like Pydantic-driven Async ORM031.8422-03-2026
2django-modern-rest: REST With Types and Async Support024.2923-04-2026
3onlymaps: A Python Micro-ORM03510-01-2026
4rsloop: An Event Loop for Asyncio Written in Rust01020-04-2026
5svc-infra: Bundled FastAPI Infrastructure03502-01-2026
6django-orm-lens: Django Schema Review03510-08-2026
7django-tasks-db - An ORM-based backend for Django Tasks03521-02-2026
8Pyre: New JIT Python interpreter written in Rust01006-04-2026
9PyInfra: Infrastructure Deserves Real Code in Python, Not YAML Soup01007-02-2026
10Semantic Caching for LLMs: FastAPI, Redis, and Embeddings01029-04-2026

Классификация: . Схожих патентов: 0. Схожих новостей: 10. Тональность: 0. Информативность: 50. Источник: pythondigest.ru.