Complex databases done right

import saffier

database = saffier.Database("sqlite:///db.sqlite")
registry = saffier.Registry(database=database)

class User(saffier.Model):
    id = saffier.IntegerField(primary_key=True)
    name = saffier.CharField(max_length=255)
    email = saffier.CharField(max_length=100)
    username = saffier.CharField(max_length=50)

    class Meta:
        registry = registry


With clear syntax, declaring models was never so easy.


With clear field definition and easy to understand.


With familiar interface built on the top of SQLAlchemy core.

Complexity removed to increase productivity

Although built on the top of SQLAlchemy core, Saffier with its familair and friendly interface makes it easy and pleasant to work with.

Default queryset interface facilitating your database operations.

Connect to existing databases and schemas without the need of managing migrations.

From simple queries to complex ManyToMany.

Listen to any event triggered by a model operation.

Connect to different databases or create schemas with ease.

Internal migration system built on the top of SQLAlchemy.

Do you want to join?

Saffier is open source and free to use but also needs enthusiastic people willing to help by contributing in any way, so you will be always welcomed to join.