bb8
rust-mysql-simple
bb8 | rust-mysql-simple | |
---|---|---|
2 | 3 | |
676 | 647 | |
- | - | |
7.6 | 6.6 | |
15 days ago | 16 days ago | |
Rust | Rust | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
bb8
- How to import a struct that impls a trait into a type that requires that impl
-
Reviews of the Diesel ORM, are there better alternatives?
The current bb8 implementation (0.7 and 0.8) seam to sport a rather serious bug that can lead to deadlocks under load: https://github.com/djc/bb8/issues/122
rust-mysql-simple
- What would I need to use in order to interface with a database?
-
Diesel 2.0.0 RC1
We use libmysqlclient mostly for historic reasons. The mysql crate did just not exist back then when diesel started and rewriting all the internal code now is just something that we did not have the time nor motivation for. That written: Diesel is designed in such a way that connections can be provided by third party crates, even for existing backends. Diesel 2.0 adds explicit documentation for this as part of the connection trait and we are definitively interested to see pure rust implementations for the postges and mysql backend there. Also there is this discussion in the rust-mysql crate repository about a potential diesel integration. If someone is interested in working on this (or the equivalent implementation for postgresql), please reach out to us. We definitively can provide some pointers where to look for stuff and how to generally approach such an implementation. It's likely nothing that's really hard, it just requires someone to spend some work on it.
-
Reviews of the Diesel ORM, are there better alternatives?
I can understand that this can be frustrating and I know that the situation there is not ideal for diesel. There are certainly things to improve there by either providing a bundling support which builds the native library as part of the normal build process or by implementing a pure rust connection implementation. Both is possible with diesel, but requires some work. At least the pure rust connection implementation is something that can be provided by a third party crate now with upcoming diesel 2.0 release. If you are interested in that checkout this and this issue. As for the bundling support: This requires changes in the mysqlclient-sys and pq-sys crates. Again help there is welcome. In the end it makes me sad that some people have repeating decided that a solution to this problem is to write just another crate instead of helping to fix these issues. This just results in everyone have more work to do, as there are now two non-perfect solutions instead of having one slightly improved solution.
What are some alternatives?
rust-postgres - Native PostgreSQL driver for the Rust programming language
mysql_async - Asyncronous Rust Mysql driver based on Tokio.
diesel_async - Diesel async connection implementation
mysql-proxy-rs - A highly scalable MySQL Proxy framework written in Rust
rbatis - Rust Compile Time ORM robustness,async, pure Rust Dynamic SQL
r2d2 - A generic connection pool for Rust
async-bb8-diesel - Safe asynchronous access to Diesel and the bb8 connection manager
sqlx - 🧰 The Rust SQL Toolkit. An async, pure Rust SQL crate featuring compile-time checked queries without a DSL. Supports PostgreSQL, MySQL, and SQLite.
cornucopia - Generate type-checked Rust from your PostgreSQL.
MeiliSearch - A lightning-fast search API that fits effortlessly into your apps, websites, and workflow
ormlite - An ORM in Rust for developers that love SQL.
tikv - Distributed transactional key-value database, originally created to complement TiDB