Skip to content

remove unconditional dependency on tokio features #1184

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
xxchan opened this issue Apr 9, 2025 · 1 comment
Open

remove unconditional dependency on tokio features #1184

xxchan opened this issue Apr 9, 2025 · 1 comment

Comments

@xxchan
Copy link
Member

xxchan commented Apr 9, 2025

          This is the dependency tree of tokio:

cargo tree -i tokio -p iceberg -e features

tokio v1.44.2
└── hyper-util v0.1.10
    ├── hyper-util feature "client"
    │   └── reqwest v0.12.12
    │       └── reqsign v0.16.1
    │           └── opendal v0.53.0
    │               ├── opendal feature "default"
    │               │   └── iceberg v0.4.0 (/Users/xxchan/Projects/iceberg-rust/crates/iceberg)
    │               │       ├── iceberg feature "default" (command-line)
    │               │       │   └── iceberg-catalog-memory v0.4.0 (/Users/xxchan/Projects/iceberg-rust/crates/catalog/memory)
    │               │       │       └── iceberg-catalog-memory feature "default"
    │               │       │           [dev-dependencies]
    │               │       │           └── iceberg v0.4.0 (/Users/xxchan/Projects/iceberg-rust/crates/iceberg) (*)
    │               │       ├── iceberg feature "storage-fs"
    │               │       │   └── iceberg feature "default" (command-line) (*)
    │               │       ├── iceberg feature "storage-memory"
    │               │       │   └── iceberg feature "default" (command-line) (*)
    │               │       ├── iceberg feature "storage-s3"
    │               │       │   └── iceberg feature "default" (command-line) (*)
    │               │       └── iceberg feature "tokio"
    │               │           └── iceberg feature "default" (command-line) (*)
    │               ├── opendal feature "executors-tokio"
    │               │   └── opendal feature "default" (*)
    │               ├── opendal feature "internal-tokio-rt"
    │               │   └── opendal feature "services-fs"
    │               │       └── iceberg feature "storage-fs" (*)
    │               ├── opendal feature "services-fs" (*)
    │               ├── opendal feature "services-memory"
    │               │   ├── iceberg feature "storage-memory" (*)
    │               │   └── opendal feature "default" (*)
    │               └── opendal feature "services-s3"
    │                   └── iceberg feature "storage-s3" (*)
    │           ├── reqsign feature "reqwest_request"
    │           │   └── opendal feature "services-s3" (*)
    │           └── reqsign feature "services-aws"
    │               └── opendal feature "services-s3" (*)
    │       ├── reqwest feature "__rustls"
    │       │   └── reqwest feature "rustls-tls-webpki-roots-no-provider"
    │       │       └── reqwest feature "rustls-tls-webpki-roots"
    │       │           └── reqwest feature "rustls-tls"
    │       │               └── opendal feature "default" (*)
    │       ├── reqwest feature "__rustls-ring"
    │       │   └── reqwest feature "rustls-tls-webpki-roots" (*)
    │       ├── reqwest feature "__tls"
    │       │   └── reqwest feature "__rustls" (*)
    │       ├── reqwest feature "json"
    │       │   └── iceberg v0.4.0 (/Users/xxchan/Projects/iceberg-rust/crates/iceberg) (*)
    │       ├── reqwest feature "rustls-tls" (*)
    │       ├── reqwest feature "rustls-tls-webpki-roots" (*)
    │       ├── reqwest feature "rustls-tls-webpki-roots-no-provider" (*)
    │       └── reqwest feature "stream"
    │           └── opendal v0.53.0 (*)
    │   └── hyper-util feature "client-legacy"
    │       ├── hyper-rustls v0.27.5
    │       │   ├── hyper-rustls feature "http1"
    │       │   │   └── reqwest v0.12.12 (*)
    │       │   ├── hyper-rustls feature "ring"
    │       │   │   └── reqwest feature "__rustls-ring" (*)
    │       │   ├── hyper-rustls feature "tls12"
    │       │   │   └── reqwest v0.12.12 (*)
    │       │   ├── hyper-rustls feature "webpki-roots"
    │       │   │   └── hyper-rustls feature "webpki-tokio"
    │       │   │       └── reqwest feature "rustls-tls-webpki-roots-no-provider" (*)
    │       │   └── hyper-rustls feature "webpki-tokio" (*)
    │       └── reqwest v0.12.12 (*)
    ├── hyper-util feature "client-legacy" (*)
    ├── hyper-util feature "default"
    │   └── reqwest v0.12.12 (*)
    ├── hyper-util feature "http1"
    │   └── reqwest v0.12.12 (*)
    │   └── hyper-rustls feature "http1" (*)
    └── hyper-util feature "tokio"
        ├── hyper-rustls v0.27.5 (*)
        └── reqwest v0.12.12 (*)
        ├── hyper-util feature "client-legacy" (*)
        └── hyper-util feature "tokio" (*)
