| Crates.io | diesel_versioning |
| lib.rs | diesel_versioning |
| version | 0.1.1 |
| created_at | 2025-05-15 16:58:25.858715+00 |
| updated_at | 2026-01-12 16:36:57.380209+00 |
| description | Optimistic locking for diesel.rs |
| homepage | https://github.com/frankstolle/diesel_versioning |
| repository | https://github.com/frankstolle/diesel_versioning |
| max_upload_size | |
| id | 1675368 |
| size | 25,440 |
Diesel-Versioning implements optimistic locking for Diesel. This is achieved by an additional field on every entity, which should be support optimistic locking.
The entity must have implemented diesel::AsChangeset and diesel::Identifiable to implement Versioned. You can
use the provided derive macro.
use diesel::AsChangeset;
use diesel::Identifiable;
use diesel_versioning::Versioned;
#[derive(AsChangeset, Identifiable, Versioned)]
#[diesel(table_name = schema::users)]
#[diesel(check_for_backend(diesel::pg::Pg))]
pub struct User {
pub id: i32,
#[version]
pub version: i32,
pub body: String,
}
Currently only integer values are supported as version field.
If you use the feature-flag async, you have to use VersionedAsync instead of Versioned.
Licensed under either of these: