frostwire-jlibtorrent

A swig Java interface for libtorrent by the makers of FrostWire.

License

License

Categories

Categories

Wire Data Data Structures
GroupId

GroupId

com.frostwire
ArtifactId

ArtifactId

jlibtorrent-android-x86_64
Last Version

Last Version

1.2.0.18
Release Date

Release Date

Type

Type

jar
Description

Description

frostwire-jlibtorrent
A swig Java interface for libtorrent by the makers of FrostWire.
Project URL

Project URL

https://github.com/frostwire/frostwire-jlibtorrent
Source Code Management

Source Code Management

https://github.com/frostwire/frostwire-jlibtorrent

Download jlibtorrent-android-x86_64

How to add to project

<!-- https://jarcasting.com/artifacts/com.frostwire/jlibtorrent-android-x86_64/ -->
<dependency>
    <groupId>com.frostwire</groupId>
    <artifactId>jlibtorrent-android-x86_64</artifactId>
    <version>1.2.0.18</version>
</dependency>
// https://jarcasting.com/artifacts/com.frostwire/jlibtorrent-android-x86_64/
implementation 'com.frostwire:jlibtorrent-android-x86_64:1.2.0.18'
// https://jarcasting.com/artifacts/com.frostwire/jlibtorrent-android-x86_64/
implementation ("com.frostwire:jlibtorrent-android-x86_64:1.2.0.18")
'com.frostwire:jlibtorrent-android-x86_64:jar:1.2.0.18'
<dependency org="com.frostwire" name="jlibtorrent-android-x86_64" rev="1.2.0.18">
  <artifact name="jlibtorrent-android-x86_64" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.frostwire', module='jlibtorrent-android-x86_64', version='1.2.0.18')
)
libraryDependencies += "com.frostwire" % "jlibtorrent-android-x86_64" % "1.2.0.18"
[com.frostwire/jlibtorrent-android-x86_64 "1.2.0.18"]

Dependencies

compile (1)

Group / Artifact Type Version
com.frostwire : jlibtorrent jar 1.2.0.18

test (1)

Group / Artifact Type Version
junit : junit jar 4.12

Project Modules

There are no modules declared in this project.

frostwire-jlibtorrent

JLibtorrent Logo

A swig Java interface for libtorrent by the makers of FrostWire.

Develop libtorrent based apps with the joy of coding in Java.

Discord Developer Chatroom

Using

Download the latest release .jars

All platforms will need you to use at least 2 .jar files.

The .jar with the java classes -> jlibtorrent-w.x.y.z.jar and a secondary .jars containing the JNI binary library for the particular OS and CPU architecture.

In the case of desktop operating systems, you might want to extract the shared library inside the jar (.dll, .so, .dylib) and place it in a folder specified by the java.library.path

The secondary jars are:

  • Windows: jlibtorrent-windows-w.x.y.z.jar (x86 and x86_64 .dlls)
  • Mac: jlibtorrent-macosx-w.x.y.z.jar (x86_64 .dylib)
  • Linux: jlibtorrent-linux-w.x.y.z.jar (x86 and x86_64 .so)

In the case of Android, make sure to put the following 3 jars in your project's libs folder (see FrostWire for Android's as an example):

  • jlibtorrent-w.x.y.z.jar
  • jlibtorrent-android-arm-w.x.y.z.jar
  • jlibtorrent-android-x86-w.x.y.z.jar

If you use ProGuard to obfuscate/minify make sure to add the following statement

-keep class com.frostwire.jlibtorrent.swig.libtorrent_jni {*;}

Note that there are multiple version of jlibtorrent for different platforms: jlibtorrent, jlibtorrent-windows, jlibtorrent-linux, jlibtorrent-macosx and jlibtorrent-android-<arch>. These are all different artifacts.

For examples look at https://github.com/frostwire/frostwire-jlibtorrent/tree/master/src/test/java/com/frostwire/jlibtorrent/demo

Architectures supported:

  • Android (armeabi-v7a, arm64-v8a, x86, x86_64)
  • Linux (x86, x86_64)
  • Windows (x86, x86_64)
  • Mac OS X (x86_64)

