From 3574c39cc136dc707066986010ff3b34d1e63b0b Mon Sep 17 00:00:00 2001 From: Adam Wick Date: Mon, 7 Feb 2022 16:22:27 -0800 Subject: [PATCH 01/18] Add a test case for automatically decompressing response data. These tests are currently broken, but should succeed once decompression works. They should also catch a couple error cases, although it's unclear if the behavior I'm testing for in the case that someone sends a bad response (one marked as compressed that actually isn't) is ideal. These will probably need to be extended to support streaming / async cases in the future. --- cli/tests/upstream.rs | 27 +++++++++ test-fixtures/data/hello_world | 1 + test-fixtures/data/hello_world.gz | Bin 0 -> 46 bytes test-fixtures/src/bin/gzipped-response.rs | 68 ++++++++++++++++++++++ 4 files changed, 96 insertions(+) create mode 100644 test-fixtures/data/hello_world create mode 100644 test-fixtures/data/hello_world.gz create mode 100644 test-fixtures/src/bin/gzipped-response.rs diff --git a/cli/tests/upstream.rs b/cli/tests/upstream.rs index 838c3f50..908af325 100644 --- a/cli/tests/upstream.rs +++ b/cli/tests/upstream.rs @@ -151,3 +151,30 @@ async fn override_host_works() -> TestResult { Ok(()) } + +/// Test that we can transparently gunzip responses when required. +#[tokio::test(flavor = "multi_thread")] +async fn transparent_gunzip() -> TestResult { + let resp = Test::using_fixture("gzipped-response.wasm") + .backend("echo", "http://127.0.0.1:9000/", None) + .host(9000, |mut req| { + let mut response_builder = Response::builder(); + + for (key, value) in req.headers_mut().drain() { + if let Some(real_key) = key { + response_builder = response_builder.header(real_key, value); + } + } + + response_builder + .status(StatusCode::OK) + .body(req.into_body()) + .unwrap() + }) + .against_empty() + .await; + + assert_eq!(resp.status(), StatusCode::OK); + + Ok(()) +} diff --git a/test-fixtures/data/hello_world b/test-fixtures/data/hello_world new file mode 100644 index 00000000..270c611e --- /dev/null +++ b/test-fixtures/data/hello_world @@ -0,0 +1 @@ +hello, world! diff --git a/test-fixtures/data/hello_world.gz b/test-fixtures/data/hello_world.gz new file mode 100644 index 0000000000000000000000000000000000000000..4a4687d65e55b3fa108b8f0d1f785c6e66f8aba6 GIT binary patch literal 46 zcmb2|=HR$g!I;FroRON7lOJE6UzC%=aN6VS$&=RuHO}jw@(g^!#Bkug;Wj=71_l6? Cg%P9x literal 0 HcmV?d00001 diff --git a/test-fixtures/src/bin/gzipped-response.rs b/test-fixtures/src/bin/gzipped-response.rs new file mode 100644 index 00000000..c5703adc --- /dev/null +++ b/test-fixtures/src/bin/gzipped-response.rs @@ -0,0 +1,68 @@ +use fastly::{Backend, Request}; +use fastly::http::request::SendError; + +static HELLO_WORLD: &'static str = include_str!("../../data/hello_world"); +static HELLO_WORLD_GZ: &'static [u8] = include_bytes!("../../data/hello_world.gz"); + +fn main() -> Result<(), SendError> { + let echo_server = Backend::from_name("echo").expect("Could not find echo backend?"); + + // Test framework sanity check: a request without the auto_decompress flag + // should bounce back to us unchanged. + let standard_echo = Request::put("http://127.0.0.1:9000") + .with_header("Content-Encoding", "gzip") + .with_body_octet_stream(HELLO_WORLD_GZ) + .send(echo_server.clone())?; + + assert_eq!(standard_echo.get_header_str("Content-Encoding"), Some("gzip")); + assert_eq!(standard_echo.get_content_length(), Some(HELLO_WORLD_GZ.len())); + + // Similarly, if we set the auto_decompress flag to false, it should also + // bounce back to us unchanged. + let explicit_no = Request::put("http://127.0.0.1:9000") + .with_header("Content-Encoding", "gzip") + .with_body_octet_stream(HELLO_WORLD_GZ) + .with_auto_decompress_gzip(false) + .send(echo_server.clone())?; + + assert_eq!(explicit_no.get_header_str("Content-Encoding"), Some("gzip")); + assert_eq!(explicit_no.get_content_length(), Some(HELLO_WORLD_GZ.len())); + + // But if we set the auto_decompress flag to true, and send a compressed + // file, we should get the uncompressed version back + let mut unpacked_echo = Request::put("http://127.0.0.1:9000") + .with_header("Content-Encoding", "gzip") + .with_body_octet_stream(HELLO_WORLD_GZ) + .with_auto_decompress_gzip(true) + .send(echo_server.clone())?; + + assert!(unpacked_echo.get_header("Content-Encoding").is_none()); + assert!(unpacked_echo.get_content_length().is_none()); + let hopefully_unpacked = unpacked_echo.take_body_str(); + assert_eq!(HELLO_WORLD, &hopefully_unpacked); + + // That being said, if we set the flag to true and send it a text file, + // we should just get it back unchanged. + let mut yes_but_uncompressed = Request::put("http://127.0.0.1:9000") + .with_body_octet_stream(HELLO_WORLD.as_bytes()) + .with_auto_decompress_gzip(true) + .send(echo_server.clone())?; + + let still_unpacked = yes_but_uncompressed.take_body_str(); + assert_eq!(HELLO_WORLD, &still_unpacked); + + // A slightly odder case: We set everything up for unpacking, but we + // don't actually send a gzip'd file. In this case, we're going to say + // that we should get back exactly the input, even with the bogus + // content encoding. + let bad_gzip = Request::put("http://127.0.0.1:9000") + .with_header("Content-Encoding", "gzip") + .with_body_octet_stream(HELLO_WORLD.as_bytes()) + .with_auto_decompress_gzip(true) + .send(echo_server.clone())?; + + assert_eq!(bad_gzip.get_header_str("Content-Encoding"), Some("gzip")); + assert_eq!(bad_gzip.get_content_length(), Some(HELLO_WORLD.len())); + + Ok(()) +} From 9a07aec8afe6e79ca10e52130ea7d7690a21eb56 Mon Sep 17 00:00:00 2001 From: Adam Wick Date: Mon, 7 Feb 2022 16:32:04 -0800 Subject: [PATCH 02/18] Wire up the auto-decompression flag into the request extensions. Doing this as an extension on the request avoids the need to either (a) manufacture a fake header, or (b) add a new field to the Session type. Thanks to @aturon for the pointer! --- lib/src/session.rs | 3 +++ lib/src/wiggle_abi/req_impl.rs | 15 +++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/lib/src/session.rs b/lib/src/session.rs index 8a90b89a..075291d1 100644 --- a/lib/src/session.rs +++ b/lib/src/session.rs @@ -658,6 +658,9 @@ impl Session { } } +#[derive(Clone, Copy, Eq, Hash, PartialEq)] +pub struct AutoDecompressResponse {} + #[derive(Clone, Copy, Eq, Hash, PartialEq)] #[repr(transparent)] pub struct AsyncItemHandle(u32); diff --git a/lib/src/wiggle_abi/req_impl.rs b/lib/src/wiggle_abi/req_impl.rs index a5fd5d5e..a3b4da7c 100644 --- a/lib/src/wiggle_abi/req_impl.rs +++ b/lib/src/wiggle_abi/req_impl.rs @@ -3,7 +3,7 @@ use { crate::{ error::Error, - session::Session, + session::{AutoDecompressResponse, Session}, upstream::{self, PendingRequest}, wiggle_abi::{ fastly_http_req::FastlyHttpReq, @@ -470,13 +470,20 @@ impl FastlyHttpReq for Session { fn auto_decompress_response_set( &mut self, - _h: RequestHandle, + req_handle: RequestHandle, encodings: ContentEncodings, ) -> Result<(), Error> { + // NOTE: We're going to hide this flag in the headers of the request in order to decrease + // the book-keeping burden inside Session; there already existed a cleaning pass in the + // output chain, which we extend for this use case. + let extensions = &mut self.request_parts_mut(req_handle)?.extensions; + if u32::from(encodings) == 1 { - unimplemented!("calling auto_decompress_response_set with GZIP has not yet been implemented in Viceroy"); + extensions.insert(AutoDecompressResponse {}); } else { - Ok(()) + extensions.remove::(); } + + Ok(()) } } From 2bb45ffd7aab0009c07e663b0401d83949ec43e1 Mon Sep 17 00:00:00 2001 From: Adam Wick Date: Mon, 7 Feb 2022 17:35:45 -0800 Subject: [PATCH 03/18] [WIP] A probably-wrong variant of `Chunk` for decompressing data on the fly. I don't love the buffering behavior of this, and it almost certainly does a completely unnecessary copy that should be easy to remove; that being said, this is where I got to before I closed up for the night. --- Cargo.lock | 13 +++++++++++++ lib/Cargo.toml | 1 + lib/src/body.rs | 48 ++++++++++++++++++++++++++++++++++++++++++++---- 3 files changed, 58 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 67b2425b..801dd38b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -572,6 +572,18 @@ dependencies = [ "log", ] +[[package]] +name = "flate2" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f" +dependencies = [ + "cfg-if", + "crc32fast", + "libc", + "miniz_oxide", +] + [[package]] name = "fnv" version = "1.0.7" @@ -2090,6 +2102,7 @@ dependencies = [ "cfg-if", "cranelift-entity 0.77.0", "fastly-shared", + "flate2", "futures", "http", "http-body", diff --git a/lib/Cargo.toml b/lib/Cargo.toml index 5887d3f3..2fe78396 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -19,6 +19,7 @@ bytesize = "1.0.0" cfg-if = "1.0" cranelift-entity = "0.77.0" fastly-shared = "0.3.2" +flate2 = "1.0.22" futures = "0.3.5" http = "0.2.1" http-body = "0.4.0" diff --git a/lib/src/body.rs b/lib/src/body.rs index f0669c27..cbff1f75 100644 --- a/lib/src/body.rs +++ b/lib/src/body.rs @@ -1,17 +1,22 @@ //! Body type, for request and response bodies. use { + crate::error, + flate2::write::GzDecoder, futures::pin_mut, http::header::HeaderMap, http_body::{Body as HttpBody, SizeHint}, std::{ collections::VecDeque, + io::Write, pin::Pin, task::{Context, Poll}, }, tokio::sync::mpsc, }; +type DecoderState = Box>>; + /// A chunk of bytes in a [`Body`]. /// /// A chunk represents a block of data in a body. Representing bodies as chunks allows us to append @@ -31,6 +36,8 @@ pub enum Chunk { /// one individual chunk. That stream is effectively "flattened" on-demand, as the `Body` /// containing it is read. Channel(mpsc::Receiver), + /// A version of `HttpBody` that assumes that the interior data is gzip-compressed. + CompressedHttpBody(DecoderState, hyper::Body), } impl From<&[u8]> for Chunk { @@ -98,7 +105,7 @@ impl Body { } /// Read the entire body into a byte vector. - pub async fn read_into_vec(self) -> Result, hyper::Error> { + pub async fn read_into_vec(self) -> Result, error::Error> { let mut body = Box::new(self); let mut bytes = Vec::new(); @@ -113,7 +120,7 @@ impl Body { /// # Panics /// /// Panics if the body is not valid UTF-8. - pub async fn read_into_string(self) -> Result { + pub async fn read_into_string(self) -> Result { Ok(String::from_utf8(self.read_into_vec().await?).expect("Body was not UTF-8")) } } @@ -142,7 +149,7 @@ impl IntoIterator for Body { impl HttpBody for Body { type Data = bytes::Bytes; - type Error = hyper::Error; + type Error = error::Error; fn poll_data( mut self: Pin<&mut Self>, @@ -199,6 +206,38 @@ impl HttpBody for Body { } } } + Chunk::CompressedHttpBody(mut decoder_state, mut body) => { + let body_mut = &mut body; + pin_mut!(body_mut); + + match body_mut.poll_data(cx) { + Poll::Pending => { + // put the body back, so we can poll it again next time + self.chunks.push_front(body.into()); + return Poll::Pending; + } + Poll::Ready(None) => { + match decoder_state.finish() { + Err(e) => return Poll::Ready(Some(Err(e.into()))), + Ok(buffer) => return Poll::Ready(Some(Ok(bytes::Bytes::from(buffer)))), + } + } + Poll::Ready(Some(item)) => { + // put the body back, so we can poll it again next time + self.chunks.push_front(body.into()); + + match item { + Err(e) => return Poll::Ready(Some(Err(e.into()))), + Ok(bytes) => { + match decoder_state.write_all(&bytes) { + Err(e) => return Poll::Ready(Some(Err(e.into()))), + Ok(()) => {} + } + } + } + } + } + } } } @@ -218,8 +257,9 @@ impl HttpBody for Body { let mut size = 0; for chunk in self.chunks.iter() { match chunk { - // If this is a streaming body, immediately give up on the hint. + // If this is a streaming body or a compressed chunk, immediately give up on the hint. Chunk::Channel(_) => return SizeHint::default(), + Chunk::CompressedHttpBody(_, _) => return SizeHint::default(), Chunk::HttpBody(body) => { // An `HttpBody` size hint will either be exact, or wide open. If the latter, // bail out with a wide-open range. From dac9806d9e1d438b54eeb8fc509fe20bd032c4b1 Mon Sep 17 00:00:00 2001 From: Adam Wick Date: Tue, 8 Feb 2022 09:38:29 -0800 Subject: [PATCH 04/18] Clean up the decompression polling logic, using BytesMut instead of Vec. This appears to be a bit more standardized, and provides a nicer way to carve off early chunks, as well. Based on testing, it's possible that this will consistently generate an empty chunk at the end of the decompression run, but that should be managed correctly by other parts of the system. --- lib/src/body.rs | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/lib/src/body.rs b/lib/src/body.rs index cbff1f75..24560610 100644 --- a/lib/src/body.rs +++ b/lib/src/body.rs @@ -2,6 +2,7 @@ use { crate::error, + bytes::{BufMut, BytesMut}, flate2::write::GzDecoder, futures::pin_mut, http::header::HeaderMap, @@ -15,7 +16,7 @@ use { tokio::sync::mpsc, }; -type DecoderState = Box>>; +type DecoderState = Box>>; /// A chunk of bytes in a [`Body`]. /// @@ -40,6 +41,13 @@ pub enum Chunk { CompressedHttpBody(DecoderState, hyper::Body), } +impl Chunk { + pub fn compressed_body(body: hyper::Body) -> Chunk { + let initial_state = Box::new(GzDecoder::new(BytesMut::new().writer())); + Chunk::CompressedHttpBody(initial_state, body) + } +} + impl From<&[u8]> for Chunk { fn from(bytes: &[u8]) -> Self { Self::HttpBody(hyper::Body::from(bytes.to_vec())) @@ -216,24 +224,27 @@ impl HttpBody for Body { self.chunks.push_front(body.into()); return Poll::Pending; } - Poll::Ready(None) => { - match decoder_state.finish() { - Err(e) => return Poll::Ready(Some(Err(e.into()))), - Ok(buffer) => return Poll::Ready(Some(Ok(bytes::Bytes::from(buffer)))), + Poll::Ready(None) => match decoder_state.finish() { + Err(e) => return Poll::Ready(Some(Err(e.into()))), + Ok(buffer) => { + return Poll::Ready(Some(Ok(buffer.into_inner().freeze()))); } - } + }, Poll::Ready(Some(item)) => { // put the body back, so we can poll it again next time self.chunks.push_front(body.into()); match item { Err(e) => return Poll::Ready(Some(Err(e.into()))), - Ok(bytes) => { - match decoder_state.write_all(&bytes) { - Err(e) => return Poll::Ready(Some(Err(e.into()))), - Ok(()) => {} + Ok(bytes) => match decoder_state.write_all(&bytes) { + Err(e) => return Poll::Ready(Some(Err(e.into()))), + Ok(()) => { + decoder_state.flush().unwrap(); + let chunk = + decoder_state.get_mut().get_mut().split().freeze(); + return Poll::Ready(Some(Ok(chunk))); } - } + }, } } } From ec487ed0a06094bbae0ce0e39a40e114c74e9682 Mon Sep 17 00:00:00 2001 From: Adam Wick Date: Tue, 8 Feb 2022 09:40:51 -0800 Subject: [PATCH 05/18] Wire everything up, and get the basic tests working. This is relatively straightforward, but more thought should go into the error case in which someone marks data as gzip-compressed but it isn't. The system remains whole after this, but the observable behavior is odd in that it gets marked as StatusCode::OK but taking the body leads to uncatchable failures (I think). --- lib/src/upstream.rs | 33 +++++++++++++++++++---- test-fixtures/src/bin/gzipped-response.rs | 24 ++++++++++------- 2 files changed, 43 insertions(+), 14 deletions(-) diff --git a/lib/src/upstream.rs b/lib/src/upstream.rs index 98a36017..5866ca79 100644 --- a/lib/src/upstream.rs +++ b/lib/src/upstream.rs @@ -1,10 +1,14 @@ use crate::{ - body::Body, config::Backend, error::Error, headers::filter_outgoing_headers, + body::{Body, Chunk}, + config::Backend, + error::Error, + headers::filter_outgoing_headers, + session::AutoDecompressResponse, wiggle_abi::types::PendingRequestHandle, }; use futures::Future; use http::{uri, HeaderValue}; -use hyper::{client::HttpConnector, Client, HeaderMap, Request, Response, Uri}; +use hyper::{client::HttpConnector, header, Client, HeaderMap, Request, Response, Uri}; use std::{ io, pin::Pin, @@ -164,12 +168,14 @@ pub fn send_request( backend, ); + let try_decompression = req.extensions().get::().is_some(); + filter_outgoing_headers(req.headers_mut()); req.headers_mut().insert(hyper::header::HOST, host); *req.uri_mut() = uri; async move { - Ok(Client::builder() + let basic_response = Client::builder() .set_host(false) .build(connector) .request(req) @@ -177,8 +183,25 @@ pub fn send_request( .map_err(|e| { eprintln!("Error: {:?}", e); e - })? - .map(Body::from)) + })?; + + if try_decompression + && basic_response.headers().get(header::CONTENT_ENCODING) + == Some(&HeaderValue::from_static("gzip")) + { + let mut decompressing_response = + basic_response.map(Chunk::compressed_body).map(Body::from); + + decompressing_response + .headers_mut() + .remove(header::CONTENT_ENCODING); + decompressing_response + .headers_mut() + .remove(header::CONTENT_LENGTH); + Ok(decompressing_response) + } else { + Ok(basic_response.map(Body::from)) + } } } diff --git a/test-fixtures/src/bin/gzipped-response.rs b/test-fixtures/src/bin/gzipped-response.rs index c5703adc..6ede5a77 100644 --- a/test-fixtures/src/bin/gzipped-response.rs +++ b/test-fixtures/src/bin/gzipped-response.rs @@ -1,5 +1,6 @@ -use fastly::{Backend, Request}; use fastly::http::request::SendError; +use fastly::http::StatusCode; +use fastly::{Backend, Request}; static HELLO_WORLD: &'static str = include_str!("../../data/hello_world"); static HELLO_WORLD_GZ: &'static [u8] = include_bytes!("../../data/hello_world.gz"); @@ -14,8 +15,14 @@ fn main() -> Result<(), SendError> { .with_body_octet_stream(HELLO_WORLD_GZ) .send(echo_server.clone())?; - assert_eq!(standard_echo.get_header_str("Content-Encoding"), Some("gzip")); - assert_eq!(standard_echo.get_content_length(), Some(HELLO_WORLD_GZ.len())); + assert_eq!( + standard_echo.get_header_str("Content-Encoding"), + Some("gzip") + ); + assert_eq!( + standard_echo.get_content_length(), + Some(HELLO_WORLD_GZ.len()) + ); // Similarly, if we set the auto_decompress flag to false, it should also // bounce back to us unchanged. @@ -52,17 +59,16 @@ fn main() -> Result<(), SendError> { assert_eq!(HELLO_WORLD, &still_unpacked); // A slightly odder case: We set everything up for unpacking, but we - // don't actually send a gzip'd file. In this case, we're going to say - // that we should get back exactly the input, even with the bogus - // content encoding. - let bad_gzip = Request::put("http://127.0.0.1:9000") + // don't actually send a gzip'd file. + let mut bad_gzip = Request::put("http://127.0.0.1:9000") .with_header("Content-Encoding", "gzip") .with_body_octet_stream(HELLO_WORLD.as_bytes()) .with_auto_decompress_gzip(true) .send(echo_server.clone())?; - assert_eq!(bad_gzip.get_header_str("Content-Encoding"), Some("gzip")); - assert_eq!(bad_gzip.get_content_length(), Some(HELLO_WORLD.len())); + assert!(bad_gzip.get_header("Content-Encoding").is_none()); + assert!(bad_gzip.get_content_length().is_none()); + assert_eq!(bad_gzip.get_status(), StatusCode::OK); Ok(()) } From 88146fbeba037d351d16729c0b7d03c2ee982a67 Mon Sep 17 00:00:00 2001 From: Adam Wick Date: Tue, 8 Feb 2022 10:04:16 -0800 Subject: [PATCH 06/18] Put the whole `CompressedHttpBody` back into the queue, not just the `hyper::Body`. A bit of an oops on the previous implementations. This requires slightly more careful handling of lifetimes to avoid copying. It also only puts the current subchunk back into the queue in the non-error cases, as opposed to previous versions which would put error cases back up to get more errors. --- lib/src/body.rs | 44 +++++++++++++++++++++----------------------- 1 file changed, 21 insertions(+), 23 deletions(-) diff --git a/lib/src/body.rs b/lib/src/body.rs index 24560610..047cbf76 100644 --- a/lib/src/body.rs +++ b/lib/src/body.rs @@ -163,7 +163,7 @@ impl HttpBody for Body { mut self: Pin<&mut Self>, cx: &mut Context, ) -> Poll>> { - while let Some(chunk) = self.chunks.pop_front() { + while let Some(mut chunk) = self.chunks.pop_front() { match chunk { Chunk::HttpBody(mut body) => { let body_mut = &mut body; @@ -214,37 +214,35 @@ impl HttpBody for Body { } } } - Chunk::CompressedHttpBody(mut decoder_state, mut body) => { - let body_mut = &mut body; - pin_mut!(body_mut); + Chunk::CompressedHttpBody(ref mut decoder_state, ref mut body) => { + pin_mut!(body); - match body_mut.poll_data(cx) { + match body.poll_data(cx) { Poll::Pending => { // put the body back, so we can poll it again next time - self.chunks.push_front(body.into()); + self.chunks.push_front(chunk); return Poll::Pending; } - Poll::Ready(None) => match decoder_state.finish() { + Poll::Ready(None) => match decoder_state.try_finish() { Err(e) => return Poll::Ready(Some(Err(e.into()))), - Ok(buffer) => { - return Poll::Ready(Some(Ok(buffer.into_inner().freeze()))); + Ok(()) => { + let chunk = decoder_state.get_mut().get_mut().split().freeze(); + return Poll::Ready(Some(Ok(chunk))); } }, - Poll::Ready(Some(item)) => { - // put the body back, so we can poll it again next time - self.chunks.push_front(body.into()); - - match item { + Poll::Ready(Some(Err(e))) => return Poll::Ready(Some(Err(e.into()))), + Poll::Ready(Some(Ok(bytes))) => { + match decoder_state.write_all(&bytes) { Err(e) => return Poll::Ready(Some(Err(e.into()))), - Ok(bytes) => match decoder_state.write_all(&bytes) { - Err(e) => return Poll::Ready(Some(Err(e.into()))), - Ok(()) => { - decoder_state.flush().unwrap(); - let chunk = - decoder_state.get_mut().get_mut().split().freeze(); - return Poll::Ready(Some(Ok(chunk))); - } - }, + Ok(()) => { + decoder_state.flush().unwrap(); + let resulting_bytes = + decoder_state.get_mut().get_mut().split().freeze(); + // put the body back, so we can poll it again next time + self.chunks.push_front(chunk); + + return Poll::Ready(Some(Ok(resulting_bytes))); + } } } } From 7aa1e6d27c3d608a8a629b71eefd49f75a426959 Mon Sep 17 00:00:00 2001 From: Adam Wick Date: Tue, 8 Feb 2022 10:52:56 -0800 Subject: [PATCH 07/18] Switch to a more open-ended `ViceroyRequestMetadata` for holding extension data. Other folks should be able to just pile on to this structure to add additional information in the future, without much pain, and without having to add a new type for every item. There's a benign clippy warning in `req_impl.rs` that'll be nicely resolved when someone does so, too. --- lib/src/session.rs | 19 +++++++++++++++---- lib/src/upstream.rs | 13 ++++++++++--- lib/src/wiggle_abi/req_impl.rs | 15 ++++++++++----- 3 files changed, 35 insertions(+), 12 deletions(-) diff --git a/lib/src/session.rs b/lib/src/session.rs index 075291d1..9e41bc31 100644 --- a/lib/src/session.rs +++ b/lib/src/session.rs @@ -13,8 +13,8 @@ use { streaming_body::StreamingBody, upstream::{PendingRequest, SelectTarget}, wiggle_abi::types::{ - BodyHandle, DictionaryHandle, EndpointHandle, PendingRequestHandle, RequestHandle, - ResponseHandle, + BodyHandle, ContentEncodings, DictionaryHandle, EndpointHandle, PendingRequestHandle, + RequestHandle, ResponseHandle, }, }, cranelift_entity::{entity_impl, PrimaryMap}, @@ -658,8 +658,19 @@ impl Session { } } -#[derive(Clone, Copy, Eq, Hash, PartialEq)] -pub struct AutoDecompressResponse {} +/// Additional Viceroy-specific metadata for requests. +#[derive(Clone, Debug)] +pub struct ViceroyRequestMetadata { + pub auto_decompress_encodings: ContentEncodings, +} + +impl Default for ViceroyRequestMetadata { + fn default() -> Self { + ViceroyRequestMetadata { + auto_decompress_encodings: ContentEncodings::empty(), + } + } +} #[derive(Clone, Copy, Eq, Hash, PartialEq)] #[repr(transparent)] diff --git a/lib/src/upstream.rs b/lib/src/upstream.rs index 5866ca79..d2ea3805 100644 --- a/lib/src/upstream.rs +++ b/lib/src/upstream.rs @@ -3,8 +3,8 @@ use crate::{ config::Backend, error::Error, headers::filter_outgoing_headers, - session::AutoDecompressResponse, - wiggle_abi::types::PendingRequestHandle, + session::ViceroyRequestMetadata, + wiggle_abi::types::{ContentEncodings, PendingRequestHandle}, }; use futures::Future; use http::{uri, HeaderValue}; @@ -168,7 +168,14 @@ pub fn send_request( backend, ); - let try_decompression = req.extensions().get::().is_some(); + let try_decompression = req + .extensions() + .get::() + .map(|vrm| { + vrm.auto_decompress_encodings + .contains(ContentEncodings::GZIP) + }) + .unwrap_or(false); filter_outgoing_headers(req.headers_mut()); req.headers_mut().insert(hyper::header::HOST, host); diff --git a/lib/src/wiggle_abi/req_impl.rs b/lib/src/wiggle_abi/req_impl.rs index a3b4da7c..965a1a3d 100644 --- a/lib/src/wiggle_abi/req_impl.rs +++ b/lib/src/wiggle_abi/req_impl.rs @@ -3,7 +3,7 @@ use { crate::{ error::Error, - session::{AutoDecompressResponse, Session}, + session::{Session, ViceroyRequestMetadata}, upstream::{self, PendingRequest}, wiggle_abi::{ fastly_http_req::FastlyHttpReq, @@ -478,10 +478,15 @@ impl FastlyHttpReq for Session { // output chain, which we extend for this use case. let extensions = &mut self.request_parts_mut(req_handle)?.extensions; - if u32::from(encodings) == 1 { - extensions.insert(AutoDecompressResponse {}); - } else { - extensions.remove::(); + match extensions.get_mut::() { + None => { + let mut def = ViceroyRequestMetadata::default(); + def.auto_decompress_encodings = encodings; + extensions.insert(def); + } + Some(vrm) => { + vrm.auto_decompress_encodings = encodings; + } } Ok(()) From 767e04ded675f8c11cd2419e394b23af46c3d080 Mon Sep 17 00:00:00 2001 From: Adam Wick Date: Tue, 8 Feb 2022 11:10:21 -0800 Subject: [PATCH 08/18] Add tests for the other two `send` variants. This test shouldn't actually be very interesting, and wasn't. Yay! But, in the future, if `send`, `send_async`, and `send_async_streaming` stop going through the same output code path and someone forgets to move the decompression code with it, we should be able to detect that. --- test-fixtures/src/bin/gzipped-response.rs | 37 ++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/test-fixtures/src/bin/gzipped-response.rs b/test-fixtures/src/bin/gzipped-response.rs index 6ede5a77..d82883e2 100644 --- a/test-fixtures/src/bin/gzipped-response.rs +++ b/test-fixtures/src/bin/gzipped-response.rs @@ -48,6 +48,41 @@ fn main() -> Result<(), SendError> { let hopefully_unpacked = unpacked_echo.take_body_str(); assert_eq!(HELLO_WORLD, &hopefully_unpacked); + // The same, but now we're going to use await. + let unpacked_echo_pending = Request::put("http://127.0.0.1:9000") + .with_header("Content-Encoding", "gzip") + .with_body_octet_stream(HELLO_WORLD_GZ) + .with_auto_decompress_gzip(true) + .send_async(echo_server.clone())?; + + let mut unpacked_echo_async = unpacked_echo_pending.wait()?; + assert!(unpacked_echo_async.get_header("Content-Encoding").is_none()); + assert!(unpacked_echo_async.get_content_length().is_none()); + let hopefully_unpacked = unpacked_echo_async.take_body_str(); + assert_eq!(HELLO_WORLD, &hopefully_unpacked); + + // The same, but now we're going to stream the data over. + let unpacked_stream_pending = { + // braces to force the drop on the body + let (mut streaming_body, pending_req) = Request::put("http://127.0.0.1:9000") + .with_header("Content-Encoding", "gzip") + .with_auto_decompress_gzip(true) + .send_async_streaming(echo_server.clone())?; + + for tiny_bit in HELLO_WORLD_GZ.chunks(8) { + streaming_body.write_bytes(tiny_bit); + } + + pending_req + }; + let mut unpacked_stream_async = unpacked_stream_pending.wait()?; + assert!(unpacked_stream_async + .get_header("Content-Encoding") + .is_none()); + assert!(unpacked_stream_async.get_content_length().is_none()); + let hopefully_unpacked = unpacked_stream_async.take_body_str(); + assert_eq!(HELLO_WORLD, &hopefully_unpacked); + // That being said, if we set the flag to true and send it a text file, // we should just get it back unchanged. let mut yes_but_uncompressed = Request::put("http://127.0.0.1:9000") @@ -60,7 +95,7 @@ fn main() -> Result<(), SendError> { // A slightly odder case: We set everything up for unpacking, but we // don't actually send a gzip'd file. - let mut bad_gzip = Request::put("http://127.0.0.1:9000") + let bad_gzip = Request::put("http://127.0.0.1:9000") .with_header("Content-Encoding", "gzip") .with_body_octet_stream(HELLO_WORLD.as_bytes()) .with_auto_decompress_gzip(true) From ad9b061be36aa8926276e1d20e66fb656d24b76c Mon Sep 17 00:00:00 2001 From: Adam Wick Date: Tue, 8 Feb 2022 14:05:47 -0800 Subject: [PATCH 09/18] Make the error case test more closely match the Compute@Edge implementation. --- test-fixtures/src/bin/gzipped-response.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/test-fixtures/src/bin/gzipped-response.rs b/test-fixtures/src/bin/gzipped-response.rs index d82883e2..260f4c54 100644 --- a/test-fixtures/src/bin/gzipped-response.rs +++ b/test-fixtures/src/bin/gzipped-response.rs @@ -1,6 +1,7 @@ use fastly::http::request::SendError; use fastly::http::StatusCode; use fastly::{Backend, Request}; +use std::io::Read; static HELLO_WORLD: &'static str = include_str!("../../data/hello_world"); static HELLO_WORLD_GZ: &'static [u8] = include_bytes!("../../data/hello_world.gz"); @@ -94,8 +95,10 @@ fn main() -> Result<(), SendError> { assert_eq!(HELLO_WORLD, &still_unpacked); // A slightly odder case: We set everything up for unpacking, but we - // don't actually send a gzip'd file. - let bad_gzip = Request::put("http://127.0.0.1:9000") + // don't actually send a gzip'd file. We should get a response, and + // it should technically be OK, but we should get an error when we + // try to do anything with the body. + let mut bad_gzip = Request::put("http://127.0.0.1:9000") .with_header("Content-Encoding", "gzip") .with_body_octet_stream(HELLO_WORLD.as_bytes()) .with_auto_decompress_gzip(true) @@ -104,6 +107,8 @@ fn main() -> Result<(), SendError> { assert!(bad_gzip.get_header("Content-Encoding").is_none()); assert!(bad_gzip.get_content_length().is_none()); assert_eq!(bad_gzip.get_status(), StatusCode::OK); + let mut body = vec![]; + assert!(bad_gzip.get_body_mut().read_to_end(&mut body).is_err()); Ok(()) } From e92afab35a3863258eee81efcd63e94b78ed6290 Mon Sep 17 00:00:00 2001 From: Adam Wick Date: Tue, 8 Feb 2022 14:15:51 -0800 Subject: [PATCH 10/18] Make sure decompression happens correctly when sending out of WASM. Just in case there was a funny code path in there, or one gets introduced, this makes sure that you can properly read your compressed data from the client side, as well. --- cli/tests/upstream.rs | 1 + test-fixtures/src/bin/gzipped-response.rs | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/cli/tests/upstream.rs b/cli/tests/upstream.rs index 908af325..8ad192fd 100644 --- a/cli/tests/upstream.rs +++ b/cli/tests/upstream.rs @@ -175,6 +175,7 @@ async fn transparent_gunzip() -> TestResult { .await; assert_eq!(resp.status(), StatusCode::OK); + assert_eq!("hello, world!\n", resp.into_body().read_into_string().await.unwrap()); Ok(()) } diff --git a/test-fixtures/src/bin/gzipped-response.rs b/test-fixtures/src/bin/gzipped-response.rs index 260f4c54..f68f960f 100644 --- a/test-fixtures/src/bin/gzipped-response.rs +++ b/test-fixtures/src/bin/gzipped-response.rs @@ -110,5 +110,14 @@ fn main() -> Result<(), SendError> { let mut body = vec![]; assert!(bad_gzip.get_body_mut().read_to_end(&mut body).is_err()); + // Just for fun, let's return the response to the caller, and make + // sure things come out there, as well. + Request::put("http://127.0.0.1:9000") + .with_header("Content-Encoding", "gzip") + .with_body_octet_stream(HELLO_WORLD_GZ) + .with_auto_decompress_gzip(true) + .send(echo_server.clone())? + .send_to_client(); + Ok(()) } From 936689b895e47282d7455a1bd7970db887b10c19 Mon Sep 17 00:00:00 2001 From: Adam Wick Date: Tue, 8 Feb 2022 14:22:13 -0800 Subject: [PATCH 11/18] Formatting oops. --- cli/tests/upstream.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cli/tests/upstream.rs b/cli/tests/upstream.rs index 8ad192fd..22b7082d 100644 --- a/cli/tests/upstream.rs +++ b/cli/tests/upstream.rs @@ -175,7 +175,10 @@ async fn transparent_gunzip() -> TestResult { .await; assert_eq!(resp.status(), StatusCode::OK); - assert_eq!("hello, world!\n", resp.into_body().read_into_string().await.unwrap()); + assert_eq!( + "hello, world!\n", + resp.into_body().read_into_string().await.unwrap() + ); Ok(()) } From 6298ffe7e62a6b1faa17a765752de6d77178525a Mon Sep 17 00:00:00 2001 From: Adam Wick Date: Tue, 8 Feb 2022 14:34:18 -0800 Subject: [PATCH 12/18] Address a Clippy concern with field initialization and default(). --- lib/src/wiggle_abi/req_impl.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/src/wiggle_abi/req_impl.rs b/lib/src/wiggle_abi/req_impl.rs index 965a1a3d..f51ead16 100644 --- a/lib/src/wiggle_abi/req_impl.rs +++ b/lib/src/wiggle_abi/req_impl.rs @@ -480,9 +480,9 @@ impl FastlyHttpReq for Session { match extensions.get_mut::() { None => { - let mut def = ViceroyRequestMetadata::default(); - def.auto_decompress_encodings = encodings; - extensions.insert(def); + extensions.insert(ViceroyRequestMetadata { + auto_decompress_encodings: encodings, + }); } Some(vrm) => { vrm.auto_decompress_encodings = encodings; From 6ec48e7267037df83b9559ecb6a05113db7b8973 Mon Sep 17 00:00:00 2001 From: Adam Wick Date: Tue, 8 Feb 2022 15:23:18 -0800 Subject: [PATCH 13/18] Provisionally update the lockfiles. --- Cargo.lock | 226 ++++++++++++++++---------------- cli/tests/trap-test/Cargo.lock | 231 +++++++++++++++++---------------- test-fixtures/Cargo.lock | 62 ++++----- 3 files changed, 266 insertions(+), 253 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 801dd38b..4057e4fb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -52,9 +52,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.52" +version = "1.0.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84450d0b4a8bd1ba4144ce8ce718fbc5d071358b1e5384bace6536b3d1f2d5b3" +checksum = "94a45b455c14666b85fc40a019e8ab9eb75e3a124e05494f5397122bc9eb06e0" [[package]] name = "async-trait" @@ -80,15 +80,15 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "backtrace" -version = "0.3.63" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "321629d8ba6513061f26707241fa9bc89524ff1cd7a915a97ef0c62c666ce1b6" +checksum = "5e121dee8023ce33ab248d9ce1493df03c3b38a659b240096fcbd7048ff9c31f" dependencies = [ "addr2line 0.17.0", "cc", @@ -261,9 +261,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6888e10551bb93e424d8df1d07f1a8b4fceb0001a3a4b048bfc47554946f47b3" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" dependencies = [ "core-foundation-sys", "libc", @@ -396,9 +396,9 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.3.0" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "738c290dfaea84fc1ca15ad9c168d083b05a714e1efddd8edaab678dc28d2836" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" dependencies = [ "cfg-if", ] @@ -426,9 +426,9 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.6" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97242a70df9b89a65d0b6df3c4bf5b9ce03c5b7309019777fbde37e7537f8762" +checksum = "c00d6d2ea26e8b151d99093005cb442fb9a37aeaca582a03ec70946f49ab5ed9" dependencies = [ "cfg-if", "crossbeam-utils", @@ -439,9 +439,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcae03edb34f947e64acdb1c33ec169824e20657e9ecb61cef6c8c74dcb8120" +checksum = "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6" dependencies = [ "cfg-if", "lazy_static", @@ -505,9 +505,9 @@ checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" [[package]] name = "env_logger" -version = "0.7.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" +checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" dependencies = [ "atty", "humantime", @@ -555,18 +555,18 @@ dependencies = [ [[package]] name = "fastrand" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "779d043b6a0b90cc4c0ed7ee380a6504394cee7efd7db050e3774eee387324b2" +checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" dependencies = [ "instant", ] [[package]] name = "file-per-thread-logger" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fdbe0d94371f9ce939b555dd342d0686cc4c0cadbcd4b61d70af5ff97eb4126" +checksum = "21e16290574b39ee41c71aeb90ae960c504ebaf1e2a1c87bd52aa56ed6e1a02f" dependencies = [ "env_logger", "log", @@ -613,9 +613,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28560757fe2bb34e79f907794bb6b22ae8b0e5c669b638a1132f2592b19035b4" +checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e" dependencies = [ "futures-channel", "futures-core", @@ -628,9 +628,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3dda0b6588335f360afc675d0564c17a77a2bda81ca178a4b6081bd86c7f0b" +checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" dependencies = [ "futures-core", "futures-sink", @@ -638,15 +638,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0c8ff0461b82559810cdccfde3215c3f373807f5e5232b71479bff7bb2583d7" +checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" [[package]] name = "futures-executor" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29d6d2ff5bb10fb95c85b8ce46538a2e5f5e7fdc755623a7d4529ab8a4ed9d2a" +checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" dependencies = [ "futures-core", "futures-task", @@ -655,15 +655,15 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f9d34af5a1aac6fb380f735fe510746c38067c5bf16c7fd250280503c971b2" +checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" [[package]] name = "futures-macro" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dbd947adfffb0efc70599b3ddcf7b5597bb5fa9e245eb99f62b3a5f7bb8bd3c" +checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" dependencies = [ "proc-macro2", "quote", @@ -672,21 +672,21 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3055baccb68d74ff6480350f8d6eb8fcfa3aa11bdc1a1ae3afdd0514617d508" +checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" [[package]] name = "futures-task" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ee7c6485c30167ce4dfb83ac568a849fe53274c831081476ee13e0dce1aad72" +checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" [[package]] name = "futures-util" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b5cf40b47a271f77a8b1bec03ca09044d99d2372c0de244e66430761127164" +checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" dependencies = [ "futures-channel", "futures-core", @@ -712,9 +712,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" +checksum = "418d37c8b1d42553c93648be529cb70f920d3baf8ef469b74b9638df426e0b4c" dependencies = [ "cfg-if", "libc", @@ -740,9 +740,9 @@ checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" [[package]] name = "h2" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c9de88456263e249e241fcd211d3954e2c9b0ef7ccfc235a444eb367cae3689" +checksum = "d9f1f717ddc7b2ba36df7e871fd88db79326551d3d6f1fc406fbfd28b582ff8e" dependencies = [ "bytes", "fnv", @@ -805,9 +805,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.5.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503" +checksum = "9100414882e15fb7feccb4897e5f0ff0ff1ca7d1a86a23208ada4d7a18e6c6c4" [[package]] name = "httpdate" @@ -817,12 +817,9 @@ checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" [[package]] name = "humantime" -version = "1.3.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" -dependencies = [ - "quick-error", -] +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" @@ -928,9 +925,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.55" +version = "0.3.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84" +checksum = "a38fc24e30fd564ce974c02bf1d337caddff65be6cc4735a1f7eab22a7440f04" dependencies = [ "wasm-bindgen", ] @@ -949,9 +946,9 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" [[package]] name = "libc" -version = "0.2.112" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b03d17f364a3a042d5e5d46b053bbbf82c92c9430c592dd4c064dc6ee997125" +checksum = "e74d72e0f9b65b5b4ca49a346af3976df0f9c61d550727f349ecd559f251a26c" [[package]] name = "linux-raw-sys" @@ -961,9 +958,9 @@ checksum = "42a0e0375b6446268ee5299c8e92f90030c719b8bb6fcc303a704080da790654" [[package]] name = "lock_api" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712a4d093c9976e24e7dbca41db895dabcbac38eb5f4045393d17a95bdfb1109" +checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b" dependencies = [ "scopeguard", ] @@ -1132,9 +1129,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "openssl-probe" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "parking_lot" @@ -1271,17 +1268,11 @@ dependencies = [ "cc", ] -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - [[package]] name = "quote" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47aa80447ce4daf1717500037052af176af5d38cc3e571d9ec1c7353fc10c87d" +checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145" dependencies = [ "proc-macro2", ] @@ -1462,7 +1453,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.4", + "semver 1.0.5", ] [[package]] @@ -1544,9 +1535,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.4.2" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525bc1abfda2e1998d152c45cf13e696f76d0a4972310b22fac1658b05df7c87" +checksum = "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc" dependencies = [ "bitflags", "core-foundation", @@ -1557,9 +1548,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.4.2" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9dd14d83160b528b7bfd66439110573efcfbe281b17fc2ca9f39f550d619c7e" +checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" dependencies = [ "core-foundation-sys", "libc", @@ -1576,9 +1567,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "568a8e6258aa33c13358f81fd834adb854c6f7c9468520910a9b1e8fac068012" +checksum = "0486718e92ec9a68fbed73bb5ef687d71103b142595b406835649bebd33f72c7" [[package]] name = "semver-parser" @@ -1588,18 +1579,18 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.133" +version = "1.0.136" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97565067517b60e2d1ea8b268e59ce036de907ac523ad83a0475da04e818989a" +checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.133" +version = "1.0.136" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed201699328568d8d08208fdd080e3ff594e6c422e438b6705905da01005d537" +checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9" dependencies = [ "proc-macro2", "quote", @@ -1608,9 +1599,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.74" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee2bb9cd061c5865d345bb02ca49fcef1391741b672b54a0bf7b679badec3142" +checksum = "d23c1ba4cf0efd44be32017709280b32d1cea5c3f1275c3b6d9e8bc54f758085" dependencies = [ "itoa 1.0.1", "ryu", @@ -1665,15 +1656,15 @@ checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" [[package]] name = "smallvec" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309" +checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" [[package]] name = "socket2" -version = "0.4.2" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516" +checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" dependencies = [ "libc", "winapi", @@ -1699,9 +1690,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" [[package]] name = "structopt" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40b9788f4202aa75c240ecc9c15c65185e6a39ccdeb0fd5d008b98825464c87c" +checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" dependencies = [ "clap", "lazy_static", @@ -1723,9 +1714,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.85" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a684ac3dcd8913827e18cd09a68384ee66c1de24157e3c556c9ab16d85695fb7" +checksum = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b" dependencies = [ "proc-macro2", "quote", @@ -1751,9 +1742,9 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9bffcddbc2458fa3e6058414599e3c838a022abae82e5c67b4f7f80298d5bff" +checksum = "d7fa7e55043acb85fca6b3c01485a2eeb6b69c5d21002e273c79e465f43b7ac1" [[package]] name = "tempfile" @@ -1809,9 +1800,9 @@ dependencies = [ [[package]] name = "thread_local" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbd" +checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" dependencies = [ "once_cell", ] @@ -1833,9 +1824,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.15.0" +version = "1.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbbf1c778ec206785635ce8ad57fe52b3009ae9e0c9f574a728f3049d3e55838" +checksum = "0c27a64b625de6d309e8c57716ba93021dccf1b3b5c97edd6d3dd2d2135afc0a" dependencies = [ "bytes", "libc", @@ -1903,9 +1894,9 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" [[package]] name = "tracing" -version = "0.1.29" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105" +checksum = "2d8d93354fe2a8e50d5953f5ae2e47a3fc2ef03292e7ea46e3cc38f549525fb9" dependencies = [ "cfg-if", "log", @@ -1916,9 +1907,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f480b8f81512e825f337ad51e94c1eb5d3bbdf2b363dcd01e2b19a9ffe3f8e" +checksum = "8276d9a4a3a558d7b7ad5303ad50b53d58264641b82914b7ada36bd762e7a716" dependencies = [ "proc-macro2", "quote", @@ -1927,11 +1918,12 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4" +checksum = "03cfcb51380632a72d3111cb8d3447a8d908e577d31beeac006f836383d29a23" dependencies = [ "lazy_static", + "valuable", ] [[package]] @@ -1957,9 +1949,9 @@ dependencies = [ [[package]] name = "tracing-serde" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb65ea441fbb84f9f6748fd496cf7f63ec9af5bca94dd86456978d055e8eb28b" +checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" dependencies = [ "serde", "tracing-core", @@ -2016,9 +2008,9 @@ dependencies = [ [[package]] name = "unicode-segmentation" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b" +checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" [[package]] name = "unicode-width" @@ -2061,6 +2053,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + [[package]] name = "vec_map" version = "0.8.2" @@ -2214,9 +2212,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.78" +version = "0.2.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce" +checksum = "25f1af7423d8588a3d840681122e72e6a24ddbcb3f0ec385cac0d12d24256c06" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -2224,9 +2222,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.78" +version = "0.2.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b" +checksum = "8b21c0df030f5a177f3cba22e9bc4322695ec43e7257d865302900290bcdedca" dependencies = [ "bumpalo", "lazy_static", @@ -2239,9 +2237,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.78" +version = "0.2.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9" +checksum = "2f4203d69e40a52ee523b2529a773d5ffc1dc0071801c87b3d270b471b80ed01" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2249,9 +2247,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.78" +version = "0.2.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab" +checksum = "bfa8a30d46208db204854cadbb5d4baf5fcf8071ba5bf48190c3e59937962ebc" dependencies = [ "proc-macro2", "quote", @@ -2262,9 +2260,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.78" +version = "0.2.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc" +checksum = "3d958d035c4438e28c70e4321a2911302f10135ce78a9c7834c0cab4123d06a2" [[package]] name = "wasmparser" @@ -2523,9 +2521,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.55" +version = "0.3.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fb" +checksum = "c060b319f29dd25724f09a2ba1418f142f539b2be99fbf4d2d5a8f7330afb8eb" dependencies = [ "js-sys", "wasm-bindgen", diff --git a/cli/tests/trap-test/Cargo.lock b/cli/tests/trap-test/Cargo.lock index 78c2c24f..99b86881 100644 --- a/cli/tests/trap-test/Cargo.lock +++ b/cli/tests/trap-test/Cargo.lock @@ -52,9 +52,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.52" +version = "1.0.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84450d0b4a8bd1ba4144ce8ce718fbc5d071358b1e5384bace6536b3d1f2d5b3" +checksum = "94a45b455c14666b85fc40a019e8ab9eb75e3a124e05494f5397122bc9eb06e0" [[package]] name = "async-trait" @@ -80,15 +80,15 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "backtrace" -version = "0.3.63" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "321629d8ba6513061f26707241fa9bc89524ff1cd7a915a97ef0c62c666ce1b6" +checksum = "5e121dee8023ce33ab248d9ce1493df03c3b38a659b240096fcbd7048ff9c31f" dependencies = [ "addr2line 0.17.0", "cc", @@ -246,9 +246,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6888e10551bb93e424d8df1d07f1a8b4fceb0001a3a4b048bfc47554946f47b3" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" dependencies = [ "core-foundation-sys", "libc", @@ -381,9 +381,9 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.3.0" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "738c290dfaea84fc1ca15ad9c168d083b05a714e1efddd8edaab678dc28d2836" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" dependencies = [ "cfg-if", ] @@ -411,9 +411,9 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.6" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97242a70df9b89a65d0b6df3c4bf5b9ce03c5b7309019777fbde37e7537f8762" +checksum = "c00d6d2ea26e8b151d99093005cb442fb9a37aeaca582a03ec70946f49ab5ed9" dependencies = [ "cfg-if", "crossbeam-utils", @@ -424,9 +424,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcae03edb34f947e64acdb1c33ec169824e20657e9ecb61cef6c8c74dcb8120" +checksum = "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6" dependencies = [ "cfg-if", "lazy_static", @@ -490,9 +490,9 @@ checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" [[package]] name = "env_logger" -version = "0.7.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" +checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" dependencies = [ "atty", "humantime", @@ -540,14 +540,26 @@ dependencies = [ [[package]] name = "file-per-thread-logger" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fdbe0d94371f9ce939b555dd342d0686cc4c0cadbcd4b61d70af5ff97eb4126" +checksum = "21e16290574b39ee41c71aeb90ae960c504ebaf1e2a1c87bd52aa56ed6e1a02f" dependencies = [ "env_logger", "log", ] +[[package]] +name = "flate2" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f" +dependencies = [ + "cfg-if", + "crc32fast", + "libc", + "miniz_oxide", +] + [[package]] name = "fnv" version = "1.0.7" @@ -577,9 +589,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28560757fe2bb34e79f907794bb6b22ae8b0e5c669b638a1132f2592b19035b4" +checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e" dependencies = [ "futures-channel", "futures-core", @@ -592,9 +604,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3dda0b6588335f360afc675d0564c17a77a2bda81ca178a4b6081bd86c7f0b" +checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" dependencies = [ "futures-core", "futures-sink", @@ -602,15 +614,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0c8ff0461b82559810cdccfde3215c3f373807f5e5232b71479bff7bb2583d7" +checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" [[package]] name = "futures-executor" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29d6d2ff5bb10fb95c85b8ce46538a2e5f5e7fdc755623a7d4529ab8a4ed9d2a" +checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" dependencies = [ "futures-core", "futures-task", @@ -619,15 +631,15 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f9d34af5a1aac6fb380f735fe510746c38067c5bf16c7fd250280503c971b2" +checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" [[package]] name = "futures-macro" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dbd947adfffb0efc70599b3ddcf7b5597bb5fa9e245eb99f62b3a5f7bb8bd3c" +checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" dependencies = [ "proc-macro2", "quote", @@ -636,21 +648,21 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3055baccb68d74ff6480350f8d6eb8fcfa3aa11bdc1a1ae3afdd0514617d508" +checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" [[package]] name = "futures-task" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ee7c6485c30167ce4dfb83ac568a849fe53274c831081476ee13e0dce1aad72" +checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" [[package]] name = "futures-util" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b5cf40b47a271f77a8b1bec03ca09044d99d2372c0de244e66430761127164" +checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" dependencies = [ "futures-channel", "futures-core", @@ -676,9 +688,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" +checksum = "418d37c8b1d42553c93648be529cb70f920d3baf8ef469b74b9638df426e0b4c" dependencies = [ "cfg-if", "libc", @@ -704,9 +716,9 @@ checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" [[package]] name = "h2" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c9de88456263e249e241fcd211d3954e2c9b0ef7ccfc235a444eb367cae3689" +checksum = "d9f1f717ddc7b2ba36df7e871fd88db79326551d3d6f1fc406fbfd28b582ff8e" dependencies = [ "bytes", "fnv", @@ -769,9 +781,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.5.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503" +checksum = "9100414882e15fb7feccb4897e5f0ff0ff1ca7d1a86a23208ada4d7a18e6c6c4" [[package]] name = "httpdate" @@ -781,12 +793,9 @@ checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" [[package]] name = "humantime" -version = "1.3.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" -dependencies = [ - "quick-error", -] +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" @@ -892,9 +901,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.55" +version = "0.3.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84" +checksum = "a38fc24e30fd564ce974c02bf1d337caddff65be6cc4735a1f7eab22a7440f04" dependencies = [ "wasm-bindgen", ] @@ -913,9 +922,9 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" [[package]] name = "libc" -version = "0.2.112" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b03d17f364a3a042d5e5d46b053bbbf82c92c9430c592dd4c064dc6ee997125" +checksum = "e74d72e0f9b65b5b4ca49a346af3976df0f9c61d550727f349ecd559f251a26c" [[package]] name = "linux-raw-sys" @@ -925,9 +934,9 @@ checksum = "42a0e0375b6446268ee5299c8e92f90030c719b8bb6fcc303a704080da790654" [[package]] name = "lock_api" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712a4d093c9976e24e7dbca41db895dabcbac38eb5f4045393d17a95bdfb1109" +checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b" dependencies = [ "scopeguard", ] @@ -1096,9 +1105,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "openssl-probe" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "parking_lot" @@ -1211,17 +1220,11 @@ dependencies = [ "cc", ] -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - [[package]] name = "quote" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47aa80447ce4daf1717500037052af176af5d38cc3e571d9ec1c7353fc10c87d" +checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145" dependencies = [ "proc-macro2", ] @@ -1393,7 +1396,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.4", + "semver 1.0.5", ] [[package]] @@ -1475,9 +1478,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.4.2" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525bc1abfda2e1998d152c45cf13e696f76d0a4972310b22fac1658b05df7c87" +checksum = "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc" dependencies = [ "bitflags", "core-foundation", @@ -1488,9 +1491,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.4.2" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9dd14d83160b528b7bfd66439110573efcfbe281b17fc2ca9f39f550d619c7e" +checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" dependencies = [ "core-foundation-sys", "libc", @@ -1507,9 +1510,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "568a8e6258aa33c13358f81fd834adb854c6f7c9468520910a9b1e8fac068012" +checksum = "0486718e92ec9a68fbed73bb5ef687d71103b142595b406835649bebd33f72c7" [[package]] name = "semver-parser" @@ -1519,18 +1522,18 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.133" +version = "1.0.136" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97565067517b60e2d1ea8b268e59ce036de907ac523ad83a0475da04e818989a" +checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.133" +version = "1.0.136" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed201699328568d8d08208fdd080e3ff594e6c422e438b6705905da01005d537" +checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9" dependencies = [ "proc-macro2", "quote", @@ -1539,9 +1542,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.74" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee2bb9cd061c5865d345bb02ca49fcef1391741b672b54a0bf7b679badec3142" +checksum = "d23c1ba4cf0efd44be32017709280b32d1cea5c3f1275c3b6d9e8bc54f758085" dependencies = [ "itoa 1.0.1", "ryu", @@ -1596,15 +1599,15 @@ checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" [[package]] name = "smallvec" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309" +checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" [[package]] name = "socket2" -version = "0.4.2" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516" +checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" dependencies = [ "libc", "winapi", @@ -1624,9 +1627,9 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "syn" -version = "1.0.85" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a684ac3dcd8913827e18cd09a68384ee66c1de24157e3c556c9ab16d85695fb7" +checksum = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b" dependencies = [ "proc-macro2", "quote", @@ -1652,9 +1655,9 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9bffcddbc2458fa3e6058414599e3c838a022abae82e5c67b4f7f80298d5bff" +checksum = "d7fa7e55043acb85fca6b3c01485a2eeb6b69c5d21002e273c79e465f43b7ac1" [[package]] name = "termcolor" @@ -1687,9 +1690,9 @@ dependencies = [ [[package]] name = "thread_local" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbd" +checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" dependencies = [ "once_cell", ] @@ -1711,9 +1714,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.15.0" +version = "1.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbbf1c778ec206785635ce8ad57fe52b3009ae9e0c9f574a728f3049d3e55838" +checksum = "0c27a64b625de6d309e8c57716ba93021dccf1b3b5c97edd6d3dd2d2135afc0a" dependencies = [ "bytes", "libc", @@ -1781,9 +1784,9 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" [[package]] name = "tracing" -version = "0.1.29" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105" +checksum = "2d8d93354fe2a8e50d5953f5ae2e47a3fc2ef03292e7ea46e3cc38f549525fb9" dependencies = [ "cfg-if", "log", @@ -1794,9 +1797,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f480b8f81512e825f337ad51e94c1eb5d3bbdf2b363dcd01e2b19a9ffe3f8e" +checksum = "8276d9a4a3a558d7b7ad5303ad50b53d58264641b82914b7ada36bd762e7a716" dependencies = [ "proc-macro2", "quote", @@ -1805,11 +1808,12 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4" +checksum = "03cfcb51380632a72d3111cb8d3447a8d908e577d31beeac006f836383d29a23" dependencies = [ "lazy_static", + "valuable", ] [[package]] @@ -1835,9 +1839,9 @@ dependencies = [ [[package]] name = "tracing-serde" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb65ea441fbb84f9f6748fd496cf7f63ec9af5bca94dd86456978d055e8eb28b" +checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" dependencies = [ "serde", "tracing-core", @@ -1907,9 +1911,9 @@ dependencies = [ [[package]] name = "unicode-segmentation" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b" +checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" [[package]] name = "unicode-width" @@ -1952,6 +1956,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + [[package]] name = "version_check" version = "0.9.4" @@ -1968,6 +1978,7 @@ dependencies = [ "cfg-if", "cranelift-entity 0.77.0", "fastly-shared", + "flate2", "futures", "http", "http-body", @@ -2078,9 +2089,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.78" +version = "0.2.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce" +checksum = "25f1af7423d8588a3d840681122e72e6a24ddbcb3f0ec385cac0d12d24256c06" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -2088,9 +2099,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.78" +version = "0.2.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b" +checksum = "8b21c0df030f5a177f3cba22e9bc4322695ec43e7257d865302900290bcdedca" dependencies = [ "bumpalo", "lazy_static", @@ -2103,9 +2114,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.78" +version = "0.2.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9" +checksum = "2f4203d69e40a52ee523b2529a773d5ffc1dc0071801c87b3d270b471b80ed01" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2113,9 +2124,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.78" +version = "0.2.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab" +checksum = "bfa8a30d46208db204854cadbb5d4baf5fcf8071ba5bf48190c3e59937962ebc" dependencies = [ "proc-macro2", "quote", @@ -2126,9 +2137,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.78" +version = "0.2.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc" +checksum = "3d958d035c4438e28c70e4321a2911302f10135ce78a9c7834c0cab4123d06a2" [[package]] name = "wasmparser" @@ -2387,9 +2398,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.55" +version = "0.3.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fb" +checksum = "c060b319f29dd25724f09a2ba1418f142f539b2be99fbf4d2d5a8f7330afb8eb" dependencies = [ "js-sys", "wasm-bindgen", diff --git a/test-fixtures/Cargo.lock b/test-fixtures/Cargo.lock index c53306da..74ab514e 100644 --- a/test-fixtures/Cargo.lock +++ b/test-fixtures/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "anyhow" -version = "1.0.52" +version = "1.0.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84450d0b4a8bd1ba4144ce8ce718fbc5d071358b1e5384bace6536b3d1f2d5b3" +checksum = "94a45b455c14666b85fc40a019e8ab9eb75e3a124e05494f5397122bc9eb06e0" [[package]] name = "bitflags" @@ -84,9 +84,9 @@ dependencies = [ [[package]] name = "fastly-macros" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ed579ddb6fb7ecb1e9a967c19a55a5d5ed7918ae9a7c4e5a4f547740b9e719d" +checksum = "83b34109e1a3534cdbd7c1adbc395ea3aba7d1530929bcf70f3968207d364fc8" dependencies = [ "proc-macro2", "quote", @@ -148,7 +148,7 @@ checksum = "31f4c6746584866f0feabcc69893c5b51beef3831656a968ed7ae254cdc4fd03" dependencies = [ "bytes 1.1.0", "fnv", - "itoa 1.0.1", + "itoa", ] [[package]] @@ -162,12 +162,6 @@ dependencies = [ "unicode-normalization", ] -[[package]] -name = "itoa" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" - [[package]] name = "itoa" version = "1.0.1" @@ -182,9 +176,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.112" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b03d17f364a3a042d5e5d46b053bbbf82c92c9430c592dd4c064dc6ee997125" +checksum = "e74d72e0f9b65b5b4ca49a346af3976df0f9c61d550727f349ecd559f251a26c" [[package]] name = "matches" @@ -198,6 +192,15 @@ version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" +[[package]] +name = "num_threads" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97ba99ba6393e2c3734791401b66902d981cb03bf190af674ca69949b6d5fb15" +dependencies = [ + "libc", +] + [[package]] name = "opaque-debug" version = "0.3.0" @@ -221,9 +224,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47aa80447ce4daf1717500037052af176af5d38cc3e571d9ec1c7353fc10c87d" +checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145" dependencies = [ "proc-macro2", ] @@ -236,18 +239,18 @@ checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" [[package]] name = "serde" -version = "1.0.133" +version = "1.0.136" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97565067517b60e2d1ea8b268e59ce036de907ac523ad83a0475da04e818989a" +checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.133" +version = "1.0.136" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed201699328568d8d08208fdd080e3ff594e6c422e438b6705905da01005d537" +checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9" dependencies = [ "proc-macro2", "quote", @@ -256,23 +259,23 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.74" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee2bb9cd061c5865d345bb02ca49fcef1391741b672b54a0bf7b679badec3142" +checksum = "d23c1ba4cf0efd44be32017709280b32d1cea5c3f1275c3b6d9e8bc54f758085" dependencies = [ - "itoa 1.0.1", + "itoa", "ryu", "serde", ] [[package]] name = "serde_urlencoded" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edfa57a7f8d9c1d260a549e7224100f6c43d43f9103e06dd8b4095a9b2b43ce9" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ "form_urlencoded", - "itoa 0.4.8", + "itoa", "ryu", "serde", ] @@ -292,9 +295,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.85" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a684ac3dcd8913827e18cd09a68384ee66c1de24157e3c556c9ab16d85695fb7" +checksum = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b" dependencies = [ "proc-macro2", "quote", @@ -335,11 +338,12 @@ dependencies = [ [[package]] name = "time" -version = "0.3.5" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41effe7cfa8af36f439fac33861b66b049edc6f9a32331e2312660529c1c24ad" +checksum = "004cbc98f30fa233c61a38bc77e96a9106e65c88f2d3bef182ae952027e5753d" dependencies = [ "libc", + "num_threads", "serde", ] From b76a12070f197f725bf1dd762371dbed243732bd Mon Sep 17 00:00:00 2001 From: Adam Wick Date: Tue, 8 Feb 2022 15:49:16 -0800 Subject: [PATCH 14/18] Revert "Provisionally update the lockfiles." This reverts commit 6ec48e7267037df83b9559ecb6a05113db7b8973. --- Cargo.lock | 226 ++++++++++++++++---------------- cli/tests/trap-test/Cargo.lock | 231 ++++++++++++++++----------------- test-fixtures/Cargo.lock | 62 +++++---- 3 files changed, 253 insertions(+), 266 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4057e4fb..801dd38b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -52,9 +52,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.53" +version = "1.0.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94a45b455c14666b85fc40a019e8ab9eb75e3a124e05494f5397122bc9eb06e0" +checksum = "84450d0b4a8bd1ba4144ce8ce718fbc5d071358b1e5384bace6536b3d1f2d5b3" [[package]] name = "async-trait" @@ -80,15 +80,15 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.1.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" [[package]] name = "backtrace" -version = "0.3.64" +version = "0.3.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e121dee8023ce33ab248d9ce1493df03c3b38a659b240096fcbd7048ff9c31f" +checksum = "321629d8ba6513061f26707241fa9bc89524ff1cd7a915a97ef0c62c666ce1b6" dependencies = [ "addr2line 0.17.0", "cc", @@ -261,9 +261,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.9.3" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +checksum = "6888e10551bb93e424d8df1d07f1a8b4fceb0001a3a4b048bfc47554946f47b3" dependencies = [ "core-foundation-sys", "libc", @@ -396,9 +396,9 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.3.2" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +checksum = "738c290dfaea84fc1ca15ad9c168d083b05a714e1efddd8edaab678dc28d2836" dependencies = [ "cfg-if", ] @@ -426,9 +426,9 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.7" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00d6d2ea26e8b151d99093005cb442fb9a37aeaca582a03ec70946f49ab5ed9" +checksum = "97242a70df9b89a65d0b6df3c4bf5b9ce03c5b7309019777fbde37e7537f8762" dependencies = [ "cfg-if", "crossbeam-utils", @@ -439,9 +439,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.7" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6" +checksum = "cfcae03edb34f947e64acdb1c33ec169824e20657e9ecb61cef6c8c74dcb8120" dependencies = [ "cfg-if", "lazy_static", @@ -505,9 +505,9 @@ checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" [[package]] name = "env_logger" -version = "0.9.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" +checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" dependencies = [ "atty", "humantime", @@ -555,18 +555,18 @@ dependencies = [ [[package]] name = "fastrand" -version = "1.7.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" +checksum = "779d043b6a0b90cc4c0ed7ee380a6504394cee7efd7db050e3774eee387324b2" dependencies = [ "instant", ] [[package]] name = "file-per-thread-logger" -version = "0.1.5" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21e16290574b39ee41c71aeb90ae960c504ebaf1e2a1c87bd52aa56ed6e1a02f" +checksum = "4fdbe0d94371f9ce939b555dd342d0686cc4c0cadbcd4b61d70af5ff97eb4126" dependencies = [ "env_logger", "log", @@ -613,9 +613,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.21" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e" +checksum = "28560757fe2bb34e79f907794bb6b22ae8b0e5c669b638a1132f2592b19035b4" dependencies = [ "futures-channel", "futures-core", @@ -628,9 +628,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.21" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" +checksum = "ba3dda0b6588335f360afc675d0564c17a77a2bda81ca178a4b6081bd86c7f0b" dependencies = [ "futures-core", "futures-sink", @@ -638,15 +638,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.21" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" +checksum = "d0c8ff0461b82559810cdccfde3215c3f373807f5e5232b71479bff7bb2583d7" [[package]] name = "futures-executor" -version = "0.3.21" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" +checksum = "29d6d2ff5bb10fb95c85b8ce46538a2e5f5e7fdc755623a7d4529ab8a4ed9d2a" dependencies = [ "futures-core", "futures-task", @@ -655,15 +655,15 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.21" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" +checksum = "b1f9d34af5a1aac6fb380f735fe510746c38067c5bf16c7fd250280503c971b2" [[package]] name = "futures-macro" -version = "0.3.21" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" +checksum = "6dbd947adfffb0efc70599b3ddcf7b5597bb5fa9e245eb99f62b3a5f7bb8bd3c" dependencies = [ "proc-macro2", "quote", @@ -672,21 +672,21 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.21" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" +checksum = "e3055baccb68d74ff6480350f8d6eb8fcfa3aa11bdc1a1ae3afdd0514617d508" [[package]] name = "futures-task" -version = "0.3.21" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" +checksum = "6ee7c6485c30167ce4dfb83ac568a849fe53274c831081476ee13e0dce1aad72" [[package]] name = "futures-util" -version = "0.3.21" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" +checksum = "d9b5cf40b47a271f77a8b1bec03ca09044d99d2372c0de244e66430761127164" dependencies = [ "futures-channel", "futures-core", @@ -712,9 +712,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.4" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418d37c8b1d42553c93648be529cb70f920d3baf8ef469b74b9638df426e0b4c" +checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" dependencies = [ "cfg-if", "libc", @@ -740,9 +740,9 @@ checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" [[package]] name = "h2" -version = "0.3.11" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9f1f717ddc7b2ba36df7e871fd88db79326551d3d6f1fc406fbfd28b582ff8e" +checksum = "0c9de88456263e249e241fcd211d3954e2c9b0ef7ccfc235a444eb367cae3689" dependencies = [ "bytes", "fnv", @@ -805,9 +805,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.6.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9100414882e15fb7feccb4897e5f0ff0ff1ca7d1a86a23208ada4d7a18e6c6c4" +checksum = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503" [[package]] name = "httpdate" @@ -817,9 +817,12 @@ checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" [[package]] name = "humantime" -version = "2.1.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" +checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" +dependencies = [ + "quick-error", +] [[package]] name = "hyper" @@ -925,9 +928,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.56" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a38fc24e30fd564ce974c02bf1d337caddff65be6cc4735a1f7eab22a7440f04" +checksum = "7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84" dependencies = [ "wasm-bindgen", ] @@ -946,9 +949,9 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" [[package]] name = "libc" -version = "0.2.117" +version = "0.2.112" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e74d72e0f9b65b5b4ca49a346af3976df0f9c61d550727f349ecd559f251a26c" +checksum = "1b03d17f364a3a042d5e5d46b053bbbf82c92c9430c592dd4c064dc6ee997125" [[package]] name = "linux-raw-sys" @@ -958,9 +961,9 @@ checksum = "42a0e0375b6446268ee5299c8e92f90030c719b8bb6fcc303a704080da790654" [[package]] name = "lock_api" -version = "0.4.6" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b" +checksum = "712a4d093c9976e24e7dbca41db895dabcbac38eb5f4045393d17a95bdfb1109" dependencies = [ "scopeguard", ] @@ -1129,9 +1132,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "openssl-probe" -version = "0.1.5" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" [[package]] name = "parking_lot" @@ -1268,11 +1271,17 @@ dependencies = [ "cc", ] +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + [[package]] name = "quote" -version = "1.0.15" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145" +checksum = "47aa80447ce4daf1717500037052af176af5d38cc3e571d9ec1c7353fc10c87d" dependencies = [ "proc-macro2", ] @@ -1453,7 +1462,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.5", + "semver 1.0.4", ] [[package]] @@ -1535,9 +1544,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.6.1" +version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc" +checksum = "525bc1abfda2e1998d152c45cf13e696f76d0a4972310b22fac1658b05df7c87" dependencies = [ "bitflags", "core-foundation", @@ -1548,9 +1557,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.6.1" +version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" +checksum = "a9dd14d83160b528b7bfd66439110573efcfbe281b17fc2ca9f39f550d619c7e" dependencies = [ "core-foundation-sys", "libc", @@ -1567,9 +1576,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.5" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0486718e92ec9a68fbed73bb5ef687d71103b142595b406835649bebd33f72c7" +checksum = "568a8e6258aa33c13358f81fd834adb854c6f7c9468520910a9b1e8fac068012" [[package]] name = "semver-parser" @@ -1579,18 +1588,18 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.136" +version = "1.0.133" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789" +checksum = "97565067517b60e2d1ea8b268e59ce036de907ac523ad83a0475da04e818989a" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.136" +version = "1.0.133" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9" +checksum = "ed201699328568d8d08208fdd080e3ff594e6c422e438b6705905da01005d537" dependencies = [ "proc-macro2", "quote", @@ -1599,9 +1608,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.78" +version = "1.0.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d23c1ba4cf0efd44be32017709280b32d1cea5c3f1275c3b6d9e8bc54f758085" +checksum = "ee2bb9cd061c5865d345bb02ca49fcef1391741b672b54a0bf7b679badec3142" dependencies = [ "itoa 1.0.1", "ryu", @@ -1656,15 +1665,15 @@ checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" [[package]] name = "smallvec" -version = "1.8.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" +checksum = "1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309" [[package]] name = "socket2" -version = "0.4.4" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" +checksum = "5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516" dependencies = [ "libc", "winapi", @@ -1690,9 +1699,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" [[package]] name = "structopt" -version = "0.3.26" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" +checksum = "40b9788f4202aa75c240ecc9c15c65185e6a39ccdeb0fd5d008b98825464c87c" dependencies = [ "clap", "lazy_static", @@ -1714,9 +1723,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.86" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b" +checksum = "a684ac3dcd8913827e18cd09a68384ee66c1de24157e3c556c9ab16d85695fb7" dependencies = [ "proc-macro2", "quote", @@ -1742,9 +1751,9 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.3" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fa7e55043acb85fca6b3c01485a2eeb6b69c5d21002e273c79e465f43b7ac1" +checksum = "d9bffcddbc2458fa3e6058414599e3c838a022abae82e5c67b4f7f80298d5bff" [[package]] name = "tempfile" @@ -1800,9 +1809,9 @@ dependencies = [ [[package]] name = "thread_local" -version = "1.1.4" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +checksum = "8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbd" dependencies = [ "once_cell", ] @@ -1824,9 +1833,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.16.1" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c27a64b625de6d309e8c57716ba93021dccf1b3b5c97edd6d3dd2d2135afc0a" +checksum = "fbbf1c778ec206785635ce8ad57fe52b3009ae9e0c9f574a728f3049d3e55838" dependencies = [ "bytes", "libc", @@ -1894,9 +1903,9 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" [[package]] name = "tracing" -version = "0.1.30" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d8d93354fe2a8e50d5953f5ae2e47a3fc2ef03292e7ea46e3cc38f549525fb9" +checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105" dependencies = [ "cfg-if", "log", @@ -1907,9 +1916,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.19" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8276d9a4a3a558d7b7ad5303ad50b53d58264641b82914b7ada36bd762e7a716" +checksum = "f4f480b8f81512e825f337ad51e94c1eb5d3bbdf2b363dcd01e2b19a9ffe3f8e" dependencies = [ "proc-macro2", "quote", @@ -1918,12 +1927,11 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.22" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03cfcb51380632a72d3111cb8d3447a8d908e577d31beeac006f836383d29a23" +checksum = "1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4" dependencies = [ "lazy_static", - "valuable", ] [[package]] @@ -1949,9 +1957,9 @@ dependencies = [ [[package]] name = "tracing-serde" -version = "0.1.3" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" +checksum = "fb65ea441fbb84f9f6748fd496cf7f63ec9af5bca94dd86456978d055e8eb28b" dependencies = [ "serde", "tracing-core", @@ -2008,9 +2016,9 @@ dependencies = [ [[package]] name = "unicode-segmentation" -version = "1.9.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" +checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b" [[package]] name = "unicode-width" @@ -2053,12 +2061,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "valuable" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" - [[package]] name = "vec_map" version = "0.8.2" @@ -2212,9 +2214,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.79" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25f1af7423d8588a3d840681122e72e6a24ddbcb3f0ec385cac0d12d24256c06" +checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -2222,9 +2224,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.79" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b21c0df030f5a177f3cba22e9bc4322695ec43e7257d865302900290bcdedca" +checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b" dependencies = [ "bumpalo", "lazy_static", @@ -2237,9 +2239,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.79" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f4203d69e40a52ee523b2529a773d5ffc1dc0071801c87b3d270b471b80ed01" +checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2247,9 +2249,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.79" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa8a30d46208db204854cadbb5d4baf5fcf8071ba5bf48190c3e59937962ebc" +checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab" dependencies = [ "proc-macro2", "quote", @@ -2260,9 +2262,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.79" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d958d035c4438e28c70e4321a2911302f10135ce78a9c7834c0cab4123d06a2" +checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc" [[package]] name = "wasmparser" @@ -2521,9 +2523,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.56" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c060b319f29dd25724f09a2ba1418f142f539b2be99fbf4d2d5a8f7330afb8eb" +checksum = "38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fb" dependencies = [ "js-sys", "wasm-bindgen", diff --git a/cli/tests/trap-test/Cargo.lock b/cli/tests/trap-test/Cargo.lock index 99b86881..78c2c24f 100644 --- a/cli/tests/trap-test/Cargo.lock +++ b/cli/tests/trap-test/Cargo.lock @@ -52,9 +52,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.53" +version = "1.0.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94a45b455c14666b85fc40a019e8ab9eb75e3a124e05494f5397122bc9eb06e0" +checksum = "84450d0b4a8bd1ba4144ce8ce718fbc5d071358b1e5384bace6536b3d1f2d5b3" [[package]] name = "async-trait" @@ -80,15 +80,15 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.1.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" [[package]] name = "backtrace" -version = "0.3.64" +version = "0.3.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e121dee8023ce33ab248d9ce1493df03c3b38a659b240096fcbd7048ff9c31f" +checksum = "321629d8ba6513061f26707241fa9bc89524ff1cd7a915a97ef0c62c666ce1b6" dependencies = [ "addr2line 0.17.0", "cc", @@ -246,9 +246,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.9.3" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +checksum = "6888e10551bb93e424d8df1d07f1a8b4fceb0001a3a4b048bfc47554946f47b3" dependencies = [ "core-foundation-sys", "libc", @@ -381,9 +381,9 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.3.2" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +checksum = "738c290dfaea84fc1ca15ad9c168d083b05a714e1efddd8edaab678dc28d2836" dependencies = [ "cfg-if", ] @@ -411,9 +411,9 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.7" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00d6d2ea26e8b151d99093005cb442fb9a37aeaca582a03ec70946f49ab5ed9" +checksum = "97242a70df9b89a65d0b6df3c4bf5b9ce03c5b7309019777fbde37e7537f8762" dependencies = [ "cfg-if", "crossbeam-utils", @@ -424,9 +424,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.7" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6" +checksum = "cfcae03edb34f947e64acdb1c33ec169824e20657e9ecb61cef6c8c74dcb8120" dependencies = [ "cfg-if", "lazy_static", @@ -490,9 +490,9 @@ checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" [[package]] name = "env_logger" -version = "0.9.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" +checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" dependencies = [ "atty", "humantime", @@ -540,26 +540,14 @@ dependencies = [ [[package]] name = "file-per-thread-logger" -version = "0.1.5" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21e16290574b39ee41c71aeb90ae960c504ebaf1e2a1c87bd52aa56ed6e1a02f" +checksum = "4fdbe0d94371f9ce939b555dd342d0686cc4c0cadbcd4b61d70af5ff97eb4126" dependencies = [ "env_logger", "log", ] -[[package]] -name = "flate2" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f" -dependencies = [ - "cfg-if", - "crc32fast", - "libc", - "miniz_oxide", -] - [[package]] name = "fnv" version = "1.0.7" @@ -589,9 +577,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.21" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e" +checksum = "28560757fe2bb34e79f907794bb6b22ae8b0e5c669b638a1132f2592b19035b4" dependencies = [ "futures-channel", "futures-core", @@ -604,9 +592,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.21" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" +checksum = "ba3dda0b6588335f360afc675d0564c17a77a2bda81ca178a4b6081bd86c7f0b" dependencies = [ "futures-core", "futures-sink", @@ -614,15 +602,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.21" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" +checksum = "d0c8ff0461b82559810cdccfde3215c3f373807f5e5232b71479bff7bb2583d7" [[package]] name = "futures-executor" -version = "0.3.21" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" +checksum = "29d6d2ff5bb10fb95c85b8ce46538a2e5f5e7fdc755623a7d4529ab8a4ed9d2a" dependencies = [ "futures-core", "futures-task", @@ -631,15 +619,15 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.21" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" +checksum = "b1f9d34af5a1aac6fb380f735fe510746c38067c5bf16c7fd250280503c971b2" [[package]] name = "futures-macro" -version = "0.3.21" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" +checksum = "6dbd947adfffb0efc70599b3ddcf7b5597bb5fa9e245eb99f62b3a5f7bb8bd3c" dependencies = [ "proc-macro2", "quote", @@ -648,21 +636,21 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.21" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" +checksum = "e3055baccb68d74ff6480350f8d6eb8fcfa3aa11bdc1a1ae3afdd0514617d508" [[package]] name = "futures-task" -version = "0.3.21" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" +checksum = "6ee7c6485c30167ce4dfb83ac568a849fe53274c831081476ee13e0dce1aad72" [[package]] name = "futures-util" -version = "0.3.21" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" +checksum = "d9b5cf40b47a271f77a8b1bec03ca09044d99d2372c0de244e66430761127164" dependencies = [ "futures-channel", "futures-core", @@ -688,9 +676,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.4" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418d37c8b1d42553c93648be529cb70f920d3baf8ef469b74b9638df426e0b4c" +checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" dependencies = [ "cfg-if", "libc", @@ -716,9 +704,9 @@ checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" [[package]] name = "h2" -version = "0.3.11" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9f1f717ddc7b2ba36df7e871fd88db79326551d3d6f1fc406fbfd28b582ff8e" +checksum = "0c9de88456263e249e241fcd211d3954e2c9b0ef7ccfc235a444eb367cae3689" dependencies = [ "bytes", "fnv", @@ -781,9 +769,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.6.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9100414882e15fb7feccb4897e5f0ff0ff1ca7d1a86a23208ada4d7a18e6c6c4" +checksum = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503" [[package]] name = "httpdate" @@ -793,9 +781,12 @@ checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" [[package]] name = "humantime" -version = "2.1.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" +checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" +dependencies = [ + "quick-error", +] [[package]] name = "hyper" @@ -901,9 +892,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.56" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a38fc24e30fd564ce974c02bf1d337caddff65be6cc4735a1f7eab22a7440f04" +checksum = "7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84" dependencies = [ "wasm-bindgen", ] @@ -922,9 +913,9 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" [[package]] name = "libc" -version = "0.2.117" +version = "0.2.112" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e74d72e0f9b65b5b4ca49a346af3976df0f9c61d550727f349ecd559f251a26c" +checksum = "1b03d17f364a3a042d5e5d46b053bbbf82c92c9430c592dd4c064dc6ee997125" [[package]] name = "linux-raw-sys" @@ -934,9 +925,9 @@ checksum = "42a0e0375b6446268ee5299c8e92f90030c719b8bb6fcc303a704080da790654" [[package]] name = "lock_api" -version = "0.4.6" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b" +checksum = "712a4d093c9976e24e7dbca41db895dabcbac38eb5f4045393d17a95bdfb1109" dependencies = [ "scopeguard", ] @@ -1105,9 +1096,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "openssl-probe" -version = "0.1.5" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" [[package]] name = "parking_lot" @@ -1220,11 +1211,17 @@ dependencies = [ "cc", ] +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + [[package]] name = "quote" -version = "1.0.15" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145" +checksum = "47aa80447ce4daf1717500037052af176af5d38cc3e571d9ec1c7353fc10c87d" dependencies = [ "proc-macro2", ] @@ -1396,7 +1393,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.5", + "semver 1.0.4", ] [[package]] @@ -1478,9 +1475,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.6.1" +version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc" +checksum = "525bc1abfda2e1998d152c45cf13e696f76d0a4972310b22fac1658b05df7c87" dependencies = [ "bitflags", "core-foundation", @@ -1491,9 +1488,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.6.1" +version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" +checksum = "a9dd14d83160b528b7bfd66439110573efcfbe281b17fc2ca9f39f550d619c7e" dependencies = [ "core-foundation-sys", "libc", @@ -1510,9 +1507,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.5" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0486718e92ec9a68fbed73bb5ef687d71103b142595b406835649bebd33f72c7" +checksum = "568a8e6258aa33c13358f81fd834adb854c6f7c9468520910a9b1e8fac068012" [[package]] name = "semver-parser" @@ -1522,18 +1519,18 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.136" +version = "1.0.133" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789" +checksum = "97565067517b60e2d1ea8b268e59ce036de907ac523ad83a0475da04e818989a" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.136" +version = "1.0.133" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9" +checksum = "ed201699328568d8d08208fdd080e3ff594e6c422e438b6705905da01005d537" dependencies = [ "proc-macro2", "quote", @@ -1542,9 +1539,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.78" +version = "1.0.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d23c1ba4cf0efd44be32017709280b32d1cea5c3f1275c3b6d9e8bc54f758085" +checksum = "ee2bb9cd061c5865d345bb02ca49fcef1391741b672b54a0bf7b679badec3142" dependencies = [ "itoa 1.0.1", "ryu", @@ -1599,15 +1596,15 @@ checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" [[package]] name = "smallvec" -version = "1.8.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" +checksum = "1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309" [[package]] name = "socket2" -version = "0.4.4" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" +checksum = "5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516" dependencies = [ "libc", "winapi", @@ -1627,9 +1624,9 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "syn" -version = "1.0.86" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b" +checksum = "a684ac3dcd8913827e18cd09a68384ee66c1de24157e3c556c9ab16d85695fb7" dependencies = [ "proc-macro2", "quote", @@ -1655,9 +1652,9 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.3" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fa7e55043acb85fca6b3c01485a2eeb6b69c5d21002e273c79e465f43b7ac1" +checksum = "d9bffcddbc2458fa3e6058414599e3c838a022abae82e5c67b4f7f80298d5bff" [[package]] name = "termcolor" @@ -1690,9 +1687,9 @@ dependencies = [ [[package]] name = "thread_local" -version = "1.1.4" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +checksum = "8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbd" dependencies = [ "once_cell", ] @@ -1714,9 +1711,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.16.1" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c27a64b625de6d309e8c57716ba93021dccf1b3b5c97edd6d3dd2d2135afc0a" +checksum = "fbbf1c778ec206785635ce8ad57fe52b3009ae9e0c9f574a728f3049d3e55838" dependencies = [ "bytes", "libc", @@ -1784,9 +1781,9 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" [[package]] name = "tracing" -version = "0.1.30" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d8d93354fe2a8e50d5953f5ae2e47a3fc2ef03292e7ea46e3cc38f549525fb9" +checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105" dependencies = [ "cfg-if", "log", @@ -1797,9 +1794,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.19" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8276d9a4a3a558d7b7ad5303ad50b53d58264641b82914b7ada36bd762e7a716" +checksum = "f4f480b8f81512e825f337ad51e94c1eb5d3bbdf2b363dcd01e2b19a9ffe3f8e" dependencies = [ "proc-macro2", "quote", @@ -1808,12 +1805,11 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.22" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03cfcb51380632a72d3111cb8d3447a8d908e577d31beeac006f836383d29a23" +checksum = "1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4" dependencies = [ "lazy_static", - "valuable", ] [[package]] @@ -1839,9 +1835,9 @@ dependencies = [ [[package]] name = "tracing-serde" -version = "0.1.3" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" +checksum = "fb65ea441fbb84f9f6748fd496cf7f63ec9af5bca94dd86456978d055e8eb28b" dependencies = [ "serde", "tracing-core", @@ -1911,9 +1907,9 @@ dependencies = [ [[package]] name = "unicode-segmentation" -version = "1.9.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" +checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b" [[package]] name = "unicode-width" @@ -1956,12 +1952,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "valuable" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" - [[package]] name = "version_check" version = "0.9.4" @@ -1978,7 +1968,6 @@ dependencies = [ "cfg-if", "cranelift-entity 0.77.0", "fastly-shared", - "flate2", "futures", "http", "http-body", @@ -2089,9 +2078,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.79" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25f1af7423d8588a3d840681122e72e6a24ddbcb3f0ec385cac0d12d24256c06" +checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -2099,9 +2088,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.79" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b21c0df030f5a177f3cba22e9bc4322695ec43e7257d865302900290bcdedca" +checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b" dependencies = [ "bumpalo", "lazy_static", @@ -2114,9 +2103,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.79" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f4203d69e40a52ee523b2529a773d5ffc1dc0071801c87b3d270b471b80ed01" +checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2124,9 +2113,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.79" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa8a30d46208db204854cadbb5d4baf5fcf8071ba5bf48190c3e59937962ebc" +checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab" dependencies = [ "proc-macro2", "quote", @@ -2137,9 +2126,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.79" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d958d035c4438e28c70e4321a2911302f10135ce78a9c7834c0cab4123d06a2" +checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc" [[package]] name = "wasmparser" @@ -2398,9 +2387,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.56" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c060b319f29dd25724f09a2ba1418f142f539b2be99fbf4d2d5a8f7330afb8eb" +checksum = "38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fb" dependencies = [ "js-sys", "wasm-bindgen", diff --git a/test-fixtures/Cargo.lock b/test-fixtures/Cargo.lock index 74ab514e..c53306da 100644 --- a/test-fixtures/Cargo.lock +++ b/test-fixtures/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "anyhow" -version = "1.0.53" +version = "1.0.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94a45b455c14666b85fc40a019e8ab9eb75e3a124e05494f5397122bc9eb06e0" +checksum = "84450d0b4a8bd1ba4144ce8ce718fbc5d071358b1e5384bace6536b3d1f2d5b3" [[package]] name = "bitflags" @@ -84,9 +84,9 @@ dependencies = [ [[package]] name = "fastly-macros" -version = "0.8.2" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83b34109e1a3534cdbd7c1adbc395ea3aba7d1530929bcf70f3968207d364fc8" +checksum = "8ed579ddb6fb7ecb1e9a967c19a55a5d5ed7918ae9a7c4e5a4f547740b9e719d" dependencies = [ "proc-macro2", "quote", @@ -148,7 +148,7 @@ checksum = "31f4c6746584866f0feabcc69893c5b51beef3831656a968ed7ae254cdc4fd03" dependencies = [ "bytes 1.1.0", "fnv", - "itoa", + "itoa 1.0.1", ] [[package]] @@ -162,6 +162,12 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "itoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" + [[package]] name = "itoa" version = "1.0.1" @@ -176,9 +182,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.117" +version = "0.2.112" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e74d72e0f9b65b5b4ca49a346af3976df0f9c61d550727f349ecd559f251a26c" +checksum = "1b03d17f364a3a042d5e5d46b053bbbf82c92c9430c592dd4c064dc6ee997125" [[package]] name = "matches" @@ -192,15 +198,6 @@ version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" -[[package]] -name = "num_threads" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97ba99ba6393e2c3734791401b66902d981cb03bf190af674ca69949b6d5fb15" -dependencies = [ - "libc", -] - [[package]] name = "opaque-debug" version = "0.3.0" @@ -224,9 +221,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.15" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145" +checksum = "47aa80447ce4daf1717500037052af176af5d38cc3e571d9ec1c7353fc10c87d" dependencies = [ "proc-macro2", ] @@ -239,18 +236,18 @@ checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" [[package]] name = "serde" -version = "1.0.136" +version = "1.0.133" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789" +checksum = "97565067517b60e2d1ea8b268e59ce036de907ac523ad83a0475da04e818989a" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.136" +version = "1.0.133" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9" +checksum = "ed201699328568d8d08208fdd080e3ff594e6c422e438b6705905da01005d537" dependencies = [ "proc-macro2", "quote", @@ -259,23 +256,23 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.78" +version = "1.0.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d23c1ba4cf0efd44be32017709280b32d1cea5c3f1275c3b6d9e8bc54f758085" +checksum = "ee2bb9cd061c5865d345bb02ca49fcef1391741b672b54a0bf7b679badec3142" dependencies = [ - "itoa", + "itoa 1.0.1", "ryu", "serde", ] [[package]] name = "serde_urlencoded" -version = "0.7.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +checksum = "edfa57a7f8d9c1d260a549e7224100f6c43d43f9103e06dd8b4095a9b2b43ce9" dependencies = [ "form_urlencoded", - "itoa", + "itoa 0.4.8", "ryu", "serde", ] @@ -295,9 +292,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.86" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b" +checksum = "a684ac3dcd8913827e18cd09a68384ee66c1de24157e3c556c9ab16d85695fb7" dependencies = [ "proc-macro2", "quote", @@ -338,12 +335,11 @@ dependencies = [ [[package]] name = "time" -version = "0.3.7" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "004cbc98f30fa233c61a38bc77e96a9106e65c88f2d3bef182ae952027e5753d" +checksum = "41effe7cfa8af36f439fac33861b66b049edc6f9a32331e2312660529c1c24ad" dependencies = [ "libc", - "num_threads", "serde", ] From 3ae231b3e0a44d8b1dd932703f8e3a373658c4c9 Mon Sep 17 00:00:00 2001 From: Adam Wick Date: Tue, 8 Feb 2022 16:06:09 -0800 Subject: [PATCH 15/18] Try a simpler update to just the trap-test lockfile. --- cli/tests/trap-test/Cargo.lock | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/cli/tests/trap-test/Cargo.lock b/cli/tests/trap-test/Cargo.lock index 78c2c24f..d1dd400a 100644 --- a/cli/tests/trap-test/Cargo.lock +++ b/cli/tests/trap-test/Cargo.lock @@ -548,6 +548,18 @@ dependencies = [ "log", ] +[[package]] +name = "flate2" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f" +dependencies = [ + "cfg-if", + "crc32fast", + "libc", + "miniz_oxide", +] + [[package]] name = "fnv" version = "1.0.7" @@ -1968,6 +1980,7 @@ dependencies = [ "cfg-if", "cranelift-entity 0.77.0", "fastly-shared", + "flate2", "futures", "http", "http-body", From 151574d41cc483be322ad3133739bb23ed4411df Mon Sep 17 00:00:00 2001 From: Adam Wick Date: Tue, 8 Feb 2022 16:22:35 -0800 Subject: [PATCH 16/18] Use a string in the test fixture, rather than reading a text file. I don't actually love this, but it's probably the least-bad alternative for dealing with differences of opinions about the structure of end-of-line markers. --- test-fixtures/data/hello_world | 1 - test-fixtures/src/bin/gzipped-response.rs | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) delete mode 100644 test-fixtures/data/hello_world diff --git a/test-fixtures/data/hello_world b/test-fixtures/data/hello_world deleted file mode 100644 index 270c611e..00000000 --- a/test-fixtures/data/hello_world +++ /dev/null @@ -1 +0,0 @@ -hello, world! diff --git a/test-fixtures/src/bin/gzipped-response.rs b/test-fixtures/src/bin/gzipped-response.rs index f68f960f..5d94e921 100644 --- a/test-fixtures/src/bin/gzipped-response.rs +++ b/test-fixtures/src/bin/gzipped-response.rs @@ -3,7 +3,7 @@ use fastly::http::StatusCode; use fastly::{Backend, Request}; use std::io::Read; -static HELLO_WORLD: &'static str = include_str!("../../data/hello_world"); +static HELLO_WORLD: &'static str = "hello, world!\n"; static HELLO_WORLD_GZ: &'static [u8] = include_bytes!("../../data/hello_world.gz"); fn main() -> Result<(), SendError> { From cfd96845122792e38d55b29e63e54ad718877b20 Mon Sep 17 00:00:00 2001 From: Adam Wick Date: Wed, 9 Feb 2022 13:30:17 -0800 Subject: [PATCH 17/18] Handle "x-gzip" content encodings, as well as "gzip". --- lib/src/upstream.rs | 12 ++++++++++-- test-fixtures/src/bin/gzipped-response.rs | 13 +++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/lib/src/upstream.rs b/lib/src/upstream.rs index d2ea3805..6cd840f7 100644 --- a/lib/src/upstream.rs +++ b/lib/src/upstream.rs @@ -24,6 +24,11 @@ use tokio::{ use tokio_rustls::{client::TlsStream, TlsConnector}; use webpki::DNSNameRef; +static GZIP_VALUES: [HeaderValue; 2] = [ + HeaderValue::from_static("gzip"), + HeaderValue::from_static("x-gzip"), +]; + /// A custom Hyper client connector, which is needed to override Hyper's default behavior of /// connecting to host specified by the request's URI; we instead want to connect to the host /// specified by our backend configuration, regardless of what the URI says. @@ -193,8 +198,11 @@ pub fn send_request( })?; if try_decompression - && basic_response.headers().get(header::CONTENT_ENCODING) - == Some(&HeaderValue::from_static("gzip")) + && basic_response + .headers() + .get(header::CONTENT_ENCODING) + .map(|x| GZIP_VALUES.contains(x)) + .unwrap_or(false) { let mut decompressing_response = basic_response.map(Chunk::compressed_body).map(Body::from); diff --git a/test-fixtures/src/bin/gzipped-response.rs b/test-fixtures/src/bin/gzipped-response.rs index 5d94e921..a338dc3b 100644 --- a/test-fixtures/src/bin/gzipped-response.rs +++ b/test-fixtures/src/bin/gzipped-response.rs @@ -49,6 +49,19 @@ fn main() -> Result<(), SendError> { let hopefully_unpacked = unpacked_echo.take_body_str(); assert_eq!(HELLO_WORLD, &hopefully_unpacked); + // This should work when the header is "x-gzip", as well; see + // https://httpwg.org/http-core/draft-ietf-httpbis-semantics-latest.html#gzip.coding + let mut xunpacked_echo = Request::put("http://127.0.0.1:9000") + .with_header("Content-Encoding", "x-gzip") + .with_body_octet_stream(HELLO_WORLD_GZ) + .with_auto_decompress_gzip(true) + .send(echo_server.clone())?; + + assert!(xunpacked_echo.get_header("Content-Encoding").is_none()); + assert!(xunpacked_echo.get_content_length().is_none()); + let xhopefully_unpacked = xunpacked_echo.take_body_str(); + assert_eq!(HELLO_WORLD, &xhopefully_unpacked); + // The same, but now we're going to use await. let unpacked_echo_pending = Request::put("http://127.0.0.1:9000") .with_header("Content-Encoding", "gzip") From 80597bc4fd63b70e644e7c86abe7c6a2990dd873 Mon Sep 17 00:00:00 2001 From: Adam Wick Date: Wed, 9 Feb 2022 13:31:45 -0800 Subject: [PATCH 18/18] Clean up the comments around `auto_decompress_response_set, add a future hint. --- lib/src/wiggle_abi/req_impl.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/src/wiggle_abi/req_impl.rs b/lib/src/wiggle_abi/req_impl.rs index f51ead16..6f27b211 100644 --- a/lib/src/wiggle_abi/req_impl.rs +++ b/lib/src/wiggle_abi/req_impl.rs @@ -473,15 +473,19 @@ impl FastlyHttpReq for Session { req_handle: RequestHandle, encodings: ContentEncodings, ) -> Result<(), Error> { - // NOTE: We're going to hide this flag in the headers of the request in order to decrease - // the book-keeping burden inside Session; there already existed a cleaning pass in the - // output chain, which we extend for this use case. + // NOTE: We're going to hide this flag in the extensions of the request in order to decrease + // the book-keeping burden inside Session. The flag will get picked up later, in `send_request`. let extensions = &mut self.request_parts_mut(req_handle)?.extensions; match extensions.get_mut::() { None => { extensions.insert(ViceroyRequestMetadata { auto_decompress_encodings: encodings, + // future note: at time of writing, this is the only field of + // this structure, but there is an intention to add more fields. + // When we do, and if/when an error appears, what you're looking + // for is: + // ..Default::default() }); } Some(vrm) => {