Universal database connection layer
Please checkout the documentation page for more information (also see examples folder in naphtha)
This crate is to simplify the creation and usage of models that require a database connection. If applied correct, changing the database type is only a feature flag away.
The models can also be compiled and used without database connection support for better usage on server and client side.
- Connect to database using a wrapper, defining the base for interchangeable Databases
- Implement support for
diesel::SQLiteConnection
- Create traits to enable database interaction before and after the execution of the
insert
,update
orremove
transactions - Implement
query_by_{property}
for querying models from the database using an exact match of the given property - Thread safe sharing of the database connection
- Integrate
barrel
crate for writing migrations in Rust, available at runtime - Implement support for
diesel::MySqlConnection
- Implement support for
diesel::PgConnection
- Connection pooling?
- More databases?
It is very easy to get a whole bunch of trait bound not satisfied
error messages when your model is not configured correctly. Make sure that your schema
module and the containing table!
definition is in line with your model
definition and that it uses the correct types defined by barrel.
Unless explicitly stated, any contribution intentionally submitted for inclusion in this project, as defined in the Apache-2.0 license, shall be dual licensed as below, without any additional terms or conditions.
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.