~nickbp/kapiti

9d460d0b7ab39ac1e39576b34fa6217049c65edb — Nick Parker 2 months ago 199d6ff
Update dependencies to latest along with corresponding code changes
M Cargo.lock => Cargo.lock +283 -272
@@ 1,5 1,7 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3

[[package]]
name = "adler"
version = "1.0.2"


@@ 7,6 9,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"

[[package]]
name = "ahash"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "43bb833f0bf979d8475d38fbf09ed3b8a55e1885fe93ad3f93239fc6a4f17b98"
dependencies = [
 "getrandom",
 "once_cell",
 "version_check",
]

[[package]]
name = "ansi_term"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 17,9 30,9 @@ dependencies = [

[[package]]
name = "anyhow"
version = "1.0.40"
version = "1.0.42"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28b2cd92db5cbd74e8e5028f7e27dd7aa3090e89e4f2a197cc7c8dfb69c7063b"
checksum = "595d3cfa7a60d4555cb5067b99f07142a08ea778de5cf993f7b75c7d8fabc486"

[[package]]
name = "async-channel"


@@ 34,16 47,16 @@ dependencies = [

[[package]]
name = "async-executor"
version = "1.4.0"
version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eb877970c7b440ead138f6321a3b5395d6061183af779340b65e20c0fede9146"
checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965"
dependencies = [
 "async-task",
 "concurrent-queue",
 "fastrand",
 "futures-lite",
 "once_cell",
 "vec-arena",
 "slab",
]

[[package]]


@@ 75,29 88,28 @@ dependencies = [

[[package]]
name = "async-io"
version = "1.3.1"
version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9315f8f07556761c3e48fec2e6b276004acf426e6dc068b2c2251854d65ee0fd"
checksum = "a811e6a479f2439f0c04038796b5cfb3d2ad56c230e0f2d3f7b04d68cfee607b"
dependencies = [
 "concurrent-queue",
 "fastrand",
 "futures-lite",
 "libc",
 "log",
 "nb-connect",
 "once_cell",
 "parking",
 "polling",
 "vec-arena",
 "slab",
 "socket2",
 "waker-fn",
 "winapi",
]

[[package]]
name = "async-lock"
version = "2.3.0"
version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1996609732bde4a9988bc42125f55f2af5f3c36370e27c778d5191a4a1b63bfb"
checksum = "e6a8ea61bf9947a1007c5cada31e647dbc77b103c679858150003ba697ea798b"
dependencies = [
 "event-listener",
]


@@ 113,27 125,27 @@ dependencies = [

[[package]]
name = "async-net"
version = "1.5.0"
version = "1.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06de475c85affe184648202401d7622afb32f0f74e02192857d0201a16defbe5"
checksum = "5373304df79b9b4395068fb080369ec7178608827306ce4d081cba51cac551df"
dependencies = [
 "async-io",
 "blocking",
 "fastrand",
 "futures-lite",
]

[[package]]
name = "async-process"
version = "1.0.2"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef37b86e2fa961bae5a4d212708ea0154f904ce31d1a4a7f47e1bbc33a0c040b"
checksum = "a8f38756dd9ac84671c428afbf7c9f7495feff9ec5b0710f17100098e5b354ac"
dependencies = [
 "async-io",
 "blocking",
 "cfg-if",
 "event-listener",
 "futures-lite",
 "libc",
 "once_cell",
 "signal-hook",
 "winapi",


@@ 147,7 159,7 @@ checksum = "9c86f33abd5a4f3e2d6d9251a9e0c6a7e52eb1113caf893dae8429bf4a53f378"
dependencies = [
 "futures-lite",
 "rustls",
 "webpki",
 "webpki 0.21.4",
]

[[package]]


@@ 196,9 208,9 @@ dependencies = [

[[package]]
name = "async-trait"
version = "0.1.48"
version = "0.1.50"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "36ea56748e10732c49404c153638a15ec3d6211ec5ff35d9bb20e13b93576adf"
checksum = "0b98e84bbb4cbcdd97da190ba0c58a1bb0de2c1fdf67d159e192ed766aeca722"
dependencies = [
 "proc-macro2",
 "quote",


@@ 280,9 292,9 @@ dependencies = [

[[package]]
name = "bstr"
version = "0.2.15"
version = "0.2.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a40b47ad93e1a5404e6c18dec46b628214fee441c70f4ab5d6942142cc268a3d"
checksum = "90682c8d613ad3373e66de8c6411e0ae2ab2571e879d2efbf73558cc66f21279"
dependencies = [
 "lazy_static",
 "memchr",


@@ 292,26 304,25 @@ dependencies = [

[[package]]
name = "bumpalo"
version = "3.6.1"
version = "3.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "63396b8a4b9de3f4fdfb320ab6080762242f66a8ef174c49d8e19b674db4cdbe"
checksum = "9c59e7af012c713f529e7a3ee57ce9b31ddd858d4b512923602f74608b009631"

[[package]]
name = "bytecheck"
version = "0.4.1"
version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc01d00caeff7a3d27dd7afd3a2dec62557d28684ee88e5c5ef2a8ff8a715913"
checksum = "ff6e41b4c23aca8e5dd453b1142c330704cc461bff785cbebaf0b4582d6a0ea5"
dependencies = [
 "bytecheck_derive",
 "memoffset",
 "ptr_meta",
]

[[package]]
name = "bytecheck_derive"
version = "0.4.1"
version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a9ccb631a8071909d61ede2a33ea6f0305c72999cd02245c85eec9ccb48844a"
checksum = "fb785814a4df138638a22e448a4067ca0661a864ba2add6fea0d1cbece1c63d3"
dependencies = [
 "proc-macro2",
 "quote",


@@ 338,18 349,18 @@ checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba"

[[package]]
name = "cast"
version = "0.2.4"
version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f566d1fbeb40ec78c78344e9983f46ff9eb4e944fa930ed01b7d72b72a37c11"
checksum = "4c24dab4283a142afa2fdca129b80ad2c6284e073930f964c3a1293c225ee39a"
dependencies = [
 "rustc_version",
]

[[package]]
name = "cc"
version = "1.0.67"
version = "1.0.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd"
checksum = "e70cc2f62c6ce1868963827bd677764c62d07c3d9a3e1fb1177ee1a9ab199eb2"
dependencies = [
 "jobserver",
]


@@ 386,9 397,9 @@ dependencies = [

[[package]]
name = "combine"
version = "4.5.2"
version = "4.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cc4369b5e4c0cddf64ad8981c0111e7df4f7078f4d6ba98fb31f2e17c4c57b7e"
checksum = "a2d47c1b11006b87e492b53b313bb699ce60e16613c4dddaa91f8f7c220ab2fa"
dependencies = [
 "bytes",
 "memchr",


@@ 420,10 431,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b"

[[package]]
name = "cpuid-bool"
version = "0.1.2"
name = "cpufeatures"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634"
checksum = "66c99696f6c9dd7f35d486b9d04d7e6e202aa3e8c40d553f2fdf5e7e0c6a71ef"
dependencies = [
 "libc",
]

[[package]]
name = "crc32fast"


@@ 445,7 459,7 @@ dependencies = [
 "clap",
 "criterion-plot",
 "csv",
 "itertools 0.10.0",
 "itertools 0.10.1",
 "lazy_static",
 "num-traits",
 "oorandom",


@@ 493,9 507,9 @@ dependencies = [

[[package]]
name = "crossbeam-epoch"
version = "0.9.3"
version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2584f639eb95fea8c798496315b297cf81b9b58b6d30ab066a75455333cf4b12"
checksum = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd"
dependencies = [
 "cfg-if",
 "crossbeam-utils",


@@ 506,11 520,10 @@ dependencies = [

[[package]]
name = "crossbeam-utils"
version = "0.8.3"
version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e7e9d99fa91428effe99c5c6d4634cdeba32b8cf784fc428a2a687f61a952c49"
checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db"
dependencies = [
 "autocfg",
 "cfg-if",
 "lazy_static",
]


@@ 538,15 551,6 @@ dependencies = [
]

[[package]]
name = "ct-logs"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c1a816186fa68d9e426e3cb4ae4dff1fcd8e4a2c34b781bf7a822574a0d0aac8"
dependencies = [
 "sct",
]

[[package]]
name = "ctor"
version = "0.1.20"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 585,9 589,9 @@ checksum = "f7531096570974c3a9dcf9e4b8e1cede1ec26cf5046219fb3b9d897503b9be59"

[[package]]
name = "fastrand"
version = "1.4.0"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca5faf057445ce5c9d4329e382b2ce7ca38550ef3b73a5348362d5f24e0c7fe3"
checksum = "b394ed3d285a429378d3b384b9eb1285267e7df4b166df24b7a6939a04dc392e"
dependencies = [
 "instant",
]


@@ 622,24 626,24 @@ dependencies = [

[[package]]
name = "futures-channel"
version = "0.3.14"
version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce79c6a52a299137a6013061e0cf0e688fce5d7f1bc60125f520912fdb29ec25"
checksum = "e682a68b29a882df0545c143dc3646daefe80ba479bcdede94d5a703de2871e2"
dependencies = [
 "futures-core",
]

[[package]]
name = "futures-core"
version = "0.3.14"
version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "098cd1c6dda6ca01650f1a37a794245eb73181d0d4d4e955e2f3c37db7af1815"
checksum = "0402f765d8a89a26043b889b26ce3c4679d268fa6bb22cd7c6aad98340e179d1"

[[package]]
name = "futures-delay-queue"
version = "0.4.2"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4718889d33c594060b28bf5c9e976e1ac4f70e47e5473506ed55bf4a62bf3a3d"
checksum = "bfb7ba4721aba38d3c78510a2cec8b9735e0c9d0def378f7395f65c4ddaf66af"
dependencies = [
 "async-std",
 "futures-intrusive",


@@ 661,15 665,15 @@ dependencies = [

[[package]]
name = "futures-io"
version = "0.3.14"
version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "365a1a1fb30ea1c03a830fdb2158f5236833ac81fa0ad12fe35b29cddc35cb04"
checksum = "acc499defb3b348f8d8f3f66415835a9131856ff7714bf10dadfc4ec4bdb29a1"

[[package]]
name = "futures-lite"
version = "1.11.3"
version = "1.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4481d0cd0de1d204a4fa55e7d45f07b1d958abcb06714b3446438e2eff695fb"
checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48"
dependencies = [
 "fastrand",
 "futures-core",


@@ 682,15 686,15 @@ dependencies = [

[[package]]
name = "futures-sink"
version = "0.3.14"
version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c5629433c555de3d82861a7a4e3794a4c40040390907cfbfd7143a92a426c23"
checksum = "a57bead0ceff0d6dde8f465ecd96c9338121bb7717d3e7b108059531870c4282"

[[package]]
name = "futures-task"
version = "0.3.14"
version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ba7aa51095076f3ba6d9a1f702f74bd05ec65f555d70d2033d55ba8d69f581bc"
checksum = "8a16bef9fc1a4dddb5bee51c989e3fbba26569cbb0e31f5b303c184e3dd33dae"

[[package]]
name = "futures-timer"


@@ 700,10 704,11 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"

[[package]]
name = "futures-util"
version = "0.3.14"
version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c144ad54d60f23927f0a6b6d816e4271278b64f005ad65e4e35291d2de9c025"
checksum = "feb5c238d27e2bf94ffdfd27b2c29e3df4a68c4193bb6427384259e2bf191967"
dependencies = [
 "autocfg",
 "futures-core",
 "futures-task",
 "pin-project-lite",


@@ 722,9 727,9 @@ dependencies = [

[[package]]
name = "getrandom"
version = "0.2.2"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8"
checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753"
dependencies = [
 "cfg-if",
 "libc",


@@ 733,18 738,19 @@ dependencies = [

[[package]]
name = "git-testament"
version = "0.1.9"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60f131003265744033e147a3b1614cf953edc315d3350377442d8ad3df699103"
checksum = "096cb9c8aa6f1924d079bf417f1d1685286958ff362fa58ae4d65a53ffec6c02"
dependencies = [
 "git-testament-derive",
 "no-std-compat",
]

[[package]]
name = "git-testament-derive"
version = "0.1.10"
version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "526ad4c79ca35ec046176e89787409f1d75d9cd51fa9258c01ca206d4fba9340"
checksum = "45ceded7b01141664c3fc4a50199c408a6ed247e6c8415dc005e895f1d233374"
dependencies = [
 "chrono",
 "log",


@@ 768,9 774,9 @@ dependencies = [

[[package]]
name = "h2"
version = "0.3.2"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc018e188373e2777d0ef2467ebff62a08e66c3f5857b23c8fbec3018210dc00"
checksum = "825343c4eef0b63f541f8903f395dc5beb362a979b5799a84062527ef1e37726"
dependencies = [
 "bytes",
 "fnv",


@@ 793,15 799,18 @@ checksum = "62aca2aba2d62b4a7f5b33f3712cb1b0692779a56fb510499d5c0aa594daeaf3"

[[package]]
name = "hashbrown"
version = "0.9.1"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04"
checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
dependencies = [
 "ahash",
]

[[package]]
name = "hermit-abi"
version = "0.1.18"
version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c"
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
dependencies = [
 "libc",
]


@@ 819,9 828,9 @@ dependencies = [

[[package]]
name = "http-body"
version = "0.4.1"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5dfb77c123b4e2f72a2069aeae0b4b4949cc7e966df277813fc16347e7549737"
checksum = "60daa14be0e0786db0f03a9e57cb404c9d756eed2b6c62b9ea98ec5743ec75a9"
dependencies = [
 "bytes",
 "http",


@@ 830,21 839,21 @@ dependencies = [

[[package]]
name = "httparse"
version = "1.3.6"
version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bc35c995b9d93ec174cf9a27d425c7892722101e14993cd227fdb51d70cf9589"
checksum = "f3a87b616e37e93c22fb19bcd386f02f3af5ea98a25670ad0fce773de23c5e68"

[[package]]
name = "httpdate"
version = "0.3.2"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47"
checksum = "6456b8a6c8f33fee7d958fcd1b60d55b11940a79e63ae87013e6d22e26034440"

[[package]]
name = "hyper"
version = "0.14.5"
version = "0.14.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8bf09f61b52cfcf4c00de50df88ae423d6c02354e385a86341133b5338630ad1"
checksum = "7728a72c4c7d72665fde02204bcbd93b247721025b222ef78606f14513e0fd03"
dependencies = [
 "bytes",
 "futures-channel",


@@ 856,7 865,7 @@ dependencies = [
 "httparse",
 "httpdate",
 "itoa",
 "pin-project",
 "pin-project-lite",
 "socket2",
 "tokio",
 "tower-service",


@@ 866,9 875,9 @@ dependencies = [

[[package]]
name = "idna"
version = "0.2.2"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "89829a5d69c23d348314a7ac337fe39173b61149a9864deabd260983aed48c21"
checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
dependencies = [
 "matches",
 "unicode-bidi",


@@ 877,9 886,9 @@ dependencies = [

[[package]]
name = "indexmap"
version = "1.6.2"
version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "824845a0bf897a9042383849b02c1bc219c2383772efcd5c6f9766fa4b81aef3"
checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5"
dependencies = [
 "autocfg",
 "hashbrown",


@@ 887,9 896,9 @@ dependencies = [

[[package]]
name = "instant"
version = "0.1.9"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec"
checksum = "bee0328b1209d157ef001c94dd85b4f8f64139adb0eac2659f4b08382b2f474d"
dependencies = [
 "cfg-if",
]


@@ 905,9 914,9 @@ dependencies = [

[[package]]
name = "itertools"
version = "0.10.0"
version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37d572918e350e82412fe766d24b15e6682fb2ed2bbe018280caa810397cb319"
checksum = "69ddb889f9d0d08a67338271fa9b62996bc788c7796a5c18cf057420aaed5eaf"
dependencies = [
 "either",
]


@@ 920,18 929,18 @@ checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"

[[package]]
name = "jobserver"
version = "0.1.21"
version = "0.1.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c71313ebb9439f74b00d9d2dcec36440beaf57a6aa0623068441dd7cd81a7f2"
checksum = "972f5ae5d1cb9c6ae417789196c803205313edde988685da5e3aae0827b9e7fd"
dependencies = [
 "libc",
]

[[package]]
name = "js-sys"
version = "0.3.50"
version = "0.3.51"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2d99f9e3e84b8f67f846ef5b4cbbc3b1c29f6c759fcbce6f01aa0e73d932a24c"
checksum = "83bdfbace3a0e81a4253f73b49e960b053e396a11012cbd49b9b74d6a2b67062"
dependencies = [
 "wasm-bindgen",
]


@@ 953,7 962,6 @@ dependencies = [
 "chrono",
 "criterion",
 "csv",
 "ct-logs",
 "flate2",
 "futures-delay-queue",
 "futures-lite",


@@ 984,7 992,7 @@ dependencies = [
 "tracing-attributes",
 "tracing-futures",
 "tracing-subscriber",
 "webpki",
 "webpki 0.22.0",
 "zstd",
]



@@ 1005,15 1013,15 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"

[[package]]
name = "libc"
version = "0.2.93"
version = "0.2.98"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9385f66bf6105b241aa65a61cb923ef20efc665cb9f9bb50ac2f0c4b7f378d41"
checksum = "320cfe77175da3a483efed4bc0adc1968ca050b098ce4f2f1c13a56626128790"

[[package]]
name = "lock_api"
version = "0.4.3"
version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a3c91c24eae6777794bb1997ad98bbb87daf92890acab859f7eaa4320333176"
checksum = "0382880606dff6d15c9476c416d18690b72742aa7b605bb6dd6ec9030fbf07eb"
dependencies = [
 "scopeguard",
]


@@ 1045,15 1053,15 @@ checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"

[[package]]
name = "memchr"
version = "2.3.4"
version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
checksum = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc"

[[package]]
name = "memoffset"
version = "0.6.3"
version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f83fb6581e8ed1f85fd45c116db8405483899489e38406156c25eb743554361d"
checksum = "59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9"
dependencies = [
 "autocfg",
]


@@ 1070,9 1078,9 @@ dependencies = [

[[package]]
name = "mio"
version = "0.7.11"
version = "0.7.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf80d3e903b34e0bd7282b218398aec54e082c840d9baf8339e0080a0c542956"
checksum = "8c2bdb6314ec10835cd3293dd268473a835c02b7b352e788be788b3c6ca6bb16"
dependencies = [
 "libc",
 "log",


@@ 1091,28 1099,25 @@ dependencies = [
]

[[package]]
name = "nb-connect"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a19900e7eee95eb2b3c2e26d12a874cc80aaf750e31be6fcbe743ead369fa45d"
dependencies = [
 "libc",
 "socket2",
]

[[package]]
name = "nix"
version = "0.20.0"
version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fa9b4819da1bc61c0ea48b63b7bc8604064dd43013e7cc325df098d49cd7c18a"
checksum = "cf1e25ee6b412c2a1e3fcb6a4499a5c1bfe7f43e014bdce9a6b6666e5aa2d187"
dependencies = [
 "bitflags",
 "cc",
 "cfg-if",
 "libc",
 "memoffset",
]

[[package]]
name = "no-std-compat"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c"

[[package]]
name = "ntapi"
version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 1152,9 1157,9 @@ dependencies = [

[[package]]
name = "once_cell"
version = "1.7.2"
version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af8b08b04175473088b46763e51ee54da5f9a164bc162f615b91bc179dbf15a3"
checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56"

[[package]]
name = "oorandom"


@@ 1170,15 1175,15 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"

[[package]]
name = "openssl-probe"
version = "0.1.2"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a"

[[package]]
name = "packed_struct"
version = "0.5.0"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cea50f42bba10123bd78c09425cf34369710399d18d16f73ff8a9cf00dba070d"
checksum = "08033303454e0de627fc47aa039f622116a32d51addaec1b89acc4ccd2d14ee1"
dependencies = [
 "packed_struct_codegen",
 "serde",


@@ 1186,9 1191,9 @@ dependencies = [

[[package]]
name = "packed_struct_codegen"
version = "0.5.0"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aaaf71038d56e38aec6ab9f254737eb37450f97b7fba349fe1e3dfe6c1a68db4"
checksum = "c85c2990633a4176cb730b76d15eb9fbdf575556ed1fc60eb6ca354c024b5ead"
dependencies = [
 "proc-macro2",
 "quote",


@@ 1234,18 1239,18 @@ checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"

[[package]]
name = "pin-project"
version = "1.0.6"
version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bc174859768806e91ae575187ada95c91a29e96a98dc5d2cd9a1fed039501ba6"
checksum = "c7509cc106041c40a4518d2af7a61530e1eed0e6285296a3d8c5472806ccc4a4"
dependencies = [
 "pin-project-internal",
]

[[package]]
name = "pin-project-internal"
version = "1.0.6"
version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a490329918e856ed1b083f244e3bfe2d8c4f336407e4ea9e1a9f479ff09049e5"
checksum = "48c950132583b500556b1efd71d45b319029f2b71518d979fcc208e16b42426f"
dependencies = [
 "proc-macro2",
 "quote",


@@ 1254,9 1259,9 @@ dependencies = [

[[package]]
name = "pin-project-lite"
version = "0.2.6"
version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc0e1f259c92177c30a4c9d177246edd0a3568b25756a977d0632cf8fa37e905"
checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443"

[[package]]
name = "pin-utils"


@@ 1266,9 1271,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"

[[package]]
name = "plotters"
version = "0.3.0"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "45ca0ae5f169d0917a7c7f5a9c1a3d3d9598f18f529dd2b8373ed988efea307a"
checksum = "32a3fd9ec30b9749ce28cd91f255d569591cdf937fe280c312143e3c4bad6f2a"
dependencies = [
 "num-traits",
 "plotters-backend",


@@ 1279,29 1284,29 @@ dependencies = [

[[package]]
name = "plotters-backend"
version = "0.3.0"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b07fffcddc1cb3a1de753caa4e4df03b79922ba43cf882acc1bdd7e8df9f4590"
checksum = "d88417318da0eaf0fdcdb51a0ee6c3bed624333bff8f946733049380be67ac1c"

[[package]]
name = "plotters-svg"
version = "0.3.0"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b38a02e23bd9604b842a812063aec4ef702b57989c37b655254bb61c471ad211"
checksum = "521fa9638fa597e1dc53e9412a4f9cefb01187ee1f7413076f9e6749e2885ba9"
dependencies = [
 "plotters-backend",
]

[[package]]
name = "polling"
version = "2.0.3"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fc12d774e799ee9ebae13f4076ca003b40d18a11ac0f3641e6f899618580b7b"
checksum = "92341d779fa34ea8437ef4d82d440d5e1ce3f3ff7f824aa64424cd481f9a1f25"
dependencies = [
 "cfg-if",
 "libc",
 "log",
 "wepoll-sys",
 "wepoll-ffi",
 "winapi",
]



@@ 1313,9 1318,9 @@ checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"

[[package]]
name = "proc-macro2"
version = "1.0.26"
version = "1.0.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec"
checksum = "f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038"
dependencies = [
 "unicode-xid",
]


@@ 1331,7 1336,7 @@ dependencies = [
 "byteorder",
 "lazy_static",
 "num-traits",
 "quick-error 2.0.0",
 "quick-error 2.0.1",
 "rand",
 "rand_chacha",
 "rand_xorshift",


@@ 1342,18 1347,18 @@ dependencies = [

[[package]]
name = "ptr_meta"
version = "0.1.2"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6de4703776ff261fe3cbf05c8781f129b284e57ee35a785fe6c92b1dcf93a612"
checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1"
dependencies = [
 "ptr_meta_derive",
]

[[package]]
name = "ptr_meta_derive"
version = "0.1.2"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53005b9863728f508d3f23ae37e03d60986a01b65f7ae8397dcebaa1d5e54e10"
checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac"
dependencies = [
 "proc-macro2",
 "quote",


@@ 1368,9 1373,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"

[[package]]
name = "quick-error"
version = "2.0.0"
version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ac73b1112776fc109b2e61909bc46c7e1bf0d7f690ffb1676553acce16d5cda"
checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3"

[[package]]
name = "quote"


@@ 1383,9 1388,9 @@ dependencies = [

[[package]]
name = "rand"
version = "0.8.3"
version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e"
checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8"
dependencies = [
 "libc",
 "rand_chacha",


@@ 1395,9 1400,9 @@ dependencies = [

[[package]]
name = "rand_chacha"
version = "0.3.0"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d"
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
dependencies = [
 "ppv-lite86",
 "rand_core",


@@ 1405,18 1410,18 @@ dependencies = [

[[package]]
name = "rand_core"
version = "0.6.2"
version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7"
checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
dependencies = [
 "getrandom",
]

[[package]]
name = "rand_hc"
version = "0.3.0"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73"
checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7"
dependencies = [
 "rand_core",
]


@@ 1432,9 1437,9 @@ dependencies = [

[[package]]
name = "rayon"
version = "1.5.0"
version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674"
checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90"
dependencies = [
 "autocfg",
 "crossbeam-deque",


@@ 1444,9 1449,9 @@ dependencies = [

[[package]]
name = "rayon-core"
version = "1.9.0"
version = "1.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a"
checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e"
dependencies = [
 "crossbeam-channel",
 "crossbeam-deque",


@@ 1457,9 1462,9 @@ dependencies = [

[[package]]
name = "redis"
version = "0.20.0"
version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eeb8f8d059ead7805e171fc22de8348a3d611c0f985aaa4f5cf6c0dfc7645407"
checksum = "3bbc1838d8d0b423f325d6fac80c5f19109c7d16c8c37c584893dc17cf71c63d"
dependencies = [
 "async-trait",
 "combine",


@@ 1472,37 1477,36 @@ dependencies = [

[[package]]
name = "redox_syscall"
version = "0.2.5"
version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9"
checksum = "5ab49abadf3f9e1c4bc499e8845e152ad87d2ad2d30371841171169e9d75feee"
dependencies = [
 "bitflags",
]

[[package]]
name = "regex"
version = "1.4.5"
version = "1.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "957056ecddbeba1b26965114e191d2e8589ce74db242b6ea25fc4062427a5c19"
checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
dependencies = [
 "regex-syntax",
]

[[package]]
name = "regex-automata"
version = "0.1.9"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae1ded71d66a4a97f5e961fd0cb25a5f366a42a41570d16a763a69c092c26ae4"
checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
dependencies = [
 "byteorder",
 "regex-syntax",
]

[[package]]
name = "regex-syntax"
version = "0.6.23"
version = "0.6.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24d5f089152e60f62d28b835fbff2cd2e8dc0baf1ac13343bef92ab7eed84548"
checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"

[[package]]
name = "remove_dir_all"


@@ 1514,6 1518,15 @@ dependencies = [
]

[[package]]
name = "rend"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "90b1d060a116ee1cf2522965825bed81136d04df7c731e211cd46dbd1107eab1"
dependencies = [
 "bytecheck",
]

[[package]]
name = "retainer"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 1542,22 1555,23 @@ dependencies = [

[[package]]
name = "rkyv"
version = "0.5.1"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2f181406deb3d7bd6c889cc40cee48ec95503dc96981a18979bda28c3f5f3fc6"
checksum = "a5ff2771781b46ba9258c162626cbd77e7873d268130b765d96acda471668167"
dependencies = [
 "bytecheck",
 "memoffset",
 "hashbrown",
 "ptr_meta",
 "rend",
 "rkyv_derive",
 "seahash",
]

[[package]]
name = "rkyv_derive"
version = "0.5.1"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8460ab714767ced2855344a673d49a7fddc5066fd0ee368ce40a6425c4d774f8"
checksum = "3c3234a24ab92001174e8387816597008694cd842c33bfabf194414d4989677c"
dependencies = [
 "proc-macro2",
 "quote",


@@ 1566,24 1580,24 @@ dependencies = [

[[package]]
name = "rustc_version"
version = "0.2.3"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
dependencies = [
 "semver",
]

[[package]]
name = "rustls"
version = "0.19.0"
version = "0.19.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "064fd21ff87c6e87ed4506e68beb42459caa4a0e2eb144932e6776768556980b"
checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7"
dependencies = [
 "base64",
 "log",
 "ring",
 "sct",
 "webpki",
 "webpki 0.21.4",
]

[[package]]


@@ 1659,9 1673,9 @@ checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"

[[package]]
name = "security-framework"
version = "2.2.0"
version = "2.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3670b1d2fdf6084d192bc71ead7aabe6c06aa2ea3fbd9cc3ac111fa5c2b1bd84"
checksum = "23a2ac85147a3a11d77ecf1bc7166ec0b92febfa4461c37944e180f319ece467"
dependencies = [
 "bitflags",
 "core-foundation",


@@ 1672,9 1686,9 @@ dependencies = [

[[package]]
name = "security-framework-sys"
version = "2.2.0"
version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3676258fd3cfe2c9a0ec99ce3038798d847ce3e4bb17746373eb9f0f1ac16339"
checksum = "7e4effb91b4b8b6fb7732e670b6cee160278ff8e6bf485c7805d9e319d76e284"
dependencies = [
 "core-foundation-sys",
 "libc",


@@ 1682,24 1696,15 @@ dependencies = [

[[package]]
name = "semver"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
dependencies = [
 "semver-parser",
]

[[package]]
name = "semver-parser"
version = "0.7.0"
version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
checksum = "5f3aac57ee7f3272d8395c6e4f502f434f0e289fcd62876f70daa008c20dcabe"

[[package]]
name = "serde"
version = "1.0.125"
version = "1.0.126"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "558dc50e1a5a5fa7112ca2ce4effcb321b0300c0d4ccf0776a9f60cd89031171"
checksum = "ec7505abeacaec74ae4778d9d9328fe5a5d04253220a85c4ee022239fc996d03"
dependencies = [
 "serde_derive",
]


@@ 1716,9 1721,9 @@ dependencies = [

[[package]]
name = "serde_derive"
version = "1.0.125"
version = "1.0.126"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b093b7a2bb58203b5da3056c05b4ec1fed827dcfdb37347a8841695263b3d06d"
checksum = "963a7dbc9895aeac7ac90e74f34a5d5261828f79df35cbed41e10189d3804d43"
dependencies = [
 "proc-macro2",
 "quote",


@@ 1744,13 1749,13 @@ checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d"

[[package]]
name = "sha2"
version = "0.9.3"
version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fa827a14b29ab7f44778d14a88d3cb76e949c45083f7dbfa507d0cb699dc12de"
checksum = "b362ae5752fd2137731f9fa25fd4d9058af34666ca1966fb969119cc35719f12"
dependencies = [
 "block-buffer",
 "cfg-if",
 "cpuid-bool",
 "cpufeatures",
 "digest",
 "opaque-debug",
]


@@ 1766,9 1771,9 @@ dependencies = [

[[package]]
name = "signal-hook"
version = "0.3.8"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef33d6d0cd06e0840fba9985aab098c147e67e05cee14d412d3345ed14ff30ac"
checksum = "470c5a6397076fae0094aaf06a08e6ba6f37acb77d3b1b91ea92b4d6c8650c39"
dependencies = [
 "libc",
 "signal-hook-registry",


@@ 1776,18 1781,18 @@ dependencies = [

[[package]]
name = "signal-hook-registry"
version = "1.3.0"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16f1d0fef1604ba8f7a073c7e701f213e056707210e9020af4528e0101ce11a6"
checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0"
dependencies = [
 "libc",
]

[[package]]
name = "slab"
version = "0.4.2"
version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
checksum = "f173ac3d1a7e3b28003f40de0b5ce7fe2710f9b9dc3fc38664cebee46b3b6527"

[[package]]
name = "smallvec"


@@ 1831,9 1836,9 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"

[[package]]
name = "syn"
version = "1.0.69"
version = "1.0.73"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "48fe99c6bd8b1cc636890bcc071842de909d902c81ac7dab53ba33c421ab8ffb"
checksum = "f71489ff30030d2ae598524f61326b902466f72a0fb1a8564c001cc63425bcc7"
dependencies = [
 "proc-macro2",
 "quote",


@@ 1894,9 1899,9 @@ dependencies = [

[[package]]
name = "tinyvec"
version = "1.2.0"
version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b5220f05bb7de7f3f53c7c065e1199b3172696fe2db9f9c4d8ad9b4ee74c342"
checksum = "4ac2e1d4bd0f75279cfd5a076e0d578bbf02c22b7c39e766c437dd49b3ec43e0"
dependencies = [
 "tinyvec_macros",
]


@@ 1909,9 1914,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"

[[package]]
name = "tokio"
version = "1.4.0"
version = "1.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "134af885d758d645f0f0505c9a8b3f9bf8a348fd822e112ab5248138348f1722"
checksum = "c2602b8af3767c285202012822834005f596c811042315fa7e9f5b12b2a43207"
dependencies = [
 "autocfg",
 "bytes",


@@ 1919,13 1924,14 @@ dependencies = [
 "memchr",
 "mio",
 "pin-project-lite",
 "winapi",
]

[[package]]
name = "tokio-util"
version = "0.6.5"
version = "0.6.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5143d049e85af7fbc36f5454d990e62c2df705b3589f123b71f441b6b59f443f"
checksum = "1caa0b0c8d94a049db56b5acf8cba99dc0623aab1b26d5b5f5e2d945846b3592"
dependencies = [
 "bytes",
 "futures-core",


@@ 1952,9 1958,9 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6"

[[package]]
name = "tracing"
version = "0.1.25"
version = "0.1.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "01ebdc2bb4498ab1ab5f5b73c5803825e60199229ccba0698170e3be0e7f959f"
checksum = "09adeb8c97449311ccd28a427f96fb563e7fd31aabf994189879d9da2394b89d"
dependencies = [
 "cfg-if",
 "pin-project-lite",


@@ 1975,9 1981,9 @@ dependencies = [

[[package]]
name = "tracing-core"
version = "0.1.17"
version = "0.1.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f50de3927f93d202783f4513cda820ab47ef17f624b03c096e86ef00c67e6b5f"
checksum = "a9ff14f98b1a4b289c6248a023c1c2fa1491062964e9fed67ab29c4e4da4a052"
dependencies = [
 "lazy_static",
]


@@ 2015,9 2021,9 @@ dependencies = [

[[package]]
name = "tracing-subscriber"
version = "0.2.17"
version = "0.2.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "705096c6f83bf68ea5d357a6aa01829ddbdac531b357b45abeca842938085baa"
checksum = "ab69019741fca4d98be3c62d2b75254528b5432233fd8a4d2739fec20278de48"
dependencies = [
 "ansi_term",
 "chrono",


@@ 2058,9 2064,9 @@ dependencies = [

[[package]]
name = "unicode-normalization"
version = "0.1.17"
version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "07fbfce1c8a97d547e8b5334978438d9d6ec8c20e38f56d4a4374d181493eaef"
checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9"
dependencies = [
 "tinyvec",
]


@@ 2073,9 2079,9 @@ checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"

[[package]]
name = "unicode-xid"
version = "0.2.1"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"

[[package]]
name = "untrusted"


@@ 2085,9 2091,9 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"

[[package]]
name = "url"
version = "2.2.1"
version = "2.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ccd964113622c8e9322cfac19eb1004a07e636c545f325da085d5cdde6f1f8b"
checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c"
dependencies = [
 "form_urlencoded",
 "idna",


@@ 2097,20 2103,15 @@ dependencies = [

[[package]]
name = "value-bag"
version = "1.0.0-alpha.6"
version = "1.0.0-alpha.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6b676010e055c99033117c2343b33a40a30b91fecd6c49055ac9cd2d6c305ab1"
checksum = "dd320e1520f94261153e96f7534476ad869c14022aee1e59af7c778075d840ae"
dependencies = [
 "ctor",
 "version_check",
]

[[package]]
name = "vec-arena"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34b2f665b594b07095e3ac3f718e13c2197143416fae4c5706cffb7b1af8d7f1"

[[package]]
name = "version_check"
version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 2160,9 2161,9 @@ checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"

[[package]]
name = "wasm-bindgen"
version = "0.2.73"
version = "0.2.74"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "83240549659d187488f91f33c0f8547cbfef0b2088bc470c116d1d260ef623d9"
checksum = "d54ee1d4ed486f78874278e63e4069fc1ab9f6a18ca492076ffb90c5eb2997fd"
dependencies = [
 "cfg-if",
 "wasm-bindgen-macro",


@@ 2170,9 2171,9 @@ dependencies = [

[[package]]
name = "wasm-bindgen-backend"
version = "0.2.73"
version = "0.2.74"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae70622411ca953215ca6d06d3ebeb1e915f0f6613e3b495122878d7ebec7dae"
checksum = "3b33f6a0694ccfea53d94db8b2ed1c3a8a4c86dd936b13b9f0a15ec4a451b900"
dependencies = [
 "bumpalo",
 "lazy_static",


@@ 2185,9 2186,9 @@ dependencies = [

[[package]]
name = "wasm-bindgen-futures"
version = "0.4.23"
version = "0.4.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81b8b767af23de6ac18bf2168b690bed2902743ddf0fb39252e36f9e2bfc63ea"
checksum = "5fba7978c679d53ce2d0ac80c8c175840feb849a161664365d1287b41f2e67f1"
dependencies = [
 "cfg-if",
 "js-sys",


@@ 2197,9 2198,9 @@ dependencies = [

[[package]]
name = "wasm-bindgen-macro"
version = "0.2.73"
version = "0.2.74"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3e734d91443f177bfdb41969de821e15c516931c3c3db3d318fa1b68975d0f6f"
checksum = "088169ca61430fe1e58b8096c24975251700e7b1f6fd91cc9d59b04fb9b18bd4"
dependencies = [
 "quote",
 "wasm-bindgen-macro-support",


@@ 2207,9 2208,9 @@ dependencies = [

[[package]]
name = "wasm-bindgen-macro-support"
version = "0.2.73"
version = "0.2.74"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d53739ff08c8a68b0fdbcd54c372b8ab800b1449ab3c9d706503bc7dd1621b2c"
checksum = "be2241542ff3d9f241f5e2cb6dd09b37efe786df8851c54957683a49f0987a97"
dependencies = [
 "proc-macro2",
 "quote",


@@ 2220,15 2221,15 @@ dependencies = [

[[package]]
name = "wasm-bindgen-shared"
version = "0.2.73"
version = "0.2.74"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9a543ae66aa233d14bb765ed9af4a33e81b8b58d1584cf1b47ff8cd0b9e4489"
checksum = "d7cff876b8f18eed75a66cf49b65e7f967cb354a7aa16003fb55dbfd25b44b4f"

[[package]]
name = "web-sys"
version = "0.3.50"
version = "0.3.51"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a905d57e488fec8861446d3393670fb50d27a262344013181c2cdf9fff5481be"
checksum = "e828417b379f3df7111d3a2a9e5753706cae29c41f7c4029ee9fd77f3e09e582"
dependencies = [
 "js-sys",
 "wasm-bindgen",


@@ 2245,10 2246,20 @@ dependencies = [
]

[[package]]
name = "wepoll-sys"
version = "3.0.1"
name = "webpki"
version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd"
dependencies = [
 "ring",
 "untrusted",
]

[[package]]
name = "wepoll-ffi"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fcb14dea929042224824779fbc82d9fab8d2e6d3cbc0ac404de8edf489e77ff"
checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb"
dependencies = [
 "cc",
]


@@ 2286,18 2297,18 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"

[[package]]
name = "zstd"
version = "0.7.0+zstd.1.4.9"
version = "0.9.0+zstd.1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9428752481d8372e15b1bf779ea518a179ad6c771cca2d2c60e4fbff3cc2cd52"
checksum = "07749a5dc2cb6b36661290245e350f15ec3bbb304e493db54a1d354480522ccd"
dependencies = [
 "zstd-safe",
]

[[package]]
name = "zstd-safe"
version = "3.1.0+zstd.1.4.9"
version = "4.1.1+zstd.1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5aa1926623ad7fe406e090555387daf73db555b948134b4d73eac5eb08fb666d"
checksum = "c91c90f2c593b003603e5e0493c837088df4469da25aafff8bce42ba48caf079"
dependencies = [
 "libc",
 "zstd-sys",


@@ 2305,9 2316,9 @@ dependencies = [

[[package]]
name = "zstd-sys"
version = "1.5.0+zstd.1.4.9"
version = "1.6.1+zstd.1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4e6c094340240369025fc6b731b054ee2a834328fa584310ac96aa4baebdc465"
checksum = "615120c7a2431d16cf1cf979e7fc31ba7a5b5e5707b29c8a99e5dbf8a8392a33"
dependencies = [
 "cc",
 "libc",

M Cargo.toml => Cargo.toml +10 -11
@@ 22,25 22,24 @@ async-net = "1.5"
async-rustls = "0.2"
async-trait = "0.1"
async-io = "1.3"
bytecheck = "0.4"
bytecheck = "0.6"
byteorder = "1.3"
bytes = "1.0"
ct-logs = "0.8"
chrono = "0.4"
flate2 = "1.0"
futures-lite = "1.11"
git-testament = "0.1"
git-testament = "0.2"
http = "0.2.1"
hyper = { version = "0.14", default-features = false, features = ["client", "http1", "http2", "stream", "tcp"] }
lazy_static = "1.4"
libc = "0.2"
nix = "0.20"
packed_struct = "0.5"
packed_struct_codegen = "0.5"
nix = "0.22"
packed_struct = "0.6"
packed_struct_codegen = "0.6"
rand = "0.8"
redis = { version = "0.20", default-features = false, features = ["script"] } # disable redis async
redis = { version = "0.21", default-features = false, features = ["script"] } # disable redis async
retainer = "0.2"
rkyv = { version = "0.5.1", features = ["validation"] }
rkyv = { version = "0.7.3", features = ["validation"] }
rustls = "0.19"
rustls-native-certs = "0.5"
scopeguard = "1.1"


@@ 54,13 53,13 @@ tracing = "0.1"
tracing-attributes = "0.1"
tracing-futures = "0.2"
tracing-subscriber = "0.2"
webpki = "0.21"
zstd = "0.7"
webpki = "0.22"
zstd = "0.9"

[dev-dependencies]
criterion = { version = "0.3", features = ["html_reports"] } # for benchmarks
csv = "1.1" # for examples/update_specs
futures-delay-queue = "0.4" # for benchmarks
futures-delay-queue = "0.5" # for benchmarks
proptest = "1.0" # for property tests
tempfile = "3" # for benchmarks


M examples/update_specs.rs => examples/update_specs.rs +1 -1
@@ 133,7 133,7 @@ fn generate_enums_rs(

        enumsfile.write(format!("#[repr({})]\n", section.DataType).as_bytes())?;
        enumsfile.write(b"#[derive(Archive, Deserialize, Serialize, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]\n")?;
        enumsfile.write(b"#[archive(derive(CheckBytes))]\n")?;
        enumsfile.write(b"#[archive_attr(derive(CheckBytes))]\n")?;
        enumsfile.write(format!("pub enum {} {{\n", section.EnumName).as_bytes())?;
        for entry in &entries {
            if entry.doc {

M src/cache/redis.rs => src/cache/redis.rs +24 -10
@@ 6,8 6,8 @@ use async_trait::async_trait;
use bytes::BytesMut;
use lazy_static::lazy_static;
use redis::{self, IntoConnectionInfo};
use rkyv::{Deserialize, Fallible, de::deserializers::AllocDeserializer};
use rkyv::ser::Serializer;
use rkyv::{Deserialize, Fallible, Infallible};
use rkyv::ser::{ScratchSpace, Serializer};
use tracing::{debug, info, trace, warn};

use crate::cache::DnsCache;


@@ 24,6 24,7 @@ lazy_static! {
pub struct Cache {
    redis_conn: redis::Connection,
    store_buf: BytesMut,
    scratch_buf: BytesMut,
}

impl Cache {


@@ 46,6 47,7 @@ impl Cache {
            redis_conn,
            // Set up a reasonable allocation - will expand automatically if needed.
            store_buf: BytesMut::with_capacity(1024),
            scratch_buf: BytesMut::with_capacity(1024),
        })
    }



@@ 93,8 95,7 @@ impl DnsCache for Cache {
                            Ok(None)
                        },
                        Ok(archived) => {
                            let mut deserializer = AllocDeserializer;
                            let mut redis_response = archived.deserialize(&mut deserializer)?;
                            let mut redis_response = archived.deserialize(&mut Infallible)?;
                            debug!("Cached response for cache_key='{}': (ttl={:?}, bytes={:?}) {}", cache_key, redis_ttl, bytes.len(), redis_response);

                            if let Err(e) = message::update_cached_response(&mut redis_response, &request_info, redis_ttl) {


@@ 152,7 153,7 @@ impl DnsCache for Cache {
            Some(response_min_ttl_secs) => {
                // Serialize message data
                {
                    let mut serializer = BytesMutSerializer::new(&mut self.store_buf);
                    let mut serializer = BytesMutSerializer::new(&mut self.store_buf, &mut self.scratch_buf);
                    serializer.serialize_value(&response)?;
                }



@@ 186,12 187,13 @@ impl DnsCache for Cache {

/// Custom rkyv serializer type for interating with BytesMut
struct BytesMutSerializer<'a> {
    inner: &'a mut BytesMut,
    store: &'a mut BytesMut,
    scratch: rkyv::ser::serializers::BufferScratch<&'a mut BytesMut>,
}

impl <'a> BytesMutSerializer<'a> {
    pub fn new(inner: &'a mut BytesMut) -> Self {
        Self { inner }
    pub fn new(store: &'a mut BytesMut, scratch: &'a mut BytesMut) -> Self {
        Self { store, scratch: rkyv::ser::serializers::BufferScratch::new(scratch) }
    }
}



@@ 201,11 203,23 @@ impl <'a> Fallible for BytesMutSerializer<'a> {

impl <'a> Serializer for BytesMutSerializer<'a> {
    fn pos(&self) -> usize {
        self.inner.len()
        self.store.len()
    }

    fn write(&mut self, bytes: &[u8]) -> Result<(), Self::Error> {
        self.inner.extend_from_slice(bytes);
        self.store.extend_from_slice(bytes);
        Ok(())
    }
}

impl <'a> ScratchSpace for BytesMutSerializer<'a> {
    unsafe fn push_scratch(&mut self, layout: core::alloc::Layout) -> Result<core::ptr::NonNull<[u8]>, Self::Error> {
        self.scratch.push_scratch(layout)
            .map_err(|e| std::io::Error::new(std::io::ErrorKind::InvalidData, e))
    }

    unsafe fn pop_scratch(&mut self, ptr: core::ptr::NonNull<u8>, layout: core::alloc::Layout) -> Result<(), Self::Error> {
        self.scratch.pop_scratch(ptr, layout)
            .map_err(|e| std::io::Error::new(std::io::ErrorKind::InvalidData, e))
    }
}

M src/hyper_smol.rs => src/hyper_smol.rs +9 -4
@@ 6,7 6,7 @@ use std::task::{Context, Poll};

use anyhow::{anyhow, bail, Context as _, Error, Result};
use async_lock::{Barrier, Mutex};
use async_rustls::TlsStream;
use async_rustls::{TlsStream, webpki::DNSNameRef};
use http::Uri;
use hyper::{Body, Client};
use smol::{io, prelude::*, Async, Task};


@@ 255,11 255,16 @@ impl hyper::service::Service<Uri> for SmolConnector {
                                    return Err(e).context("Failed to load native TLS cert store");
                                }
                            }
                            client_config.ct_logs = Some(&ct_logs::LOGS);
                            // Disabled for now: Was previously using ct-logs package, but bizarre API mismatches broke it.
                            client_config.ct_logs = None;
                            let connector =
                                async_rustls::TlsConnector::from(Arc::new(client_config));
                            if let Ok(dns_name) = webpki::DNSNameRef::try_from_ascii_str(host) {
                                let stream = connector.connect(dns_name, stream).await?;
                            if let Ok(dns_name) = webpki::DnsNameRef::try_from_ascii_str(host) {
                                // Convert new webpki::DnsNameRef (webpki 0.22) to old webpki::DNSNameRef (webpki 0.21) used by async-rustls
                                // See also https://github.com/smol-rs/async-rustls/blob/master/Cargo.toml
                                let dns_name_old: DNSNameRef = DNSNameRef::try_from_ascii(dns_name.as_ref())
                                    .expect("Converting new DnsNameRef to old DNSNameRef failed");
                                let stream = connector.connect(dns_name_old, stream).await?;
                                Ok(SmolStream::Tls(async_rustls::TlsStream::Client(stream)))
                            } else {
                                // Uh-oh, looks like we're trying to connect to an IP. Explain the issue with the underlying library and how to work around it.

M src/specs/enums_generated.rs => src/specs/enums_generated.rs +5 -5
@@ 3,7 3,7 @@ use rkyv::{Archive, Deserialize, Serialize};
use bytecheck::CheckBytes;
#[repr(u16)]
#[derive(Archive, Deserialize, Serialize, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub enum ResourceClass {

  /// Reserved [RFC6895]


@@ 54,7 54,7 @@ pub fn resourceclass_int(i: usize) -> Option<ResourceClass> {
}
#[repr(u16)]
#[derive(Archive, Deserialize, Serialize, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub enum ResourceType {

  /// [RFC6895]


@@ 447,7 447,7 @@ pub fn resourcetype_int(i: usize) -> Option<ResourceType> {
}
#[repr(u8)]
#[derive(Archive, Deserialize, Serialize, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub enum OpCode {

  /// Query [RFC1035]


@@ 488,7 488,7 @@ pub fn opcode_int(i: usize) -> Option<OpCode> {
}
#[repr(u16)]
#[derive(Archive, Deserialize, Serialize, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub enum ResponseCode {

  /// NoError: No Error [RFC1035]


@@ 597,7 597,7 @@ pub fn responsecode_int(i: usize) -> Option<ResponseCode> {
}
#[repr(u16)]
#[derive(Archive, Deserialize, Serialize, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub enum OPTOptionCode {

  /// Reserved [RFC6891]

M src/specs/message.rs => src/specs/message.rs +8 -8
@@ 12,7 12,7 @@ use std::net::{Ipv4Addr, Ipv6Addr};

/// A DNS message, either a request or a response.
#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct Message {
    pub header: Header,



@@ 51,7 51,7 @@ impl fmt::Display for Message {

/// Wrapper for an enum that can fall back to being an int.
#[derive(Archive, Deserialize, Serialize, Debug, Clone, Copy, PartialEq)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub enum IntEnum<T, E> {
    Enum(E),
    Unknown(T),


@@ 76,7 76,7 @@ pub enum IntEnum<T, E> {
// |                    ARCOUNT                    |
// +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct Header {
    /// Random request ID, 16 bits
    pub id: u16,


@@ 141,7 141,7 @@ impl fmt::Display for Header {

/// OPT rdata, serialized as an Additional Resource but represented here as root-level header data to simplify processing.
#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct OPT {
    /// EDNS(0) header values from [RFC6891]:



@@ 186,7 186,7 @@ impl fmt::Display for OPT {

/// An Option entry from OPT rdata.
#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct OPTOption {
    /// Assigned by the Expert Review process as defined by the DNSEXT
    /// working group and the IESG.


@@ 209,7 209,7 @@ pub struct OPTOption {
// |                     QCLASS                    |
// +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct Question {
    /// DNS name that this question is referring to, variable length
    pub name: String,


@@ 260,7 260,7 @@ impl fmt::Display for Question {
// /                                               /
// +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct Resource {
    /// DNS name that this resource is referring to, variable length
    pub name: String,


@@ 302,7 302,7 @@ impl fmt::Display for Resource {
/// If the Resource type is supported, the data is parsed into a message.
/// Otherwise it is provided in its original byte form via raw_data.
#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub enum ResourceData {
    /// If the resource type is unsupported, it's passed through in raw form.
    RawData(Vec<u8>),

M src/specs/rdata.rs => src/specs/rdata.rs +40 -40
@@ 2,7 2,7 @@ use bytecheck::CheckBytes;
use rkyv::{Archive, Serialize, Deserialize};

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct A {
  /// The first segment of an IPv4 address
  pub address1: u8,


@@ 15,7 15,7 @@ pub struct A {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct NS {
  /// A <domain-name> which specifies a host which should be
  /// authoritative for the specified class and domain.


@@ 23,7 23,7 @@ pub struct NS {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct CNAME {
  /// A <domain-name> which specifies the canonical or primary
  /// name for the owner.  The owner name is an alias.


@@ 31,7 31,7 @@ pub struct CNAME {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct SOA {
  /// The <domain-name> of the name server that was the
  /// original or primary source of data for this zone.


@@ 66,7 66,7 @@ pub struct SOA {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct PTR {
  /// A <domain-name> which points to some location in the
  /// domain name space.


@@ 74,7 74,7 @@ pub struct PTR {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct HINFO {
  /// A <character-string> which specifies the CPU type.
  pub cpu: Vec<u8>,


@@ 85,7 85,7 @@ pub struct HINFO {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct MX {
  /// A 16 bit integer which specifies the preference given to
  /// this RR among others at the same owner.  Lower values


@@ 98,21 98,21 @@ pub struct MX {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct TXT {
  /// One or more <character-string>s.
  pub entries: Vec<TXTEntry>,
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct TXTEntry {
  /// A <character-string>.
  pub data: Vec<u8>,
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct RP {
  /// The first field, <mbox-dname>, is a domain name that specifies the
  /// mailbox for the responsible person.  Its format in master files uses


@@ 133,7 133,7 @@ pub struct RP {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct AFSDB {
  ///  The <subtype> field is a 16 bit integer.
  pub subtype: u16,


@@ 144,7 144,7 @@ pub struct AFSDB {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct SIG {
  /// The type of the other RRs covered by this SIG.
  pub type_covered: u16,


@@ 180,7 180,7 @@ pub struct SIG {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct KEY {
  /// Flags for key type and what key should be used for.
  pub flags: u16, // 12 bit


@@ 196,7 196,7 @@ pub struct KEY {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct AAAA {
  /// The first segment of an IPv6 address
  pub address1: u16,


@@ 217,7 217,7 @@ pub struct AAAA {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct LOC {
  /// Version number of the representation.  This must be zero.
  pub version: u8,


@@ 257,7 257,7 @@ pub struct LOC {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct SRV {
  /// The priority of this target host.  A client MUST attempt to
  /// contact the target host with the lowest-numbered priority it can


@@ 281,7 281,7 @@ pub struct SRV {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct NAPTR {
  /// A 16-bit unsigned integer specifying the order in which the NAPTR
  /// records MUST be processed in order to accurately represent the


@@ 312,7 312,7 @@ pub struct NAPTR {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct KX {
  /// Specifies the preference given to this RR among other KX records
  /// at the same owner.  Lower values are preferred.


@@ 324,7 324,7 @@ pub struct KX {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct CERT {
  /// The type field is the certificate type as defined in RFC4398 2.1
  pub type_: u16,


@@ 341,7 341,7 @@ pub struct CERT {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct DNAME {
  /// Alias for a name and all its subnames, similar to CNAME which is
  /// exact match only.


@@ 352,14 352,14 @@ pub struct DNAME {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct APL {
  /// May have zero or more items
  pub item: Vec<APLItem>,
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct APLItem {
  /// 1 for IPv4, 2 for IPv6
  pub address_family: u16,


@@ 376,7 376,7 @@ pub struct APLItem {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct DS {
  /// The Key Tag field lists the key tag of the DNSKEY RR referred to by
  /// the DS record, in network byte order.


@@ 397,7 397,7 @@ pub struct DS {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct SSHFP {
  /// The algorithm of the public key, 0=reserved, 1=rsa, 2=dss
  pub algorithm: u8,


@@ 411,7 411,7 @@ pub struct SSHFP {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct IPSECKEY {
  /// Gateways listed in IPSECKEY records with lower precedence are to be
  /// attempted first.  Where there is a tie in precedence, the order


@@ 435,7 435,7 @@ pub struct IPSECKEY {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct RRSIG {
  /// The Type Covered field identifies the type of the RRset that is
  /// covered by this RRSIG record.


@@ 474,7 474,7 @@ pub struct RRSIG {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct NSEC {
  /// The Next Domain field contains the next owner name (in the canonical
  /// ordering of the zone) that has authoritative data or contains a


@@ 489,7 489,7 @@ pub struct NSEC {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct DNSKEY {
  /// Bit 7 of the Flags field is the Zone Key flag: 1 = zone, 0 = other
  /// Bit 15 of the Flags field is the Secure Entry Point flag, described


@@ 508,14 508,14 @@ pub struct DNSKEY {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct DHCID {
  /// Opaque DHCP data, to be interpreted by DHCP clients and servers
  pub dhcp_data: Vec<u8>,
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct NSEC3 {
  /// The Hash Algorithm field identifies the cryptographic hash algorithm
  /// used to construct the hash-value.


@@ 544,7 544,7 @@ pub struct NSEC3 {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct NSEC3PARAM {
  /// The Hash Algorithm field identifies the cryptographic hash algorithm
  /// used to construct the hash-value.


@@ 565,7 565,7 @@ pub struct NSEC3PARAM {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct TLSA {
  /// Specifies the provided association that will be used to match the
  /// certificate presented in the TLS handshake.


@@ 583,7 583,7 @@ pub struct TLSA {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct SMIMEA {
  /// The SMIMEA wire format and presentation format are the same as for
  /// the TLSA record as described in Section 2.1 of [RFC6698].


@@ 604,7 604,7 @@ pub struct SMIMEA {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct HIP {
  /// The PK cryptographic algorithm and the implied Public Key field format.
  pub public_key_algorithm: u8,


@@ 621,7 621,7 @@ pub struct HIP {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct OPENPGPKEY {
  /// The RDATA portion of an OPENPGPKEY resource record contains a single
  /// value consisting of a Transferable Public Key formatted as specified


@@ 630,7 630,7 @@ pub struct OPENPGPKEY {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct CSYNC {
  /// A copy of the 32-bit SOA serial number from the child zone.
  pub soa_serial: u32,


@@ 643,7 643,7 @@ pub struct CSYNC {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct TKEY {
  /// The algorithm name is in the form of a domain name with the same
  /// meaning as in [RFC 2845].


@@ 670,7 670,7 @@ pub struct TKEY {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct TSIG {
  /// Name of the algorithm in domain name syntax.
  pub algorithm_name: String,


@@ 689,7 689,7 @@ pub struct TSIG {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct URI {
  /// A client MUST attempt to contact the URI with the lowest-numbered
  /// priority it can reach, URIs with the same priority SHOULD be


@@ 707,7 707,7 @@ pub struct URI {
}

#[derive(Archive, Deserialize, Serialize, Clone)]
#[archive(derive(CheckBytes))]
#[archive_attr(derive(CheckBytes))]
pub struct CAA {
  /// Issuer critical flag at bit 0, all others reserved for future use.
  pub flags: u8,