Building Locally (Mac and Linux)

A build script exists for each operating system, for example if you're on macos you can use the build-macos.sh, running it without setting things up should tell you about certain environment variables you'll need to set up. To understand the build process we recommend you read your corresponding build script and build-utils.shinc

The hacking and building process might require you to run the run-swig.sh script, we usually need to run this script if there are C++ api changes in libtorrent that require adjustments in libtorrent.i or libtorrent.h, this script will create automatic JNI wrappers in the outer source java folders. You should not run this script unless you know what you're doing.

Then you run the build script for your OS, get to the parent folder and invoke gradle build

The gradle build will look in the swig folder for the JNI shared libraries and it will automatically package the native holding .jar files, the final jars will be in the build/libs folder.

The windows build script is not finished, for now the windows build is done with travis builds.

Projects using jLibtorrent

License

This software is offered under the MIT License, available here.

Versions

Version
1.2.0.18
1.2.0.18-RC12
1.2.0.18-RC11
1.2.0.18-RC10
1.2.0.18-RC9
1.2.0.18-RC8
1.2.0.18-RC7
1.2.0.18-RC6
1.2.0.18-RC5
1.2.0.18-RC4
1.2.0.18-RC3
1.2.0.18-RC2
1.2.0.18-RC1
1.2.0.17
1.2.0.17-RC2
1.2.0.17-RC1
1.2.0.16
1.2.0.16-RC3
1.2.0.16-RC2
1.2.0.16-RC1
1.2.0.15
1.2.0.15-RC3
1.2.0.15-RC2
1.2.0.15-RC1
1.2.0.14
1.2.0.13
1.2.0.13-RC14
1.2.0.13-RC13
1.2.0.13-RC12
1.2.0.13-RC11
1.2.0.13-RC10
1.2.0.13-RC9
1.2.0.13-RC8
1.2.0.13-RC7
1.2.0.13-RC6
1.2.0.13-RC5
1.2.0.13-RC4
1.2.0.13-RC3
1.2.0.13-RC2
1.2.0.13-RC1
1.2.0.12
1.2.0.12-RC2
1.2.0.12-RC1
1.2.0.11
1.2.0.11-RC5
1.2.0.11-RC4
1.2.0.11-RC3
1.2.0.11-RC2
1.2.0.11-RC1
1.2.0.10
1.2.0.9
1.2.0.9-RC5
1.2.0.9-RC4
1.2.0.9-RC3
1.2.0.9-RC2
1.2.0.9-RC1
1.2.0.8
1.2.0.7
1.2.0.7-RC3
1.2.0.7-RC2
1.2.0.7-RC1
1.2.0.6
1.2.0.6-RC4
1.2.0.6-RC3
1.2.0.6-RC2
1.2.0.6-RC1
1.2.0.6-beta4
1.2.0.6-beta3
1.2.0.6-beta2
1.2.0.6-beta1
1.2.0.5
1.2.0.5-RC1
1.2.0.4
1.2.0.3
1.2.0.2
1.2.0.1
1.2.0.0
1.2.0.0-beta6
1.2.0.0-beta5
1.2.0.0-beta4
1.2.0.0-beta3
1.2.0.0-beta2
1.2.0.0-beta1
1.2.0.0-alpha7
1.2.0.0-alpha6
1.2.0.0-alpha5
1.2.0.0-alpha4
1.2.0.0-alpha3
1.2.0.0-alpha2
1.2.0.0-alpha1
1.2.0.0-alpha
1.1.1.40
1.1.1.39
1.1.1.38
1.1.1.37
1.1.0.37-RC1
1.1.0.36
1.1.0.35
1.1.0.34
1.1.0.33
1.1.0.32
1.1.0.31
1.1.0.30
1.1.0.29
1.1.0.28
1.1.0.27
1.1.0.26
1.1.0.25
1.1.0.24
1.1.0.23
1.1.0.22
1.1.0.21
1.1.0.20
1.1.0.19
1.1.0.18
1.1.0.17
1.1.0.16
1.1.0.15
1.1.0.14
1.1.0.12
1.1.0.11
1.1.0.10