linux-credentials / linux-credentials/credentialsd
Rewrite webextension shim in Rust
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 259
- Forks
- 19
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 12
Description
The web extension shim translates between the native messaging protocol and the D-Bus API for credentialsd. It's currently written in Python using the dbus-next Python package.
We target Ubuntu 22.04 as our oldest supported OS, but the dbus-next package isn't packaged until 25.04. To make it easier for people to test using the extension, it may be worth rewriting this in Rust.
However, part of the purpose of using a different language, namely Python, was to catch discrepancies between docs and the implementation. If we do rewrite it, it might be good to use a different library than zbus (like dbus-rs) or not to use the proxy macros from zbus and craft messages manually. This might be overkill, and maybe we just need to write better integration tests.
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 with webext/app and compare its native messaging and D-Bus behavior with the documented interfaces. Evaluate whether a Rust rewrite or better integration tests would address the Ubuntu 22.04 packaging constraint, and define done as preserving the shim's behavior without relying on the unavailable dbus-next package.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- linux, python, rust
- Domain
- api, backend
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100