Thanks to the swig project, we’ve been able to create a full blown Java wrapping API for the C++ libtorrent library*, we’ve called it frostwire-jlibtorrent.
This means that now, the power of libtorrent is now accesible to millions of Java programmers around the world who wish to harness decentralized file sharing for any kind of BitTorrent client or enterprise deployment using BitTorrent and Java without the hassle of dealing with JNI or JNA frameworks themselves.
We’ve made sure not to alienate any developers from using frostwire-jlibtorrent in their projects by licensing the source code under The MIT License.
We hope the enterprise world can make use of these libraries, specially for large scale cloud deployments via BitTorrent that may require complex and rich logic tied to existing Java code bases.
We make this announcement as we’re close to finishing the next generation of FrostWire, FrostWire 6. frostwire-jlibtorrent is still under development, and it will continue to be actively developed as the libtorrent team (a very active team) continues to release updates and as we keep updating and enhancing the FrostWire BitTorrent client.
As we develop the new FrostWire 6, switching to frostwire-jlibtorrent as our BitTorrent engine has resulted in incredible performance upgrades which have translated into almost instant download start times, faster downloads, CPU usage reductions of up to 80% when actively downloading torrents, faster DHT magnet torrent info fetching, faster deep torrent search, decreased use of threads and memory, and incredibly faster app shutdown times. We can’t wait to finish FrostWire 6 for you to give frostwire-jlibtorrent a spin.
libtorrent coming to a language near you
By using swig, we’ve now opened the path for not just having java bindings for libtorrent, we’ll now be able to create bindings for other programming languages like Perl, PHP, Tcl, Ruby, C#, Lua and Python**.
We’ll probably be making Python the next libtorrent wrapper as we’d like to bring the power of libtorrent’s DHT to other important open source projects, and we hope the Open source community will join us into porting this project to every language possible to further the use of BitTorrent as a decentralizing technology.
Team FrostWire
September 24, 2014
* frostwire-jlibtorrent is currently compatible with libtorrent-rasterbar-1.0.2.
** we are aware that libtorrent comes with python bindings already, but our wrappers, in our opinion will be more pleasurable to code with
Hi, Thanks so much for all the hard work. What you’ve done looks amazing! I’m currently doing more android development than desktop software. Since i don’t have allot of experience making build scripts and the like, could you release a build script for creating the android .so file? Thanks in advance!
we are currently working on the android build, we’re having some issues at the moment with linking and the addresses of the functions on the shared library.
We already have the Mac library, the Windows, next up is Android, and lastly the one for Linux which should be a piece of cake.
Cheers Seth, stay tuned.
as promised, here’s our android build script:
https://github.com/frostwire/frostwire-jlibtorrent/blob/master/build/build_android.sh
is it possible to run jlibtorrent on the raspberry pi?
in theory yes, jlibtorrent is built for ARM processors (the ones on android devices), and I believe the raspberry pi runs on arm.
It’d be a matter of having a Java Runtime for ARM running on your raspberry pi and you should be able to use it.
the easiest way to find out, would be trying to run FrostWire for Desktop on your raspberry pi, you’d probably have to add the libjlibtorrent.so where the desktop installation puts its files in linux. basically replace the linux’s .so with the arm one.
You can get that library on the jlibtorrent-android-arm-1.1.0.21.jar (or a new version if there’s one by the time you read this)
http://search.maven.org/remotecontent?filepath=com/frostwire/jlibtorrent-android-arm/1.1.0.21/jlibtorrent-android-arm-1.1.0.21.jar