All Projects → iotaledger → Iota.rs

iotaledger / Iota.rs

Licence: apache-2.0
Alpha version of the official IOTA Rust library.

Programming Languages

rust
11053 projects

iota.rs

Official Rust library.

🚧 Alpha Version 🚧

This repository now targets Chrysalis part 2 It will have many breaking change along the way. Please use with caution! 🚧

The goal of this library is to have one source code of truth, which means there is one implementation in Rust and bindings to other programming languages.

For value transfers we recommend to use wallet.rs.

This alpha version allows you to do the following:

  • Create messages and transactions
  • Sign transactions
  • Generate addresses
  • Interact with an IOTA node

Please report any issues in our issue tracker.

Table of contents
Prerequisites
Using the library
API reference
Examples
Bindings
Supporting the project
Joining the discussion
License

Requirements

To use the library, we recommend you update Rust to latest stable version $ rustup update stable. Nightly should be fine but some changes might not be compatible.

no_std is not currently supported, but we are working on it in bee, and will provide it as feature once the new implementation is ready.

Using the library

Using the library is easy, just add it as dependancy in Cargo.toml:

[dependencies]
iota-core = { git = "https://github.com/iotaledger/iota.rs", branch = "dev" }

And then you can use the library in your code with iota.

When using the "MQTT" feature, connecting to a MQTT broker using raw ip doesn't work. This is a limitation of rustls.

API reference

You can read the API reference here, or generate it yourself.

If you'd like to explore the implementation in more depth, the following command generates docs for the whole crate, including private modules:

cargo doc --document-private-items --no-deps --open

Examples

You can see the examples in the examples directory and try them with:

cargo run --example balance

For the examples where a seed is required you have to rename .env.example to .env.

Bindings

Bindings to other programming languages.

Supporting the project

Joining the discussion

If you want to get involved in the community, need help with setting up, have any issues or just want to discuss IOTA with other people, feel free to join our Discord.

License

The Apache 2.0 license can be found here.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].