Readyset is a MySQL and Postgres wire-compatible caching layer that sits in front of existing databases to speed up queries and horizontally scale read throughput. Under the hood, ReadySet caches the results of cached select statements and incrementally updates these results over time as the underlying data changes.
We have a pretty important dependency on tower for RPCs within Readyset. Unfortunately, the dependency seems to be unmaintained — the last commit was 5 months ago, and the last version was released almost 2 years ago. This is preventing us from upgrading our Rust toolchain because tower currently relies on ahash 0.7.7, which uses the stdsimd feature, which was removed from Rust in early February. Upgrading our toolchain past this point leads to a compile error that cannot be resolved.
We should look into replacing tower with something that is actively maintained. One option might be tarpc, which I particularly like because it allows us to easily define RPCs that are transport agnostic (e.g. they can run over TCP or over memory channels). This would enable us to easily tackle REA-3505.
Description
We have a pretty important dependency on tower for RPCs within Readyset. Unfortunately, the dependency seems to be unmaintained — the last commit was 5 months ago, and the last version was released almost 2 years ago. This is preventing us from upgrading our Rust toolchain because tower currently relies on ahash 0.7.7, which uses the
stdsimd
feature, which was removed from Rust in early February. Upgrading our toolchain past this point leads to a compile error that cannot be resolved.We should look into replacing tower with something that is actively maintained. One option might be tarpc, which I particularly like because it allows us to easily define RPCs that are transport agnostic (e.g. they can run over TCP or over memory channels). This would enable us to easily tackle REA-3505.
Change in user-visible behavior
No
Requires documentation change
No