

Not an expert but I think originally I2Pd came about due to performance reasons as well as for people that don’t want to run Java. The idea being that it would run faster and more memory efficiently vs the Java app. Nowadays I’m not so sure there’s a huge difference but I can’t say that I’ve done any intensive testing on both.
There is a minor difference between the two if you plan to use bittorrent over I2P and want to use the I2PSnark torrent client. The I2P java app is the the only one that supports bittorrent DHT over I2P with the I2PSnark torrent client. From https://i2p.net/en/docs/applications/bittorrent/#general-guidance-for-developers
DHT support requires SAM v3.3 PRIMARY and SUBSESSIONS for TCP and UDP over the same session. This will require substantial development effort on the client side, unless the client is written in Java. i2pd does not currently support SAM v3.3. libtorrent does not currently support SAM v3.3.
In practice that’s not a huge deal, people who wish to torrent usually add open I2P trackers onto torrents to work around the lack of DHT but it would be nice if DHT support were more universal within the I2P ecosystem.





Like the other comment mentioned I’d try https://www.cgsecurity.org/wiki/PhotoRec first.
Just a heads up with proper data recovery it’s usually a good idea to dump an image of the media card to your drive and do any data recovery attempts against that image, not the media card itself. I would usually use ddrescue for that but you’ll probably be okay with standard dd too if the card itself is fine (as you said the deleted files were user error, not a failing card).
PS - You should definitely not use the media card in the camera until you’re done with recovery attempts, the more you use it the less likely you’ll recover anything off it.