IPFS extensibility #303
Description
I was wondering if are there any plans or even if it was ever raised to discussion the ability to extend IPFS API with custom commands/operations?
For reference, what motivated me to consider this was my work with #266. For now I've hacked together an IPFS fork that has PulsarCast as a drop in replacement for the floodsub module. However, these have different APIs and features that don't exactly feat well under the same interface. While wondering on what a long term solution for this could be I came to realise that that's probably fine, these should probably be different commands/operations under an IPFS node. At the same time, I looked into something like what Kubernetes provides (the ability to define custom resources and controllers) and it stroke me how nice would it be to have something like this in IPFS (and how well it would fit my use case/problem). I do realise these are totally different pieces of software, but I do see a lot of potential on the ability to define a custom command/operation (exposing it in IPFS HTTP API, cli and such) with a custom controller/handler that could have access to IPFS core and interact with IPLD and libp2p. This would even fit really well with modularization approach followed by the project :) in the limit all the commands/operations in IPFS core could even be plugable 🙌