Project Plan - Aries VCX Next-gen Mobile Wrapper (UniFFI)
Abstract
Aries-VCX is a collection of Rust crates which provide APIs for stepping through Hyperledger Aries Protocols. Previously, Aries-vcx has provided it's functionality to mobile (android and ios) consumers via a wrapper layer known as libvcx. Libvcx wraps over aries_vcx functionality and creates C-callable FFI bindings, and provides Java and Objective-C bindings for calling those bindings from mobile ecosystems. Overtime, manually maintain libvcx has become quite a chore, and does not leverage new FFI tech which is now available. The goal of this mentorship project, is to create new mobile bindings using the UniFFI tool, which from initial prototyping has shown a lot promise.
Mentor and Mentees
Mentors
Patrik Stas, Discord: Patrik Stas#7722, Absa Group
Bogdan Mircea, Discord: bobozaur#5997, Absa Group
Miroslav Kovar, Discord: mirgee#3763, Absa Group
George Mulhearn, Discord: gmulhearn#0356
Mentee
Swapnil Tripathi, Discord: swaptr, Github: https://github.com/swaptr
Deliverables
Connection APIs and update sample app accordinglyHolder APIs and update sample app accordinglyBonus Deliverables
run_blocking approach.. UniFFI may have support for this later in the timeline!)Milestones
Eval 1:
Eval 2:
Eval 3:
Eval 4:
Timeline
Dates | Tasks/Plan | Status |
|---|---|---|
Jun 12 - Jun 26 | Mentee intro with the mentor. On-boarding: understand aries vcx project/s Get aries-vcx integration tests working to confirm development environment plan out the scope and tasks for the UniFFI project complete UniFFI tutorials build rust sample project for Android architectures | ✅ |
Jun 27 - Jul 10 | Manually build the existing uniffi_aries_vcx project for android Create a convenience script for compiling uniffi_aries_vcx project for android Expand the script to generate UniFFI bindings for uniffi_aries_vcx https://github.com/hyperledger/aries-vcx/pull/896 (moved to PR with sample app) | ✅ |
Jul 11 - Jul 24 | Bootstrap android sample app which consumes bindings generated by script mentioned above - demonstrate app to mentors (e.g. a simple button that calls into an existing uniffi method). consider how to best automate/optimize personal development flow from creating new feature to testing in app update uniffi_aries_vcx to use modular-libs instead of vdrtools Not an appropriate time for this | ✅ |
Jul 25 - Aug 7 (Jul 28 eval) | Complete Connection API uniffi bindingsUpdate sample app to create profile | ✅ |
Aug 8 - Aug 21 | Update sample app to scan invitation | ✅ |
Aug 22 - Sep 4 (Sept 1 eval) | Update sample app to send request | ✅ |
Sep 5 - Sep 18 | Update sample app to wait for response and complete connection protocol | ✅ |
Sep 19 - Oct 2 | Work on Holder API bindings | ✅ |
Oct 3 - Oct 16 (Oct 13 eval) | ✅ | |
Oct 16 - Oct 30 | Migrate to modular libs stack (credx, indy-vdr) and ensure successful compilation still continue work on sample app holder flow (receive a cred) | ✅ |
Oct 31 - Nov 6 | complete sample app holder flow Breather and any final touches |
|
Nov 7 - Nov 30 (Nov 30 eval) | Consider bonus deliverables mentioned above |
|