diff --git a/tonic/Cargo.toml b/tonic/Cargo.toml
index 747635056..aa070f3ac 100644
--- a/tonic/Cargo.toml
+++ b/tonic/Cargo.toml
@@ -83,7 +83,7 @@ h2 = { version = "0.4", optional = true }
hyper = { version = "1.0", features = ["full"], optional = true }
hyper-util = { version = "0.1", features = ["full"] }
hyper-timeout = { version = "0.5", optional = true }
-tokio-stream = "0.1"
+tokio-stream = { version = "0.1", features = ["net"] }
tower = { version = "0.4.7", default-features = false, features = [
"balance",
"buffer",
diff --git a/tonic/benches/decode.rs b/tonic/benches/decode.rs
index 5c7cd0159..ca9984c51 100644
--- a/tonic/benches/decode.rs
+++ b/tonic/benches/decode.rs
@@ -1,11 +1,13 @@
-use bencher::{benchmark_group, benchmark_main, Bencher};
-use bytes::{Buf, BufMut, Bytes, BytesMut};
-use http_body::Body;
use std::{
fmt::{Error, Formatter},
pin::Pin,
task::{Context, Poll},
};
+
+use bencher::{benchmark_group, benchmark_main, Bencher};
+use bytes::{Buf, BufMut, Bytes, BytesMut};
+use http_body::{Body, Frame, SizeHint};
+
use tonic::{codec::DecodeBuf, codec::Decoder, Status, Streaming};
macro_rules! bench {
@@ -58,23 +60,24 @@ impl Body for MockBody {
type Data = Bytes;
type Error = Status;
- fn poll_data(
- mut self: Pin<&mut Self>,
- _: &mut Context<'_>,
- ) -> Poll