ipfs / ipfs-gui

Creating standards and patterns for IPFS that are simple, accessible, reusable, and beautiful
105 stars 19 forks source link

New Product proposal: IPFS Implementation feature parity checker #101

Open SgtPooki opened 1 year ago

SgtPooki commented 1 year ago

Introduction

This is a work-in-progress proposal for creating a new product/tool that would benefit the IPFS ecosystem.

The idea is to create a tool that acts as a mashup of ipfs/interop & ipfs-shipyard/pinning-service-compliance where IPFS implementations (js-ipfs, iroh, kubo) can be displayed. Its intent wouldn't be to ensure interoperability but display interoperability gaps.

Goal

The goal of this new product/feature is multi-purpose:

  1. A single location where all IPFS implementations and their functionality can be seen
  2. Encourage/foster the creation, and performance improvements, of the different implementations
  3. Support users' awareness of different implementations to simplify decision-making when deciding which implementation may be right for them
  4. Encourage the adoption of certain features/functionality by an implementation via pressure from the community

Things that we shouldn't cover

Proposal (TBD)

A lot of the work for this tool already exists elsewhere, so I don't want to duplicate that work. Instead, we should utilize existing tools to perform the functionality testing, and instead, focus this tool on rendering the resulting pass/fail for displayed features.

How we could consolidate the existing tests without duplicating work still needs to be fleshed out, but I wanted to ensure I wrote down my thoughts on this before investing too heavily.

Additional thoughts

SgtPooki commented 1 year ago

@lidel it would be useful to get your thoughts on how this could overlap with some of the specs work you're doing.

lidel commented 1 year ago

Hm.. need to decide on the resolution we want to operate at.

Something like https://libp2p.io/implementations/ with discrete features such as

per implementation ?

SgtPooki commented 1 year ago

In gui triage, Lidel said that Robin Berjon will be in Lisbon, and he worked on web-platform-tests, so we could pick his brain during IPFS Camp.

darobin commented 1 year ago

I agree with @lidel that a good first step is something static that implementations can PR (we probably want them to PR some data rather than an HTML page directly, but that's a detail).

Building something like WPT certainly takes time, even if we will probably never need to get to the 1.8m tests that they have. All that the initial version did was bring together a few thousand tests in a central place and unified test runner that crashed browsers more often than not. There was a fair bit of time before that led to results being collected and reported on. I suspect we'll have to start with a similar MVP!