14 releases
| 0.5.8 | Feb 8, 2026 |
|---|---|
| 0.5.6 | Jul 4, 2024 |
| 0.5.4 | Jun 23, 2023 |
| 0.4.0 | Mar 4, 2023 |
#1078 in Database interfaces
Used in typesafe_repository_macro
96KB
2K
SLoC
Features
- Identity traits (plus helper types like
ValidIdentityandIdentityOf) - Repository traits like
Add,Get,List - No need to use
unimplemented!()or blanket implementations- construct your own repository based on set of traits - No heavy macro magic
- Transactional repository traits based on
HConswith rollback feature - Transactional wrapper for repository, which can be used both as plain repository inheriting behavior of inner repository, or transactional repository
- Perform operations on many repositories in one transaction
Goals
- Provide flexible and abstract generic-based repository traits
- Easy transaction implementation
- Non-essential features are optional
- No unsafe and panics
- No runtime errors caused by library
- No enforced error types
Roadmap
- transactional traits and
RepositoryWrapper -
RepositoryWrapperrollback support - seamless transactional and non-transactional interop for
RepositoryWrapper -
IdentityBy-like trait for marker structs - optional serde support
- sync/async operations with optional features
- sync transactions support
- pointer-based
ValidIdentity - pass previous operation result as next operation argument in transactions
-
HConswrapper for more convenient output extraction -
TransactionRunnersettings and different mappers - transaction log
- trait generation based on methods names (like in Spring repositories)
Notes
Many generic bounds were made out of heuristics, so feel free to propose reasonable bound changes
Project is in early stage, expect breaking API changes
Dependencies
~2.5–6MB
~102K SLoC