signalapp / libsignal

Home to the Signal Protocol as well as other cryptographic primitives which make Signal possible.
GNU Affero General Public License v3.0
3.55k stars 415 forks source link

Update to prost 0.9 #425

Closed rubdos closed 2 years ago

rubdos commented 2 years ago

Prost 0.9 contains some performance improvement for varint, and allows developers to work on Apple silicon.

https://github.com/tokio-rs/prost/releases/tag/v0.9.0

Technically this is a breaking change (because prost::DecodeError is exposed through SignalProtocolError), so you'll want to bump to 0.12 after this.

jrose-signal commented 2 years ago

Thank you! As an aside, the version numbers are more for Signal-internal use, so they track the stability of the Java, Swift, and TypeScript interfaces rather than the Rust crate (which is why that's stuck at 0.1.0).

rubdos commented 2 years ago

Thank you! As an aside, the version numbers are more for Signal-internal use, so they track the stability of the Java, Swift, and TypeScript interfaces rather than the Rust crate (which is why that's stuck at 0.1.0).

Aha, I see. Maybe I should make a separate issue about this, but would it at a certain point be possible to start versioning the crate as well?

jrose-signal commented 2 years ago

Circling back to this: after some discussion we're going to do best-effort versioning for the (non-bridge) Rust APIs as well, though for now I think we'll continue treating the version number as a workspace version number rather than tracking things on a per-crate level. (That is, a change in signal-crypto's API would bump the overall version number, even if libsignal-protocol didn't change.)

rubdos commented 2 years ago

That sounds very usable to me already :-)