Clean up Client API
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 22/100
- Issue type
- Refactor
- Clarity
- Needs clarification
- Activity status
- Stale
- Tech stack
- go, javascript, rust
Research direction
Start by inventorying the Client API areas named in the issue: ClientCreationOpts, Must... variants, Event, GetNotification, and the verification RPCs. Review the linked pull requests and the Server.WaiterStart/Server.WaiterPoll functions before deciding scope. Done requires an agreed API cleanup, implemented missing RPCs, and documented or versioned RPC compatibility.
Written by the indexing model from the issue text.
Description
It has grown organically so we could test JS/Rust SDK. It's now time to think about the API more before we open it up to everyone.
Thoughts on each part of the API:
ClientCreationOpts: Addition of extra options in https://github.com/matrix-org/complement-crypto/pull/144 keeps it extensible. We should cut down on as many fields as possible.-
Must...variants: Remove them and decorate the Client API in tests withMustvariants. It's crazy that impls need to implementMustStartSyncingANDStartSyncing, when the caller can just do theerr != nilcheck on their end. https://github.com/matrix-org/complement-crypto/pull/146 Event: re-check rust SDK and try to make it match the wire format for events as much as possible.GetNotification: it's useful as other SDKs have push-notification-like code path, but it's very rust SDK specific currently.
RPC-wise:
RequestOwnUserVerificationandListenForVerificationRequests: we need to implement them. Can probably poll like we do with the waiters?- Check RPC-only functions for sanity:
- Server.WaiterStart
- Server.WaiterPoll
Probably worth having a version handshake initially along with the port (e.g 56434 v1). If we don't, we may have missing RPC functions or missing fields etc. This means we need to document the RPC API. Can we automate it?
- Dominant language
- Go
- Stars
- 18
- Forks
- 12
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 6
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.
More from matrix-org/complement-crypto
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
matrix-org/complement-crypto#268 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 35/100
matrix-org/complement-crypto#212 · 1 comment ·
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
matrix-org/complement-crypto#199 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 45/100
matrix-org/complement-crypto#193 · 1 reaction ·
-
matrix-org/complement-crypto#158 · 4 comments · 1 assignee ·
All issues in matrix-org/complement-crypto
Similar issues
-
kind/bug needs-triage
Difficulty 1/5 Under an hour Newbie friendliness 72/100
matrixorigin/matrixone#29223 ·
-
needs-acceptance wg/data-plane-networking
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
vllm-project/semantic-router#4024 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
alexgorbatchev/dotfiles#107 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 84/100