Вход на сайт

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

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

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
  • Transactionstransaction.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.