apache / apache/arrow-rs-object-store
Drop `tokio` requirement for `object_store` crate
- Dominant language
- Rust
- Stars
- 322
- Forks
- 212
- Avg merge
- 5d 2h
- Merged PRs (30d)
- 10
Description
**Is your feature request related to a problem or challenge? Please describe what you are trying to do.**
I'm a library developer. I would like my library to have async code, but not force developers into a specific async runtime (smol, tokio, etc). My library depends on `object_store`, which uses `reqwest`, which requires `tokio` to run:
- https://github.com/seanmonstar/reqwest/issues/1108
- https://github.com/seanmonstar/reqwest/discussions/1961
My library can't use `object_store` without forcing all my users to adopt `tokio` as their async runtime.
**Describe the solution you'd like**
I think object_store should drop `reqwest` as a requirement for its cloud integrations. Perhaps adopt a different HTTP client that works with other async reactors as well?
**Describe alternatives you've considered**
We looked at dropping our dependency on `object_store`, but it's such a good library.
We are currently using `futures-rs`'s `block_on`, but we get:
```
there is no reactor running, must be called from the context of a Tokio 1.x runtime
```
Contributor guide
Research direction
Start by tracing the crate's reqwest dependency and cloud integration entry points. Compare the current runtime assumptions with alternatives that support async runtimes beyond tokio. Done means the cloud integrations no longer force tokio, with compatibility verified; the issue names no files or tests, so the exact validation path must be established.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cloud
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100