rust-mysql-simple
Our great sponsors
rust-foundation-community-grant | rust-mysql-simple | |
---|---|---|
7 | 3 | |
20 | 648 | |
- | - | |
0.0 | 6.7 | |
over 1 year ago | 12 days ago | |
Rust | Rust | |
- | 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.
rust-foundation-community-grant
-
When do Rust's traits make your life difficult?
That's a topic where already some work exists. You might want to checkout my collection of bad error messages from such trait heavy crates for example. It's important to notice that most of these errors look complicated, but mostly have a quite simple cause. In some of these cases it's even possible to reword these error messages by removing most of the complicated looking type stuff to something much simpler which then is easier to understand.
-
dfdx v0.10.0 - deep learning now with even more const generic goodness
As with everything in static type checking, the upfront costs seem high (deciphering type errors can be a bit daunting for both diesel, and to a certain extent dfdx), but I feel like (1) this will get better (especially with the work /u/weiznich is doing), and (2) history has shown the upfront costs are worth it (as evidenced by the takeover of typescript and typed Python).
-
Diesel 2.0.0 RC1
This change is hopefully only the starting point to a number of future improvements. I've got a project grant as part of the rust foundation community grant program to work on improving the error messages for trait heavy crates like diesel. Hopefully this will result in other improvements as well. I track this work here. If you hit bad error messages with diesel or any other trait heavy crate, please fill an issue there.
-
Survey of bad error messages emitted by the "misuse" of trait heavy crates
axum does basically ]the trick as bevy](https://docs.rs/axum/latest/axum/handler/trait.Handler.html#impl-Handler%3C(T1%2C)%2C%20B%3E) to emulate variadics and someone already filed this https://github.com/weiznich/rust-foundation-community-grant/issues/2
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?
metrics
mysql_async - Asyncronous Rust Mysql driver based on Tokio.
uom - Units of measurement -- type-safe zero-cost dimensional analysis
mysql-proxy-rs - A highly scalable MySQL Proxy framework written in Rust
async-bb8-diesel - Safe asynchronous access to Diesel and the bb8 connection manager
r2d2 - A generic connection pool for Rust
diesel - A safe, extensible ORM and Query Builder for Rust
sqlx - 🧰 The Rust SQL Toolkit. An async, pure Rust SQL crate featuring compile-time checked queries without a DSL. Supports PostgreSQL, MySQL, and SQLite.
tokio-diesel - Integrate Diesel into Tokio cleanly and efficiently.
MeiliSearch - A lightning-fast search API that fits effortlessly into your apps, websites, and workflow
rust-typed-builder - Compile-time type-checked builder derive
tikv - Distributed transactional key-value database, originally created to complement TiDB