Since the actix implementation is not used anymore, and makes changes to the HTTP layer harder, I'm suggesting this big refactoring. No logic has changed, and this is a pure copy-pasta from the contents of libsignal-service-hyper.
Among the benefits stand out:
Better compilation error messages since we stop using async_trait (and static dispatch)
Less generics type parameters propagated everywhere
Our future ability to start using proper http types instead of having our own (weak) abstraction layer
This is a first step to refactor PushService and split the push_service.rs file in many smaller (and more readable) parts.
We can also start exposing different basic feature flags for toggling the TLS layer (maybe it is interesting to whisperfish to use OpenSSL?).
Since the actix implementation is not used anymore, and makes changes to the HTTP layer harder, I'm suggesting this big refactoring. No logic has changed, and this is a pure copy-pasta from the contents of
libsignal-service-hyper
.Among the benefits stand out:
async_trait
(and static dispatch)http
types instead of having our own (weak) abstraction layerThis is a first step to refactor
PushService
and split thepush_service.rs
file in many smaller (and more readable) parts.We can also start exposing different basic feature flags for toggling the TLS layer (maybe it is interesting to
whisperfish
to use OpenSSL?).You can see the type of necessary changes downstream to
whisperfish
orpresage
(not that many) - https://github.com/whisperfish/presage/pull/272