Async Rust ADR
This is my new version of https://github.com/mozilla/application-services/pull/5910, which is more focused and more concrete. Maybe we're finally ready to actually make a decision here :crossed_fingers:
Pull Request checklist
- Breaking changes: This PR follows our breaking change policy
- [x] This PR follows the breaking change policy:
- This PR has no breaking API changes, or
- There are corresponding PRs for our consumer applications that resolve the breaking changes and have been approved
- [x] This PR follows the breaking change policy:
- [x] Quality: This PR builds and tests run cleanly
- Note:
- For changes that need extra cross-platform testing, consider adding
[ci full]to the PR title. - If this pull request includes a breaking change, consider cutting a new release after merging.
- For changes that need extra cross-platform testing, consider adding
- Note:
- [x] Tests: This PR includes thorough tests or an explanation of why it does not
- [x] Changelog: This PR includes a changelog entry in CHANGELOG.md or an explanation of why it does not need one
- Any breaking changes to Swift or Kotlin binding APIs are noted explicitly
- [x] Dependencies: This PR follows our dependency management guidelines
- Any new dependencies are accompanied by a summary of the due diligence applied in selecting them.
Branch builds: add [firefox-android: branch-name] to the PR title.
I updated this after our meeting yesterday:
- Added a list of issues this is trying to address to the problem statement section
- Changed option A from "Do nothing" to "Address as many issues as we can without moving to async Rust".
With this change, I could get behind option A. I think we could solve the worst issue, which is how the functionality is split across different repos/languages and easy to forget about when you're writing Rust code. The impact on the docs is unfortunate, but not really a deal-breaker.
That said, I still like option C the best. I like that it makes the code we write match more closely with how consumers are using it and it opens up new possibilities for the future. I also don't see much downside/risk personally.