Replies: 5 comments 4 replies
-
|
@acul71, @pacrob, @sumanjeet0012, @lla-dane, @yashksaini-coder: Hi everyone, please find a brief roadmap for updating the newly un-archived py-multiformats packages (py-multihash, py-multibase, py-multicodec) shared above. @acul71 : Wish if you could open up issues like the one you opened up for py-multiaddr: multiformats/multiaddr#181 @sumanjeet0012 : Wish to recommend you to start exploring the fix for #1030 with @acul71. @lla-dane, @acul71 and @sumanjeet0012, @yashksaini-coder - As discussed, wish if we could open newer discussion pages, issues and PRs for improving each of these multiformat packages. Nice references from our collaborative efforts in improving py-multiaddr repository are:
Me and @pacrob will try setting up these packages at pypi and readthedocs.io/, and will join you in the above mentioned project tasks soon. We will also try and see if we could get the ownership transferred from the previous maintainers of these pages. |
Beta Was this translation helpful? Give feedback.
-
|
@seetadev The Python
|
Beta Was this translation helpful? Give feedback.
-
|
@seetadev @pacrob
to match a similar If relinquishing the repos will take a long time, we could fork the repos and work on the fork, until we got access. |
Beta Was this translation helpful? Give feedback.
-
|
py-multibase Gap Analysis #1062 py-multibase currently supports 58% of the standard multibase encodings (14 out of 24). The missing encodings primarily fall into three categories:
Additionally, the API lacks some advanced features present in other implementations, such as reusable encoder/decoder objects and type-safe base selection. |
Beta Was this translation helpful? Give feedback.
-
py-multicodec gap analysis #1063py-multicodec provides the core functionality for multicodec operations but is missing:
The codebase is well-structured and can be easily updated. The main gap is the outdated codec table, which can be fixed by running the update script. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Now that the py-multiformats repos have been unarchived, and with active collaboration from the Multiformats team, this roadmap outlines the steps needed to bring Python parity with the current Go, Rust, and JavaScript stacks.
This roadmap includes functional parity, spec compliance, test coverage, and ecosystem readiness.
1. 🎯 Phase 1 — Baseline Assessment & Repository Cleanup
Goal: Establish an accurate understanding of gaps vs. go-multiformats, rust-multiformats, and js-multiformats.
Tasks
Audit APIs and feature gaps for each Python repo:
py-multihashpy-multibasepy-multicodecCompare with:
go-multihash,go-multibase,go-multicodecrust-multihash,rust-multibase,rust-multicodecjs-multiformatsIdentify missing codecs, bases, hashing algorithms, error behaviors, encoding rules.
Clean up stale PRs and issues, document missing items.
Modernize repo setup:
Deliverables:
📄 Gap analysis document
🚦 CI pipeline green
📦 Modernized Python project layout
2. 🎯 Phase 2 — Feature Parity: py-multibase
Goal: Match the full multibase table supported in Go, Rust, and JS.
Tasks
Implement missing bases:
Ensure byte-level equivalence with Go/Rust/JS implementations.
Add
multibase-name → prefixmappings identical to reference tables.Implement round-trip property tests.
Deliverables:
✨ py-multibase v2.0 with full support & test parity
3. 🎯 Phase 3 — Feature Parity: py-multicodec
Goal: Support the complete codec table and wire representations.
Tasks
Import latest
multicodec-tablefrom upstream.Implement automated code-gen for Python from codec table JSON (matching Go’s generator approach).
Ensure compatibility with:
Add fuzzy tests comparing Python → Go → Rust → JS resolution.
Deliverables:
📦 py-multicodec v2.0 with up-to-date codec table
🛠 Codegen workflow for long-term maintainability
4. 🎯 Phase 4 — Feature Parity: py-multihash
Goal: Support all stable hashing algorithms and matching output encoding.
Tasks
Complete algorithm support:
Match output formatting with:
Implement strict & relaxed mode hashing (like Go version).
Deliverables:
🔐 py-multihash v2.0 with full algorithm coverage
🧪 Cross-language test suite
5. 🎯 Phase 5 — Unified Cross-Language Test Suite
Goal: Ensure bit-for-bit compatibility across all languages.
Tasks
Implement docker-compose based test harness:
Test categories:
Add snapshot-based tests synced with upstream reference tables.
Deliverables:
📊 Interop matrix (Python vs Go/Rust/JS)
🧪 CI running cross-language interop tests automatically
6. 🎯 Phase 6 — Documentation, Migration Guide & Release
Goal: Provide high-quality user documentation and release stable versions.
Tasks
Write docs explaining:
Add examples mirroring JS + Go examples (CID creation, encoding/decoding).
Release:
Deliverables:
📝 Complete docs on ReadTheDocs
🚀 Stable releases to PyPI
7. 🎯 Phase 7 — Long-Term Maintenance & Alignment with Multiformats Team
Goal: Ensure continued health and parity.
Tasks
Set up monthly sync with multiformats maintainers.
Subscribe Python repos to automated multicodec table update PRs.
Add GitHub bots for:
Establish roadmap for:
✅ Expected Outcome
By following this roadmap, the Python multiformats libraries will achieve:
Beta Was this translation helpful? Give feedback.
All reactions