whisperfish / libsignal-service-rs

A Rust version of the libsignal-service-java library for communicating with Signal servers.
https://whisperfish.github.io/libsignal-service-rs/libsignal_service
GNU Affero General Public License v3.0
67 stars 30 forks source link

re-export curve25519-dalek features from libsignal-client #138

Open nworbnhoj opened 2 years ago

nworbnhoj commented 2 years ago

I recently opened an issue/request for libsignal-client to re-export curve25519-dalek features

Assuming this request is successful I hope that libsignal-service-rs/Cargo.toml might also re-export curve25519-dalek features?

nightly = [libsignal-client/nightly] default = [libsignal-client/default] std = [libsignal-client/std] alloc = [libsignal-client/alloc] u32_backend = [libsignal-client/u32_backend] u64_backend = [libsignal-client/u64_backend] simd_backend = [libsignal-client/simd_backend]

In particular I am seeking std and u32_backend - and include the others for sake of completeness.

rubdos commented 2 years ago

What's the reasoning behind this? You can include curve25519-dalek yourself in Cargo.toml and set the desired feature set there, I'd think. Neither this crate nor libsignal-client need access to these features.

nworbnhoj commented 2 years ago

As I understand it - features can be specified at the command line or in Cargo.toml - but only in code with a direct dependency on libsignal-client (in this case). libsignal-service-rs must re-export these features for them to be available to subsequent dependents (such as presage or xous-core).

In my case (Signal App on the Precursor) I need to set default-features=false to disable the default u64_backend and then set feature=u32_backend

rubdos commented 2 years ago

I did a bit of digging, and indeed the default-features=false comes back to bite you.

I'll continue the discussion on https://github.com/signalapp/libsignal-client/issues/453.