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

Simple

With clear syntax, declaring models was never so easy.

Intuitive

With clear field definition and easy to understand.

Friendly

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.