Iroha 2: FFI client library bindings
Project Title | Iroha 2 FFI client library bindings |
Status | completed |
Primary Focus | Coding |
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
unsafeprogramming in Rustlow-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