dropbox-sdk-rust icon indicating copy to clipboard operation
dropbox-sdk-rust copied to clipboard

implement optional async support

Open wfraser opened this issue 2 months ago • 0 comments

The new features controlling this are async_routes which enables compiling the async functions, and and default_async_client which enables a default HTTP client based on reqwest.

For most current use cases this should be a seamless transition, as I've made great pains to ensure that types are in the same locations unless you use the new features.

However if users have implemented a custom HTTP client, they will need to rework it a lot, as the HTTP client traits have been completely rewritten and are very different. That said, the new trait moves more things to the helper code, so implementing a custom client should be easier now.

This change violates our MSRV policy by quite a lot (requiring rust 1.75.0 which is only ~4 months old instead of the desired 12) so I'm proposing to land this as a beta release for now.

Checklist

General Contributing

  • [x] I have read the Code of Conduct and signed the CLA.
  • [x] I have added an entry to the RELEASE_NOTES.md file, or believe it's not necessary for this change.

Validation

A copy of the demo example has been made (called demo-async) which uses the default async client, which acts as a decent integration test.

wfraser avatar Apr 22 '24 19:04 wfraser