Iroha 2: FFI client library bindings
Description
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: iroha_client_cli
.
Additional Information
Since this project would be a part of Iroha core code, there are no links to add, but the questions are welcome.
Learning Objectives
The mentee shall learn about
- The C-ABI
- The Rust facilities for dynamic linkage
unsafe
programming in Rust- low-level structure representations
- Undefined behaviour
Expected Outcome
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.
Mentee Skills
- Basic knowledge of Rust
Useful knowledge or willingness to learn:
- FFI
- C-bindings generators
- The ideas of ABI stability
- The basics of code refactoring
Links
"Hyperledger - Iroha 2 FFI client library bindings" mentorship page on the LFX platform.
Future plans
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: petrosyan@soramitsu.co.jp, @m3lcore
- Marin Versic: versic@soramitsu.co.jp, @mingler101