feat(backend): async Python client for the Kubo RPC API
Maintainers usually reply within 1 day
@SaishKorgaonkar is already working on this.
Since Oct 22, 2026.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 55/100
Research direction
Start by reading the backend layout and how dependencies #59 and #60 shape the content layer. Implement an async httpx.AsyncClient wrapper for the listed Kubo RPC operations, then add pytest coverage with httpx.MockTransport. Done means calls are tested, timeouts map to an unavailable error, and secrets are absent from logs and exception text.
Written by the indexing model from the issue text.
Description
Summary
A small typed client the backend uses to add, pin, unpin and import content.
Estimated size: M
Current state in this repo
httpxis already a backend dependency.
Proposal
httpx.AsyncClientwrapper withadd,pin_add,pin_rm,pin_ls,dag_import(CAR) andblock_stat.- Explicit timeouts, typed errors (unavailable vs rejected), and no secrets in log output.
- Config from env (
KUBO_RPC_URL,KUBO_RPC_SECRET).
Acceptance criteria
- Each call is covered against a mocked Kubo.
- A timeout maps to an
unavailableerror, not a crash. - Secrets never appear in logs or exception text.
Out of scope
- Read-side gateway client (separate issue).
Dependencies
- #59
- #60
Testing plan
- pytest with
httpx.MockTransport; optional live test behind a marker.
Part of #43. Ground rules for the content layer: no secrets in the repo, content-layer failures must never block or discard quantum execution, and tests and docs ship with every PR.
- Dominant language
- Python
- Stars
- 2
- Forks
- 4
- Avg merge
- 5h 19m
- Merged PRs (30d)
- 11
Getting set up
- Ships a Dockerfile or Docker Compose file
- No pull request template
- No contributing 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 QMeshPy/distributed-quantum
-
enhancement good first issue helia storage tier-1
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
QMeshPy/distributed-quantum#53 ·
Maintainers usually reply within 1 day
-
chain-integration enhancement payments research-spike tier-2
Difficulty 4/5 3-5 days Newbie friendliness 55/100
QMeshPy/distributed-quantum#78 ·
Maintainers usually reply within 1 day
-
chain-integration enhancement payments research-spike tier-2
Difficulty 3/5 1-2 days Newbie friendliness 66/100
QMeshPy/distributed-quantum#77 ·
Maintainers usually reply within 1 day
-
chain-integration enhancement payments tier-2
Difficulty 5/5 Over a week Newbie friendliness 35/100
QMeshPy/distributed-quantum#76 ·
Maintainers usually reply within 1 day
-
documentation good first issue kubo storage tier-1
Difficulty 2/5 1-3 hours Newbie friendliness 42/100
QMeshPy/distributed-quantum#75 ·
Maintainers usually reply within 1 day
All issues in QMeshPy/distributed-quantum
Similar issues
-
good first issue priority: low size: XS testing
Difficulty 1/5 1-3 hours Newbie friendliness 86/100
cubrid-lab/cubrid-mcp-server#385 ·
Maintainers usually reply within 1 day
-
good first issue priority: low size: S testing
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
cubrid-lab/cubrid-cookbook-python#447 ·
Maintainers usually reply within 1 day
-
Python PointcloudOpen
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
ArduCAM/Arducam_tof_camera#125 ·
-
area:curator enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
CassioDalla/Scrinalia#150 ·
Maintainers usually reply within 1 day
-
documentation good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 72/100