I'm a C# developer by trade and currently in the end-phase of a total rewrite from C# to C++ for this project in order to get it running cross-platform as well as increase performance.
This is my first C++ project and any feedback is welcome!
(Private) trackers are very picky about what clients they allow. This leaves me with few alternatives when it comes to BitTorrent libraries, Rasterbar-libtorrent being one of them. Rasterbar-libtorrent is awesome, and written in C++.
I wrote a C++/CLI wrapper for libtorrent to bridge the native/managed gap and did the rest of the work in pure C#. Awesome, except C++/CLI is not cross-platform and will not be made cross-platform in the MS CoreCLR releases. So to become cross-platform, I either have to rewrite everything in C++, or use P/Invoke. I never got the P/Invoke stuff to work well with the C++ nature of libtorrent, which left me with a C++ rewrite of Hadouken.
As it turns out, C++11 is quite pleasant to work with, and with the Poco framework I actually made some real progress quite fast. I also ran a Ubuntu VM on my Windows dev-machine to make sure everything worked smoothly as I went along.
Performance may have been the wrong word, maybe I should've used memory usage, but I'm currently in the finishing stages of having it running on the older R-Pi boards, so even though 90% of the users will run it on some sort of desktop/server machine, some will run it on the R-Pi where memory is limited.
regards and good works :)