Did not know about lib2p, looks interesting 🙂 - so you can use it from the browser to replace http://socket.io/sente? It seems better in that it handles backpressure etc. and even webRTC. But does it has the concept of upgrade / fallback between protocols?
I'm not sure. At least the description seems to indicate that it can route data between peers using whatever connections are available, so it should handle protocol upgrade and fallback. I don't know how much has actually been implemented yet though. These are all things I'll have to figure out if I really want a clojure port though...
I was asking in a more general channel earlier, but do you think it makes more sense to create one repo for all of the libp2p stuff, or split it into modules the way the libp2p team did for go and js?