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
- Create Android binary + bindings compilation scripts for the existing UniFFI prototype in aries-vcx: https://github.com/hyperledger/aries-vcx/tree/main/uniffi_aries_vcx
- Bootstrap sample android demo application, which consumes the existing prototype's bindings and binaries
- Create bindings for all
Connection
APIs and update sample app accordingly - Create bindings for all
Holder
APIs and update sample app accordingly - Update existing prototype to use newer aries_vcx functionality (switch from vdrtools profile to modular_libs profile)
Bonus Deliverables
- Create CI for compiling and packaging an Android SDK deliverable with aries_vcx and mediator client functionality
- Consider async API optimizations (how can be improve on the existing
run_blocking
approach.. UniFFI may have support for this later in the timeline!) - Create CI for compiling and packaging an iOS SDK deliverable with aries_vcx and mediator client functionality
Milestones
Eval 1:
- Comfortable with aries-vcx and UniFFI tool
- Script for building uniffi_aries_vcx android consumables developed
- Sample app bootstrapped and consuming/demonstrating uniffi_aries_vcx bindings
Eval 2:
- Connection APIs wrapped in UniFFI
- Sample app updated to demonstrate Connection APIs
Eval 3:
- Holder APIs wrapped in UniFFI
Eval 4:
- Migrate to modular libs stack (credx, indy-vdr)
- Sample app updated to support Holder flow (receive a credential)
Timeline
Dates | Tasks/Plan | Status |
---|---|---|
Jun 12 - Jun 26 | Mentee intro with the mentor. On-boarding:
| ✅ |
Jun 27 - Jul 10 |
| ✅ |
Jul 11 - Jul 24 |
| ✅ |
Jul 25 - Aug 7 (Jul 28 eval) |
| ✅ |
Aug 8 - Aug 21 |
| ✅ |
Aug 22 - Sep 4 (Sept 1 eval) |
| ✅ |
Sep 5 - Sep 18 |
| ✅ |
Sep 19 - Oct 2 |
| ✅ |
Oct 3 - Oct 16 (Oct 13 eval) |
| ✅ |
Oct 16 - Oct 30 |
| ✅ |
Oct 31 - Nov 6 |
| |
Nov 7 - Nov 30 (Nov 30 eval) |
|