hyper
hyper copied to clipboard
Drop tokio dependency
Now that hyper uses its own traits instead of tokios (#3110, #3230), the only place that tokio is used is to provide tokio::sync::oneshot::Receiver
in src/upgarde.rs
. If we could find a way to implement this functionality without tokio's oneshot, we could drop the dependency entirely. This would have a pretty huge impact on the transitive dependencies we pull in everywhere hyper is used: from this:
hyper v1.5.0 (/home/jake/tmp/hyper)
├── bytes v1.7.2
├── http v1.1.0
│ ├── bytes v1.7.2
│ ├── fnv v1.0.7
│ └── itoa v1.0.11
├── http-body v1.0.1
│ ├── bytes v1.7.2
│ └── http v1.1.0 (*)
└── tokio v1.40.0
├── bytes v1.7.2
├── libc v0.2.161
├── mio v1.0.2
│ └── libc v0.2.161
├── pin-project-lite v0.2.14
├── socket2 v0.5.7
│ └── libc v0.2.161
└── tokio-macros v2.4.0 (proc-macro)
├── proc-macro2 v1.0.88
│ └── unicode-ident v1.0.13
├── quote v1.0.37
│ └── proc-macro2 v1.0.88 (*)
└── syn v2.0.80
├── proc-macro2 v1.0.88 (*)
├── quote v1.0.37 (*)
└── unicode-ident v1.0.13
to this:
hyper v1.5.0
├── bytes v1.7.2
├── http v1.1.0
│ ├── bytes v1.7.2
│ ├── fnv v1.0.7
│ └── itoa v1.0.11
└── http-body v1.0.1
├── bytes v1.7.2
└── http v1.1.0 (*)
I also think this would make hyper more appealing to use with other executors like smol
@notgull.