├── tokio feature "bytes"
│   └── tokio feature "io-util"
│       ├── opendal v0.53.0 (*)
│       └── parquet v54.2.0
│           ├── parquet feature "arrow"
│           │   └── parquet feature "default"
│           │       └── iceberg v0.4.0 (/Users/xxchan/Projects/iceberg-rust/crates/iceberg) (*)
│           ├── parquet feature "arrow-array"
│           │   └── parquet feature "arrow" (*)
│           ├── parquet feature "arrow-buffer"
│           │   └── parquet feature "arrow" (*)
│           ├── parquet feature "arrow-cast"
│           │   └── parquet feature "arrow" (*)
│           ├── parquet feature "arrow-data"
│           │   └── parquet feature "arrow" (*)
│           ├── parquet feature "arrow-ipc"
│           │   └── parquet feature "arrow" (*)
│           ├── parquet feature "arrow-schema"
│           │   └── parquet feature "arrow" (*)
│           ├── parquet feature "arrow-select"
│           │   └── parquet feature "arrow" (*)
│           ├── parquet feature "async"
│           │   └── iceberg v0.4.0 (/Users/xxchan/Projects/iceberg-rust/crates/iceberg) (*)
│           ├── parquet feature "base64"
│           │   ├── parquet feature "arrow" (*)
│           │   └── parquet feature "default" (*)
│           ├── parquet feature "brotli"
│           │   └── parquet feature "default" (*)
│           ├── parquet feature "default" (*)
│           ├── parquet feature "flate2"
│           │   └── parquet feature "default" (*)
│           ├── parquet feature "futures"
│           │   └── parquet feature "async" (*)
│           ├── parquet feature "lz4"
│           │   └── parquet feature "default" (*)
│           ├── parquet feature "lz4_flex"
│           │   └── parquet feature "lz4" (*)
│           ├── parquet feature "simdutf8"
│           │   └── parquet feature "default" (*)
│           ├── parquet feature "snap"
│           │   └── parquet feature "default" (*)
│           ├── parquet feature "tokio"
│           │   └── parquet feature "async" (*)
│           ├── parquet feature "zstd"
│           │   └── parquet feature "default" (*)
│           └── parquet feature "zstd-sys"
│               └── parquet feature "zstd" (*)
│       └── reqwest feature "__tls" (*)
├── tokio feature "default"
│   ├── backon v1.3.0
│   │   ├── backon feature "default"
│   │   │   └── opendal v0.53.0 (*)
│   │   ├── backon feature "gloo-timers-sleep"
│   │   │   └── backon feature "default" (*)
│   │   ├── backon feature "std-blocking-sleep"
│   │   │   └── backon feature "default" (*)
│   │   └── backon feature "tokio-sleep"
│   │       └── opendal v0.53.0 (*)
│   │       └── backon feature "default" (*)
│   ├── hyper v1.6.0
│   │   └── hyper-rustls v0.27.5 (*)
│   │   ├── hyper feature "client"
│   │   │   └── reqwest v0.12.12 (*)
│   │   │   └── hyper-util feature "client" (*)
│   │   ├── hyper feature "default"
│   │   │   ├── hyper-util v0.1.10 (*)
│   │   │   └── reqwest v0.12.12 (*)
│   │   └── hyper feature "http1"
│   │       └── reqwest v0.12.12 (*)
│   │       └── hyper-util feature "http1" (*)
│   ├── hyper-rustls v0.27.5 (*)
│   ├── opendal v0.53.0 (*)
│   ├── tokio-rustls v0.26.1
│   │   └── hyper-rustls v0.27.5 (*)
│   │   ├── tokio-rustls feature "ring"
│   │   │   └── reqwest feature "__rustls-ring" (*)
│   │   └── tokio-rustls feature "tls12"
│   │       └── reqwest v0.12.12 (*)
│   │       └── hyper-rustls feature "tls12" (*)
│   ├── tokio-util v0.7.13
│   │   ├── tokio-util feature "codec"
│   │   │   └── reqwest v0.12.12 (*)
│   │   └── tokio-util feature "io"
│   │       └── reqwest v0.12.12 (*)
│   └── tower v0.5.2
│       ├── tower feature "__common"
│       │   └── tower feature "util"
│       │       └── reqwest v0.12.12 (*)
│       ├── tower feature "futures-core"
│       │   └── tower feature "__common" (*)
│       ├── tower feature "futures-util"
│       │   └── tower feature "util" (*)
│       ├── tower feature "pin-project-lite"
│       │   ├── tower feature "__common" (*)
│       │   ├── tower feature "timeout"
│       │   │   └── reqwest v0.12.12 (*)
│       │   └── tower feature "util" (*)
│       ├── tower feature "sync_wrapper"
│       │   └── tower feature "util" (*)
│       ├── tower feature "timeout" (*)
│       ├── tower feature "tokio"
│       │   └── tower feature "timeout" (*)
│       └── tower feature "util" (*)
├── tokio feature "fs"
│   ├── opendal feature "services-fs" (*)
│   └── reqwest feature "stream" (*)
├── tokio feature "io-util" (*)
├── tokio feature "libc"
│   └── tokio feature "net"
│       └── reqwest v0.12.12 (*)
│       └── hyper-util feature "tokio" (*)
├── tokio feature "macros"
│   └── parquet v54.2.0 (*)
├── tokio feature "mio"
│   └── tokio feature "net" (*)
├── tokio feature "net" (*)
├── tokio feature "rt"
│   └── parquet v54.2.0 (*)
│   ├── opendal feature "executors-tokio" (*)
│   ├── tokio feature "rt-multi-thread"
│   │   ├── iceberg feature "tokio" (*)
│   │   └── opendal feature "internal-tokio-rt" (*)
│   └── hyper-util feature "tokio" (*)
├── tokio feature "rt-multi-thread" (*)
├── tokio feature "socket2"
│   └── tokio feature "net" (*)
├── tokio feature "sync"
│   ├── hyper v1.6.0 (*)
│   ├── iceberg v0.4.0 (/Users/xxchan/Projects/iceberg-rust/crates/iceberg) (*)
│   ├── opendal v0.53.0 (*)
│   ├── tokio-util v0.7.13 (*)
│   └── tower v0.5.2 (*)
│   └── hyper-util feature "client-legacy" (*)
├── tokio feature "time"
│   └── reqwest v0.12.12 (*)
│   ├── backon feature "tokio-sleep" (*)
│   ├── hyper-util feature "tokio" (*)
│   └── tower feature "timeout" (*)
└── tokio feature "tokio-macros"
    └── tokio feature "macros" (*)

Originally posted by @xxchan in #1173 (comment)

@xxchan
Copy link
Member Author

xxchan commented Apr 11, 2025

Well, I think this is not possible at all, since opendal/reqwest etc have hard dependency on tokio.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant