After many long weeks of testing, tweaking and bug-fixing, I hereby present to you, the final 0.2 version.
It has been tested for quite some time now, and is believed to be stable enough for daily use.1
0.2 also marks the last version that is going to be built in the D programming language. D, while being an interesting language, has unfortunately not matured as fast or in the direction I was expecting, and over the years, I've spent about too much time sorting out build-problems relating to D, that I'd rather spend working on BitHorde. For example the last version of Ubuntu that can easily build BitHorde is Natty, requiring some custom-patched compilers and base libraries.
That is now all behind me. The next version of BitHorde is already in development, and is built from plain C++(11) and Boost.
Already, most of the client-side functionality is there. BHGet and BHUpload is implemented, as well as BHFuse. BitHorded itself can handle linked asset sources 2, but not yet route to other BitHorde nodes, or handle uploaded assets or cached assets. There are of course missing functionality and features, it's still pretty alpha-level, there are no fancy progress-bars in bhupload or bhget, encryption is yet missing, and logging is quite immature.
That said, it also has some important features that might be really interesting and useful, most notably, bhfuse has the capability to transparently handle crashes and disconnections in the bithorde-network, trying to re-establish asset with the application only seeing a temporary delay in the filesystem. The net-effect is, a crashing/restarted bithorded won't ruing video-playback but will silently reconnect as if nothing happened. The new BHFuse itself also seems to be quite stable already, and beta-testing reports claim notable improvements in reliability.
Another nice aspect of the C++/boost implementation is it should now be mostly OS/agnostic, enabling easy porting to MacOSX, which already supports fuse filesystems. It's most likely will compile as-is with possibly only minor tweaks. Anyone willing to test this, please contact me, and I'll support it best I can.
A windows-port would also be possible, but would require inventing some replacement for the fuse-parts. Anyone with some C++-skill interested in getting their hands dirty, please contact me, and I'll try to support it.
This awesome new C++ version, now residing in the "boost" branch will soon take it's rightful place as master, whereas the D-version will be kept just for maintenance. Anyone with some free time and some C++ skills, please join the hacking!