
Security News
Software Engineering Daily Podcast: Feross on AI, Open Source, and Supply Chain Risk
Socket CEO Feross Aboukhadijeh joins Software Engineering Daily to discuss modern software supply chain attacks and rising AI-driven security risks.
oxyde
Advanced tools
High-performance async Python ORM with Rust core.
Oxyde combines Python's expressiveness with Rust's performance. Models defined with Pydantic v2, queries executed in native Rust.
from oxyde import OxydeModel, Field, db
class User(OxydeModel):
class Meta:
is_table = True
id: int | None = Field(default=None, db_pk=True)
email: str = Field(db_unique=True)
age: int = Field(ge=0, le=150)
async def main():
async with db.connect("postgresql://localhost/mydb"):
# Create
user = await User.objects.create(email="alice@example.com", age=30)
# Read
users = await User.objects.filter(age__gte=18).limit(10).all()
# Update
await User.objects.filter(id=user.id).update(age=31)
# Delete
await User.objects.filter(id=user.id).delete()
Model.objects.filter() syntaxasyncioatomic() context manager with savepointsmakemigrations and migrate CLIpip install oxyde
from oxyde import OxydeModel, Field
class User(OxydeModel):
class Meta:
is_table = True
id: int | None = Field(default=None, db_pk=True)
name: str
email: str = Field(db_unique=True)
age: int | None = Field(default=None)
from oxyde import db
async with db.connect("sqlite:///app.db"):
# Create
user = await User.objects.create(name="Alice", email="alice@example.com", age=30)
# Query
adults = await User.objects.filter(age__gte=18).all()
# Get single object
user = await User.objects.get(id=1)
# Update
user.age = 31
await user.save()
# Delete
await user.delete()
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
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 | 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 |
Recommendation: PostgreSQL for production, SQLite for development/testing.
SQLite < 3.35: Falls back to
last_insert_rowid()which may return incorrect IDs with concurrent inserts.MySQL: No RETURNING clause — uses
last_insert_id(). Bulk INSERT returns calculated ID range which may be incorrect with concurrent inserts.
Connection URLs:
"postgresql://user:password@localhost:5432/database"
"sqlite:///path/to/database.db"
"sqlite:///:memory:"
"mysql://user:password@localhost:3306/database"
Full documentation: https://oxyde.fatalyst.dev/
If you have suggestions or find a bug, please open an issue or create a pull request on GitHub.
This project is licensed under the terms of the MIT license.
FAQs
High-performance async Python ORM with Rust core
We found that oxyde demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Socket CEO Feross Aboukhadijeh joins Software Engineering Daily to discuss modern software supply chain attacks and rising AI-driven security risks.

Security News
GitHub has revoked npm classic tokens for publishing; maintainers must migrate, but OpenJS warns OIDC trusted publishing still has risky gaps for critical projects.

Security News
Rust’s crates.io team is advancing an RFC to add a Security tab that surfaces RustSec vulnerability and unsoundness advisories directly on crate pages.