Currently, the Hyperledger Iroha v2 clients are linked statically or via a sophisticated code generation process that is both brittle and necessitates an inordinate amount of work for each ABI-breaking change to the Hyperledger Iroha v2 core library.
Instead, we plan to create a shared C-ABI-based dynamically linked library that will be used by all clients and SDKs and the reference implementation of a Rust client:
Since this project would be a part of Iroha core code, there are no links to add, but the questions are welcome.
The mentee shall learn about
- The C-ABI
- The Rust facilities for dynamic linkage
unsafeprogramming in Rust
- low-level structure representations
- Undefined behaviour
This project would enable the dynamic linking of SDK, resulting in an improved SDK ecosystem and better support for existing languages like Python or TypeScript.
Relation to Hyperledger
Iroha SDK is a part of Hyperledger Iroha 2 project.
- Basic knowledge of Rust
Useful knowledge or willingness to learn:
- C-bindings generators
- The ideas of ABI stability
- The basics of code refactoring
Enhanced FFI client bindings will be used in many Iroha 2 SDKs as an actively supported part of it.
Mentor(s) Names and Contact Info
- Aleksandr Petrosyan: email@example.com, @m3lcore
- Marin Versic: firstname.lastname@example.org, @mingler101