Skip to main content

IOTA Client Libraries

tl;dr;

You can use the IOTA client libraries to handle communications between your node and your Layer 1 network of choice.

The IOTA foundation recommends using wallet.rs for value transactions.

Free and Open-Sourced

All the libraries mentioned in this section are free, open-sourced, and maintained by both the IOTA Foundation and the IOTA Community.

Simple by Default, as Complex as You May Need

IOTA Client libraries handle the communications between your software and the Shimmer network. They are designed to simplify how you connect and interact with nodes in the network by providing high-level helper functions which combine multiple atomic REST-API commands under the hood and use sensible defaults. However, you can still customize your application by overriding the default parameters or combining atomic REST-API commands to suit your needs.

High-level Overview

wallet.rsiota.rsiota.js
Main languageRustRustTypeScript
Java bindingYesYesNo
Python bindingYesYesNo
NodeJs bindingYesYesNo
StatefulYesNoNo
Recommended for value transactionsYesNoNo
Secured by StrongholdAlwaysOptionalOptional
Latest FeaturesYesYesAlmost

wallet.rs

The wallet.rs library is a stateful package that you can use to build any application that manages funds in the Shimmer network, for example, an exchange.

Secured by Stronghold

The wallet.rs library uses Stronghold to generate and store encrypted seeds at rest. By design, Stronghold uses non-contiguous data types and cryptographic procedures to create password protected snapshots that you can easily back up or share between devices.

Flexible Account Models

The library supports both single-ccount and multi-account models. You can use the multi-account model if you want to create an individual account for each of your users, or the single-account model if you want to control a single account from which you can generate an address for each of your users.

Available Languages

The wallet.rs library is written in Rust and has bindings in Java, Node.js and Python.

iota.rs

The iota.rs library is a stateless package that you can use to build any application that communicates with the Shimmer network. Its stateless approach makes the library easy to use and understand. It also gives you full control over data management for your application.

Funds and Sensitive Data

If your application manages funds or sensitive data, please consider using wallet.rs, which was designed with that use in mind.

Available Languages

The iota.rs library is written in Rust, and has bindings in Java, Node.js and Python.

iota.js

The iota.js library is based on iota.rs. Since the iota.js library is written in Typescript, it can strongly type objects it sends to and receives from a Hornet Node through API calls, and you can use it both browser or Node.js environments.

Keep in mind that though iota.js is functionally complete, iota.rs is maintained by more contributors and has the latest features.