An Eloquent-inspired ORM for Dart/Flutter
Simplify interactions with SQLite, PostgreSQL, PowerSync, or any SQL-compatible database. Keep your code clean and readable.
In French, bavard means "talkative" or "chatty".
We chose this name because we believe your data layer should be descriptive and fluent. Bavard turns boring SQL interactions into a natural conversation between your code and your database, making complex queries as easy as a friendly chat.
Seamlessly integrated with Flutter for mobile, desktop, and web applications.
Write readable queries like User().query().where(...).get().
Models are responsible for saving themselves. user.save(), user.delete().
Works with any database driver via the DatabaseAdapter interface.
HasOne, HasMany, BelongsTo, ManyToMany, and Polymorphic relations supported out of the box.
Code generation is completely optional. Bavard works entirely at runtime, giving you a faster development workflow.
Native support for client-side UUIDs and driver-agnostic architecture, perfect for local-first apps.
Built-in support for soft deletes, automatic timestamps, and global scopes out of the box.
Automatic hydration of complex types like JSON, DateTime, and Booleans between Dart and your database.