oxidecomputer / oxidecomputer/omicron
Upgrade to diesel-async?
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 572
- Forks
- 97
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 96
Description
We are using https://github.com/oxidecomputer/async-bb8-diesel extensively throughout Nexus, so that we can asynchronously issue diesel operations.
An upgrade to https://crates.io/crates/diesel-async would provide the following benefits:
- First-class support.
async-bb8-dieselis maintained by us, by swapping between tokio threads, butdiesel-asyncis supported by diesel devs. - Pipelined requests.
diesel-asyncusestokio_postgres, which supports pipelining: https://docs.rs/tokio-postgres/latest/tokio_postgres/index.html#pipelining - ... speaking of which,
tokio_postgresis a rust client library, which might help reduce our reliance on thelibpqlibrary.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by auditing Nexus's extensive use of async-bb8-diesel and comparing its required database operations with diesel-async and tokio_postgres. Review the migration scope, including the current libpq reliance and pipelining needs; the work is done when the affected usage has been migrated and the existing asynchronous database behavior remains supported.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- postgres, rust
- Domain
- backend, databases
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100