What do you all think about a DBus API for the ipfs daemon? systemd, NetworkManager, and the bluez stack have all been using DBus since about 2015 for reference.
What would be the benefits of DBus?
It is faster than REST (mostly because no JSON parsing is needed).
It also does not open a port and expose the API to the network.
It provides introspection into the exposed API including a robust type system. ( The dbus daemon does type checking for you )
DBus also provides an event-system called signals, that could be used to provide more interactivity between the daemon and clients.
What are the disadvantages of DBus?
It’s mostly Linux I think, I have heard of implementations for windows and mac but I don’t know how well they work.
Also, Linux is the only OS that ships with a dbus daemon by default.
Even though this would be a feature quite far into the future, I think this would make a great extension to the daemon making it more “deamony” for (hopefully) embedding IPFS into OSes at some point.
Furthermore, the existing REST API maps quite nicely to dbus.
I would love to hear your feedback and ideas!