libp2p / libp2p/py-libp2p

Make py-libp2p async-library-agnostic with anyio

Open
#383 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

help wanted
Dominant language
Python
Stars
624
Forks
256
Avg merge
1d 34m
Merged PRs (30d)
47

Description

Coming from https://github.com/libp2p/py-libp2p/issues/174#issuecomment-560470465, and based on some conversation with @mhchia, I'm making this issue as a reminder to eventually make the library completely io-agnostic by implimenting it with anyio, an asynchronous io abstraction library (which currently supports asyncio, trio, and curio).

This'll tie #349, #347 and #174 into one problem, while staying in async library ecosystems of all 3 (possibly 4)

Anyio documentation: https://anyio.readthedocs.io/en/latest/index.html
Pypi project: https://pypi.org/project/anyio/

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the linked AnyIO documentation and the related issues #349, #347, and #174 to understand the existing async-library constraints. Define the migration scope for making py-libp2p completely I/O-agnostic, then verify that the library remains usable across the async ecosystems supported by AnyIO.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
networking
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.