I want to make my applications share data across devices, and do it even if the greater Internet is unavailable, if there’s a local network. So, peer-to-peer stuff. I went looking and found a framework that seems to be aimed directly at peer networking: LibP2P. There’s even a Swift implementation of it, sort of. Early days, anyway. The example app doesn’t build on my machine, though, as Swift has evolved a bit since the last code update.
I have gotten the example app to build, but in the process I wound up having to touch a lot of dependencies. So I decided to put together a diagram to see how all these darned things hang together. In the following diagram, the blue boxes are LibP2P libraries, while the black (uncolored) boxes are libraries from some other project. There are 16 blue boxes, in case you’re wondering, and these are just the libraries the example app uses from the LibP2P project. I’m not sure yet if there’s any point to all this other than me just standing here, staring at the picture and thinking, “Wow, this is a configuration nightmare!”
