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.
Native async traits were stabilized as of Rust 1.75, so we no longer need
the async_trait crate in many situations. This commit replaces the 3rd
party crate with the native version everywhere we can. The areas of the
code that still require the 3rd party crate include:
Any trait that is used as a trait object (this is not supported
natively by Rust yet)
Certain traits that returned lifetime errors when attempting to remove
the #[async_trait] macro (these errors included a message that said
the error was a known limitation and would be removed in the future)
The trait in proptest-stateful, whose interface I didn't want to change
without further discussion, since it's a publicly-available trait
Native async traits were stabilized as of Rust 1.75, so we no longer need the async_trait crate in many situations. This commit replaces the 3rd party crate with the native version everywhere we can. The areas of the code that still require the 3rd party crate include:
#[async_trait]
macro (these errors included a message that said the error was a known limitation and would be removed in the future)