Skip to content

AMSDAL Models

A Python ORM that goes beyond traditional data access — define models in JSON Schema or Python, connect to any database, and get migrations, validation, querysets, and a full REST API out of the box.

PyPI - Version PyPI - Python Version


What It Does

AMSDAL Models handles the entire data layer of your application:

  • Define models in JSON Schema or Python classes — your choice
  • Connect to any database through AMSDAL Glue — PostgreSQL, SQLite, or multiple databases simultaneously
  • Query data with a Django-inspired QuerySet API — filtering, ordering, pagination, bulk operations
  • Run migrations automatically — schema changes are detected, generated, and applied
  • Validate & serialize via Pydantic integration — runtime type safety for free
  • Serve a REST API instantly with AMSDAL Server — auto-generated CRUD endpoints for every model

What Makes It Different

Built on Pydantic

AMSDAL Models are Pydantic models under the hood. You get full runtime validation and serialization out of the box — type coercion, custom validators, JSON Schema generation, and seamless integration with the rest of the Python ecosystem. No extra layer between your ORM and your data contracts.

Async Native

AMSDAL is built with async/await from the ground up. All database operations — queries, inserts, updates, migrations — support async execution natively, so you can use it with FastAPI, aiohttp, or any async framework without blocking.

Multi-Database Out of the Box

Most ORMs lock you into one database. AMSDAL Models connect to multiple databases simultaneously through AMSDAL Glue — SQL and NoSQL. Route different models to different backends, read from PostgreSQL, write to MongoDB, aggregate across both — same QuerySet API, no glue code.

Immutable Data History

Every change to your data and schemas is tracked automatically. You get a full audit trail without writing a single line of extra code — who changed what, when, and what the previous value was. Built on a Lakehouse architecture.

From Models to API in Seconds

Define a model, run migrations, and you have a fully-featured REST API with authentication, permissions, and OpenAPI docs. No views, no serializers, no URL routing — it just works.

When to Use It

  • You need a backend fast — models → migrations → API → deploy, all in minutes
  • You work with multiple databases — query and write across different stores with one API
  • You need data history — automatic audit trail for compliance, debugging, or analytics
  • You want less boilerplate — no separate serializers, views, or URL configs

Installation

pip install amsdal