apache / apache/arrow-rs-object-store

Drop `tokio` requirement for `object_store` crate

Open
#273 4 comments 0 reactions 0 assignees View on GitHub
enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.