I would like internalize IPFS in a Tauri application, i.e., have the IPFS binary used by the application sit inside the bundle itself. Is there a guide for doing this already? Should I literally just bundle an IPFS binary into the project and call it with std::process?
You can talk to an already installed IPFS node via Http but if you want IPFS as a crate then AFAIK there’s nothing out there (yet).
Maybe you can use rust-libp2p?
In my case, the main requirement is that the Rust daemon is spawned in a manner that is consistent with the bundle that is shipped. So, I guess I don’t need to necessarily have IPFS running as a part of my Rust binary, but instead just call an executable at a known location.
However, I think ideally IPFS would be internal to the Rust binary, so sounds like I would be waiting on a Rust crate for that next step. Perhaps, I could look into using FFIs/externs or even some more generic interprocess socket communication. However, I’m not sure that these are much better than just process execing.
rust-libp2p
may need to be the longer term starting point for this project anyways, as we attempt to diverge from IPFS.
Maybe try integrating GitHub - n0-computer/iroh: The most efficient implementation of IPFS on any planet