|
1 | 1 | # `aries_vcx` crate
|
2 |
| -Provides basic tools to build didcomm/aries enabled application in Rust. This can include native mobile apps, or |
3 |
| -webservers for VC issuance/verification, didcomm mediator service etc. |
| 2 | + |
| 3 | +Provides basic tools to build didcomm/aries enabled application in Rust. This can include native mobile apps, or |
| 4 | +webservers for VC issuance/verification, didcomm mediator service etc. |
4 | 5 |
|
5 | 6 | #### What this crate can do for you
|
| 7 | + |
6 | 8 | - Create encrypted wallet.
|
7 | 9 | - Read/write from/to Indy ledger.
|
8 | 10 | - Establish didcomm connections and exchange messages.
|
9 | 11 | - Create and process Aries messages to drive Aries protocols (especially for VC issuance and presentation).
|
10 | 12 |
|
11 | 13 | #### What does crate does NOT DO for you
|
12 |
| -- Provide message outbounds - `aries_vcx` helps you to create correct response & encrypt it, but you have to take care |
| 14 | + |
| 15 | +- Provide message outbounds - `aries_vcx` helps you to create correct response & encrypt it, but you have to take care |
13 | 16 | of sending it to the right place.
|
14 | 17 | - Automatic inbound processing - you have to take care of receiving messages and passing them to `aries_vcx` for processing.
|
15 | 18 | You need to keep track of your ongoing aries "conversations" and match incoming messages (typically based on message thread id).
|
16 | 19 |
|
17 | 20 | # Getting started
|
| 21 | + |
18 | 22 | To use `aries_vcx` in your project, you need to add GitHub dependency to your `Cargo.toml`, and best
|
19 | 23 | define a version through a `tag`:
|
| 24 | + |
20 | 25 | ```toml
|
21 |
| -aries-vcx = { tag = "0.64.0", git = "https://github.com/hyperledger/aries-vcx" } |
| 26 | +aries-vcx = { tag = "0.65.0", git = "https://github.com/hyperledger/aries-vcx" } |
22 | 27 | ```
|
| 28 | + |
23 | 29 | It's also advisable to follow these [instructions](TUTORIAL.md) to check your environment is properly configured.
|
24 | 30 |
|
25 | 31 | # Projects built with aries-vcx
|
| 32 | + |
26 | 33 | - [mediator](../agents/rust/mediator) - Message mediator web service, useful for mobile device to receive messages while the device is offline.
|
27 | 34 | - [unifii_aries_vcx](../../uniffi_aries_vcx) - Mobile wrapper to autogenerate Swift and Kotlin wrappers. Also comes with sample native mobile app.
|
28 | 35 | - [aries-vcx-agent](../agents/rust/aries-vcx-agent) - Sample agent framework adding persistence and message matching on top of `aries_vcx`. Used for cross-compatibility testing with other aries implementations.
|
29 | 36 |
|
30 | 37 | ## Implemented Aries protocols
|
31 |
| -* ✅ Connection Protocol 1.0: [`https://didcomm.org/connections/1.0/*`](https://github.com/hyperledger/aries-rfcs/tree/master/features/0160-connection-protocol) |
32 |
| -* ✅ Out of Band 1.1: [`https://didcomm.org/out-of-band/1.1/*`](https://github.com/hyperledger/aries-rfcs/blob/main/features/0434-outofband) |
33 |
| -* ✅ Basic Message 1.0: [`https://didcomm.org/basicmessage/1.0/*`](https://github.com/hyperledger/aries-rfcs/tree/master/features/0095-basic-message) |
34 |
| -* ✅ Credential Issuance 1.0 [`https://didcomm.org/issue-credential/1.0/*`](https://github.com/hyperledger/aries-rfcs/blob/master/features/0036-issue-credential) |
35 |
| -* ✅ Credential Presentation 1.0: [`https://didcomm.org/present-proof/1.0/*`](https://github.com/hyperledger/aries-rfcs/tree/master/features/0037-present-proof) |
36 |
| -* ✅ Trust Ping 1.0: [`https://didcomm.org/trust_ping/1.0/*`](https://github.com/hyperledger/aries-rfcs/blob/master/features/0048-trust-ping/README.md) |
37 |
| -* ✅ Discover Features 1.0: [`https://didcomm.org/discover-features/1.0/*`](https://github.com/hyperledger/aries-rfcs/tree/master/features/0031-discover-features) |
38 |
| -* ✅ Revocation notification 2.0: [`https://didcomm.org/revocation_notification/2.0/*`](https://github.com/hyperledger/aries-rfcs/tree/master/features/0031-discover-features) |
| 38 | + |
| 39 | +- ✅ Connection Protocol 1.0: [`https://didcomm.org/connections/1.0/*`](https://github.com/hyperledger/aries-rfcs/tree/master/features/0160-connection-protocol) |
| 40 | +- ✅ Out of Band 1.1: [`https://didcomm.org/out-of-band/1.1/*`](https://github.com/hyperledger/aries-rfcs/blob/main/features/0434-outofband) |
| 41 | +- ✅ Basic Message 1.0: [`https://didcomm.org/basicmessage/1.0/*`](https://github.com/hyperledger/aries-rfcs/tree/master/features/0095-basic-message) |
| 42 | +- ✅ Credential Issuance 1.0 [`https://didcomm.org/issue-credential/1.0/*`](https://github.com/hyperledger/aries-rfcs/blob/master/features/0036-issue-credential) |
| 43 | +- ✅ Credential Presentation 1.0: [`https://didcomm.org/present-proof/1.0/*`](https://github.com/hyperledger/aries-rfcs/tree/master/features/0037-present-proof) |
| 44 | +- ✅ Trust Ping 1.0: [`https://didcomm.org/trust_ping/1.0/*`](https://github.com/hyperledger/aries-rfcs/blob/master/features/0048-trust-ping/README.md) |
| 45 | +- ✅ Discover Features 1.0: [`https://didcomm.org/discover-features/1.0/*`](https://github.com/hyperledger/aries-rfcs/tree/master/features/0031-discover-features) |
| 46 | +- ✅ Revocation notification 2.0: [`https://didcomm.org/revocation_notification/2.0/*`](https://github.com/hyperledger/aries-rfcs/tree/master/features/0031-discover-features) |
39 | 47 |
|
40 | 48 | ### State machines guidelines
|
| 49 | + |
41 | 50 | Please follow these [guidelines](docs/guidelines.md) when implementing new state machines.
|
42 | 51 |
|
43 | 52 | ## Architecture
|
|
0 commit comments