<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>은 명확성, 속도, 그리고 신뢰성을 위해 설계된, 고성능 Rust 코어를 갖춘 타입 안전(type-safe)하고 Pydantic 중심적인 비동기 ORM (Object-Relational Mapping)입니다. </p>
<p align="center"> <a href="https://www.djangoproject.com/">Django의 ORM</a>이 가진 우아함에서 영감을 받은 Oxyde는 마법 같은 동작보다는 명시성에 집중하며, 전 과정에 걸쳐 예측 가능한 동작과 강력한 타이핑 (strong typing)을 제공하는 현대적이고 개발자 친화적인 워크플로우를 제공합니다. </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>
주의! Oxyde는 활발히 개발 중인 초기 프로젝트입니다. API는 마이너 버전 간에 변경될 수 있습니다. 피드백, 버그 보고 및 아이디어를 언제나 환영합니다. 자유롭게 이슈를 생성(open an issue)해 주세요!
주요 기능 (Features)
- Django 스타일 API — 익숙한
Model.objects.filter() 구문
- Pydantic v2 모델 — 완전한 검증 (validation), 타입 힌트 (type hints), 직렬화 (serialization)
- 비동기 우선 (Async-first) —
asyncio를 사용하는 현대적인 비동기 Python을 위해 구축됨
- Rust 성능 — 네이티브 Rust를 통한 SQL 생성 및 실행
- 멀티 데이터베이스 (Multi-database) — PostgreSQL, SQLite, MySQL 지원
- 트랜잭션 (Transactions) — 세이브포인트 (savepoints)를 포함한
transaction.atomic() 컨텍스트 매니저
- 마이그레이션 (Migrations) — Django 스타일의
makemigrations 및 migrate CLI
인기 있는 Python ORM들과의 벤치마크 비교 (평균 초당 작업 수, 높을수록 좋음):
인기 있는 Python ORM들과의 벤치마크 비교 (평균 초당 작업 수, 높을수록 좋음):
| Database | Oxyde | Tortoise | Piccolo | Django | SQLAlchemy | SQLModel | Peewee |
|---|
| PostgreSQL | 1,475 | 888 | 932 | 736 | 445 | 431 | 80 |
| ... | | | | | | | |
| Full benchmark report: Documentation | | | | | | | |
설치 (Installation)
빠른 시작 (Quick Start)
1. 프로젝트 초기화 (Initialize Project)
이 명령어는 데이터베이스 설정과 모델 경로가 포함된 oxyde_config.py 파일을 생성합니다.
2. 모델 정의 (Define Models)
from oxyde import Model, Field
...
3. 테이블 생성 (Create Tables)
oxde makemigrations
oxde migrate
4. 사용하기 (Use It)
import asyncio
from oxyde import db
from models import User
...
트랜잭션 (Transactions)
from oxyde.db import transaction
async with transaction.atomic():
...
FastAPI 통합 (FastAPI Integration)
from fastapi import FastAPI
from oxyde import db
...
데이터베이스 지원 (Database Support)
| Database | Min Version | Status | Notes |
|---|
| PostgreSQL | 12+ | Full | RETURNING, UPSERT, FOR UPDATE/SHARE, JSON, Arrays |
| ... | | | |
| 연결 URL: | | | |
postgresql://user:password@localhost:5432/database
sqlite:///path/to/database.db
sqlite:///:memory:
...
생태계 (Ecosystem)
Oxyde Admin
보일러플레이트 코드 없이 Oxyde ORM을 위한 자동 생성 관리자 패널입니다.
- 자동 CRUD, 검색(search), 필터(filters), 내보내기(export)
- FastAPI, Litestar, Sanic, Quart, Falcon 지원
- 테마 지정(Theming), 인증(authentication), 일괄 작업(bulk operations)
GitHub →
문서 (Documentation)
전체 문서는 **https://oxyde.fatalyst.dev/**에서 확인하실 수 있습니다.
Contributing (기여하기)
제안 사항이 있거나 버그를 발견하면, GitHub에 이슈 (Issue)를 오픈하거나 풀 리퀘스트 (Pull Request)를 생성해 주세요.
License (라이선스)
이 프로젝트는 MIT 라이선스 (MIT license) 조건에 따라 라이선스가 부여됩니다.