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 |
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.
Following dependencies are only required if you use the "mqtt" feature.
cmake
and openssl
are required. In order to run the build process succesfully using Cargo you might need install additional build tools on your system.
cmake
can be downloaded on the official website and openssl
can be installed with vcpkg or chocolatey.
- Installing
openssl
withvcpkg
:
$ ./vcpkg.exe install openssl:x64-windows
$ ./vcpkg.exe integrate install
# you may want to add this to the system environment variables since you'll need it to compile the crate
$ set VCPKGRS_DYNAMIC=1
- Installing
openssl
withchocolatey
:
$ choco install openssl
# you may need to set the OPENSSL_DIR environment variable
$ set OPENSSL_DIR="C:\Program Files\OpenSSL-Win64"
cmake
and openssl
can be installed with Homebrew
:
$ brew install cmake [email protected]
Install cmake
and openssl
with your distro's package manager or download from their websites. On Debian and Ubuntu you will also need build-essential
.
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
.
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
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 to other programming languages.
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.
The Apache 2.0 license can be found here.