4 ms·
I read the whole piece and wanted to look at the interfaces of the library but couldn't find a C implementation. I don't know where to look for the interface in
by dingo_bat 7y ago
I read the whole piece and wanted to look at the interfaces of the library but couldn't find a C implementation. I don't know where to look for the interface in rust or go. I think the most basic requirement for a networking library is a working C/C++ implementation.
- vasa_develop 7y agoHi dingo_bat! Here are a few unofficial implementations on Libp2p in C. - https://github.com/squishyhuman/c-libp2p https://github.com/squishyhuman/c-libp2p - https://github.com/Agorise/c-libp2p https://github.com/Agorise/c-libp2p Here are Go, and Rust (Official)implementations: - https://github.com/libp2p/go-libp2p https://github.com/libp2p/go-libp2p - https://github.com/libp2p/rust-libp2p https://github.com/libp2p/rust-libp2p You can find the interfaces in the codebase. If you are having a hard time finding the interfaces in the codebase, or not able to figure out how to use them, then PLEASE head over to discuss.libp2p.io. There are a ton of people who will be more than happy to help you :) I will try to add all this info in the article wherever possible. Is there anything else that you what to be improved in the article?
- akubera 7y agohttps://github.com/libp2p/rust-libp2p https://github.com/libp2p/rust-libp2p There's the Rust repository, and the auto-generated documentation can be found at https://docs.rs/libp2p/0.11.0/libp2p/ https://docs.rs/libp2p/0.11.0/libp2p/ I'm curious what about a C implementation is the requirement for you? Is it the ability for to link against your C/C++ code, or for reading and understanding the structures and algorithms with the simplicity of C parlance, or another reason? If the first one, it is possible to create a C shared-library "cdylib" with Rust (included in cargo by default), and using cbindgen[1] you can generate the headers to use the c-api. It doesn't look like anybody has done that yet, unfortunately. But know that it should be a lot easier to create C/C++ compatibility than doing a rewrite or port. [1] https://github.com/eqrion/cbindgen https://github.com/eqrion/cbindgen EDIT: Or as the sibling comment points out, there ARE C implementations out there, so you can ignore this post.