hyperledger / aries-askar

Secure storage designed for Hyperledger Aries agents.
Apache License 2.0
58 stars 42 forks source link

Replace serde_cbor with ciborium #264

Open marlonbaeten opened 1 month ago

marlonbaeten commented 1 month ago

The crate serde_cbor is unmaintained and has not received any updates in the last 3 years. The author of serde_cbor proposes ciborium as an alternative. This PR replaces the dependency on serde_cbor with ciborium.

ryjones commented 1 month ago

@marlonbaeten @berendsliedrecht take a look and see if this would work

andrewwhitehead commented 1 month ago

The Android builds are currently using Rust 1.67 in order to provide broader device support (Rust 1.68 increased the minimum NDK version: https://blog.rust-lang.org/2023/01/09/android-ndk-update-r25.html). I'm not sure if this is still necessary but it seems to conflict with one of the dependencies of ciborium which requires 1.70.

andrewwhitehead commented 1 month ago

It does look to me like the minimum API version only increased to KitKat which is already under 1% of devices, so I'm not sure how necessary this restriction is. Maybe it's for compatibility with other libraries? @berendsliedrecht

ryjones commented 1 month ago

I suggest merging this and bumping the images repo to whatever is new enough.

TimoGlastra commented 1 month ago

There were some issues we encountered without the custom images in quite recent Android APIs, not sure if that will impact it, but would be good to first test it thoroughly.

I think it was mainly the NDK version.

Berend would know more

berendsliedrecht commented 1 month ago

There were some issues we encountered without the custom images in quite recent Android APIs, not sure if that will impact it, but would be good to first test it thoroughly.

I think it was mainly the NDK version.

Berend would know more

IIRC it was mainly due to rust 1.67+ not working for the Android builds. But I am not too sure anymore if that was because of cross or a subdependency.

I see that the CI fails on error: package 'half v2.4.1' cannot be built because it requires rustc 1.70 or newer, while the currently active rustc version is 1.67.1. Which means we either have to run cargo update -p half@2.4.1 --precise 2.2.1 and see if that fixes it or see if we can update building android images with 1.70 and fix the occurring errors for that.