I posted the idea of a database WG on twitter recently and it was met with a lot of excitement. Also there was a post on reddit recently that proposed the same idea, taken from examples of where using Rust with databases is currently a painful experience.
Diverging interests
From the feedback I've seen so far there seems to be people interested in vastly different things when they hear rust-db-wg
- Writing databases
- Binding against databases
- Making all of this async
Because of these diverging interests I feel it’s important to “sit down” beforehand and talk about what people want from a database WG. Also important to consider is that databases don’t exist in a vacuum and there will be an overlap with other working groups (specifically async ecosystem wg) which offers the opportunity for further collaboration via semi-regular check-ins and meetings to discuss shared roadmap goals and implementation plans.
Organising a WG
I would as part of this also want to work out a base charter to start the WG as well as setting up when and how to have regular meetings to discuss roadmaps and current projects that are being worked on.
My ideas
Following are some things that I personally feel should be made better and where a WG could collect development effort and guide newcomers to Rust and databases to contributing to existing libraries, as well as maintaining some libraries as well.
- An sql abstraction that wraps around multiple backends, allowing you to execute Sql, no matter the database backend (similar to slick from Scala)
- Expand the range of available async database adapters to prepare the ecosystem for async/await
- Having talked to people from the net-web-wg and net-async-wg, this is definitely an interest!
- This includes building an async connection pool ecosystem - bb8?
- Pushing the r2d2 ecosystem to 1.0 as a stable, blocking I/O connection pool
- Stabilising, improving or developing ready-to-go database middleware for existing web-frameworks
As part of the diesel 2.0 release there will be some changes to the migration API to be more flexible and modular. This is also something that could be tackled by the WG.
Wrapping up
So, to summarise: I want to hear what your ideas are, what you think is important and what needs to be worked on. Let’s set out some high-level goals and organise our efforts around these goals.
Edit 1: Small discussion summary: Kickstarting a database-wg