Skip to content

perf: add py-libp2p v0.6 implementation#846

Open
acul71 wants to merge 2 commits intolibp2p:masterfrom
acul71:perf-python-v0.6
Open

perf: add py-libp2p v0.6 implementation#846
acul71 wants to merge 2 commits intolibp2p:masterfrom
acul71:perf-python-v0.6

Conversation

@acul71
Copy link
Copy Markdown
Contributor

@acul71 acul71 commented Apr 7, 2026

Summary

Adds a py-libp2p perf implementation under perf/impl/py-libp2p/v0.6/ and wires it into the perf runner (versionsInput.json, versions.ts, impl/Makefile, --test-filter).

Closes

Closes #845

Changes

  • New perf wrapper + perf_cli.py (CLI and JSON lines aligned with perf README contract; logging on stderr).
  • Makefile + README.md for building with pinned py-libp2p (venv).
  • Runner: py-libp2p / v0.6 entry with tcp and quic-v1 stacks where supported.
  • perf/README.md updates.

Test plan

  • cd perf/impl/py-libp2p/v0.6 && make (or documented flow) produces ./perf
  • Optional: trigger perf workflow on this branch after merge (per perf README).

Made with Cursor

@acul71
Copy link
Copy Markdown
Contributor Author

acul71 commented Apr 7, 2026

Hello @MarcoPolo

CC: @seetadev

This adds the py-libp2p perf implementation for both TCP and QUIC (quic-v1) in the test-plans harness. QUIC download throughput is still expected to lag until it is improved in py-libp2p itself; that is intentionally out of scope here and can be tackled in a follow-up once the core stack is tuned.

There is more context (local benchmarks vs Go/JS, harness notes, and suggested core QUIC work) in this discussion:

libp2p/py-libp2p#1302


Question (so I know what to expect after merge): the perf workflow is workflow_dispatch only—i.e. not automatic on every merge. When this lands, is the usual process for someone to manually run that workflow on master (or a branch) so AWS spins up the client/server and the runner produces fresh benchmark-results.json? And are the numbers people compare mainly the commit pushed back to the repo and/or the Observable performance dashboard? I’d like to know where to look once py-libp2p shows up in the official perf run.

Thanks!

acul71 added 2 commits April 7, 2026 04:16
Add perf/impl/py-libp2p/v0.6 (Makefile, perf wrapper, perf_cli.py, README)
with CLI/JSON contract matching other impls. Register py-libp2p in
perf/impl/Makefile, runner versionsInput.json and versions.ts, and
extend --test-filter in runner/src/index.ts. Update perf/README.md.

Refs: libp2p#845
Made-with: Cursor
Made-with: Cursor
@acul71 acul71 force-pushed the perf-python-v0.6 branch from 79c108e to a088240 Compare April 7, 2026 02:16
@MarcoPolo
Copy link
Copy Markdown
Contributor

Hi @acul71, I won't have the bandwidth to review this. The numbers in the Observable notebook are out of date.

You can run the experiments yourself on your own AWS and get the numbers there. Hope that helps.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

perf: add py-libp2p v0.6 implementation

2 participants