What is aries-vcx
Aries-vcx https://github.com/hyperledger/aries-vcx/ is Rust implementation of Aries protocols and collection of additional project built on top:
aries-vcx - the first class citizen Rust crate, library to speak Aries protocols, deal with wallets, interact with ledger
- Mobile applications building blocks:
- deprecated approach: libvcx-java, libvcx-ios: these are C binding which enable calling aries-vcx from Objective-C and Java
- endorsed approach: New approach based on UniFFI is in staged of Proof of Concept. This can generate Swift and Kotlin wrappers for aries-vcx. If you are interestd in mobile development, your contributions here would be invaluable! POC: https://github.com/hyperledger/aries-vcx/pull/737
NodeJS: we have NodeJS bindings to build NodeJS applications on top of aries-vcx
Built on top of aries-vcx
Aries-vcx is generic crate which can be used to build Rust applications and libraries. We strive to be opinion-less to enable arbitrary use-case. Aries-vcx can be used to build web, mobile, cli and potentially embedded agents.
Example of crates built on top of aries-vcx:
- libvcx - wrapper around aries-vcx to enable certain FFI approach
- uniffi wrapper (POC phase) - wrapper around aries-vcx to generate Kotlin and Swift mobile wrappers, using uniffi library
- aries-vcx-agent - simple agent implementation with in-memory storage
- aries-vcx-backchannel - simple web agent built on top of aries-vcx-agent, used for cross testing aries-vcx with other Aries implementations in Aries Agent Test Harness
How to get involved
We welcome new contributors to improve aries-vcx or build on top of it!
- Talk with us on Discord https://discord.com/channels/905194001349627914/955480822675308604
- Join our weekly community calls via Zoom: Community calls
Project ideas
- Load tester - aries-vcx can many wallets and many pool connections, being written in Rust making it great candidate as high-performance tool to test server implementations
- CLI agent - building on top of aries-vcx-agent and some of many console UI interface frameworks available in Rust, you could build tool to manage an Aries agent from CLI interface
- First implementation POC done! https://github.com/hyperledger/aries-vcx/pull/692
- Aries message mediator - you could build aries-compliant mediator - sort of mailbox for encrypted aries message, this is useful to enable asynchronous communication for mobile devices.
- Aries anonymizer - similar to mediator, a simpler implementation could be created which would simply forward messages to other destination. Sort of "nginx specialized for Aries".
- Embedded device aries agent - we are no aware of anyone yet trying building embedded with aries-vcx
- Credential faucet - simple web agent with UI capable of issuing some credential by scanning a QR code. Having something like that deployed against Sovrin networks, it could be useful for wide ecosystem of developers.
- Verifier agent - in real world, there will be presumably handful of issuers but likely many verifiers! Deploying full featured agent capable of both issuance, verification and perhaps other protocols can be complex, a narrowly focused Verifier agent could be built on
aries-vcx
. This would require minimal configuration, the agent can be largely stateless as it would only need to READ ledger, not write. Aries-vcx is perfectly positioned to be core of high-performance proof verifier.
Research ideas
- How to leverage https://github.com/sicpa-dlab/didcomm-rust in aries-vcx?