Get started with the official IOTA Client Java library.
minimum Java version >= 8
- Download the
iota-client-1.0.0-rc.1.jar
file from the GitHub release and add it as a library to your project. - Download the
iota-client-1.0.0-rc.1-android.zip
file from the GitHub release, unzip it and add thejniLibs
folder with its contents to your Android Studio project as shown below:
project/
├──src/
└── main/
├── AndroidManifest.xml
├── java/
└── jniLibs/
├── arm64-v8a/ <-- ARM 64bit
│ └── libiota-client.so
│ └── libc++_shared.so
├── armeabi-v7a/ <-- ARM 32bit
│ └── libiota-client.so
│ └── libc++_shared.so
│── x86/ <-- Intel 32bit
│ └── libiota-client.so
│ └── libc++_shared.so
└── x86_64/ <-- Intel 64bit
└── libiota-client.so
└── libc++_shared.so
Depending on your operating system, add one of the following dependencies to your build.gradle
file:
implementation 'org.iota:iota-client:1.0.0-rc.1:linux-x86_64'
implementation 'org.iota:iota-client:1.0.0-rc.1:windows-x86_64'
implementation 'org.iota:iota-client:1.0.0-rc.1:aarch64-apple-darwin'
implementation 'org.iota:iota-client:1.0.0-rc.1:osx-x86_64'
In order to use the library, you need to create a Client
instance as illustrated below:
import org.iota.Client;
import org.iota.types.ClientConfig;
import org.iota.types.expections.InitializeClientException;
import org.iota.types.expections.ClientException;
import org.iota.types.responses.NodeInfoResponse;
public class HelloWorld {
public static void main(String[] args) throws InitializeClientException, ClientException {
// Build the client.
Client client = new Client(new ClientConfig().withNodes(new String[]{"https://api.testnet.shimmer.network"}));
// Get the node information for a given node.
NodeInfoResponse response = client.getNodeInfo();
// Print the URL of the node that was requested.
System.out.println(response.getNodeUrl());
// Print the node information for the requested node.
System.out.println(response.getNodeInfo());
}
}
Now that you are up and running, you can get acquainted with the library using its how-to guides and the repository's code examples.
If you don't like to use the provided libraries and instead want to build everything yourself from scratch:
Requirements:
- minimum Java version >= 8
- Android Studio with NDK
- latest stable version of Rust
- cargo-ndk (https://github.com/bbqsrc/cargo-ndk)
- Generate the JAR:
git clone https://github.com/iotaledger/iota.rs
cd iota.rs/client/bindings/java
./gradlew jarWithoutNativeLibs
-
You will find the built JAR in the
lib/build/libs
directory. Add it as a library to your Android project. -
Install the Android targets you want to support:
rustup target add aarch64-linux-android armv7-linux-androideabi x86_64-linux-android i686-linux-android
- Build the native library for your Android targets:
cd lib/native
cargo ndk -t arm64-v8a -t armeabi-v7a -t x86 -t x86_64 -o ./jniLibs build --release
- On success, you will find the built native libraries in the
jniLibs/
directory like:
── jniLibs/
├── arm64-v8a/ <-- ARM 64bit
│ └── libiota-client.so
├── armeabi-v7a/ <-- ARM 32bit
│ └── libiota-client.so
│── x86/ <-- Intel 32bit
│ └── libiota-client.so
└── x86_64/ <-- Intel 64bit
└── libiota-client.so
- Each folder is missing its
libc++_shared.so
. You can find them in the configured Android NDK folder like:
find $ANDROID_NDK_HOME -name "libc++_shared.so"
- Copy the found
libc++_shared.so
files to their respective folder inside thejniLibs
directory:
── jniLibs/
├── arm64-v8a/ <-- ARM 64bit
│ └── libiota-client.so
│ └── libc++_shared.so
├── armeabi-v7a/ <-- ARM 32bit
│ └── libiota-client.so
│ └── libc++_shared.so
│── x86/ <-- Intel 32bit
│ └── libiota-client.so
│ └── libc++_shared.so
└── x86_64/ <-- Intel 64bit
└── libiota-client.so
└── libc++_shared.so
- Add the
jniLibs
folder with its contents to your Android Studio project as shown below:
project/
├──src/
└── main/
├── AndroidManifest.xml
├── java/
└── jniLibs/
├── arm64-v8a/ <-- ARM 64bit
│ └── libiota-client.so
│ └── libc++_shared.so
├── armeabi-v7a/ <-- ARM 32bit
│ └── libiota-client.so
│ └── libc++_shared.so
│── x86/ <-- Intel 32bit
│ └── libiota-client.so
│ └── libc++_shared.so
└── x86_64/ <-- Intel 64bit
└── libiota-client.so
└── libc++_shared.so
Please note, following instructions build the library for your host OS/architecture only.
Requirements:
- minimum Java version >= 8
- latest stable version of Rust
- Generate the JAR:
git clone https://github.com/iotaledger/iota.rs
cd iota.rs/client/bindings/java
./gradlew jar
- You will find the built JAR in the
lib/build/libs
directory. Add it as a library to your Java project.