├── .github ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── dependabot.yml └── workflows │ └── ci.yaml ├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── README.md └── src └── main.rs /.github/CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | 2 | # Contributor Covenant Code of Conduct 3 | 4 | ## Our Pledge 5 | 6 | We as members, contributors, and leaders pledge to make participation in our 7 | community a harassment-free experience for everyone, regardless of age, body 8 | size, visible or invisible disability, ethnicity, sex characteristics, gender 9 | identity and expression, level of experience, education, socio-economic status, 10 | nationality, personal appearance, race, religion, or sexual identity 11 | and orientation. 12 | 13 | We pledge to act and interact in ways that contribute to an open, welcoming, 14 | diverse, inclusive, and healthy community. 15 | 16 | ## Our Standards 17 | 18 | Examples of behavior that contributes to a positive environment for our 19 | community include: 20 | 21 | * Demonstrating empathy and kindness toward other people 22 | * Being respectful of differing opinions, viewpoints, and experiences 23 | * Giving and gracefully accepting constructive feedback 24 | * Accepting responsibility and apologizing to those affected by our mistakes, 25 | and learning from the experience 26 | * Focusing on what is best not just for us as individuals, but for the 27 | overall community 28 | 29 | Examples of unacceptable behavior include: 30 | 31 | * The use of sexualized language or imagery, and sexual attention or 32 | advances of any kind 33 | * Trolling, insulting or derogatory comments, and personal or political attacks 34 | * Public or private harassment 35 | * Publishing others' private information, such as a physical or email 36 | address, without their explicit permission 37 | * Other conduct which could reasonably be considered inappropriate in a 38 | professional setting 39 | 40 | ## Enforcement Responsibilities 41 | 42 | Community leaders are responsible for clarifying and enforcing our standards of 43 | acceptable behavior and will take appropriate and fair corrective action in 44 | response to any behavior that they deem inappropriate, threatening, offensive, 45 | or harmful. 46 | 47 | Community leaders have the right and responsibility to remove, edit, or reject 48 | comments, commits, code, wiki edits, issues, and other contributions that are 49 | not aligned to this Code of Conduct, and will communicate reasons for moderation 50 | decisions when appropriate. 51 | 52 | ## Scope 53 | 54 | This Code of Conduct applies within all community spaces, and also applies when 55 | an individual is officially representing the community in public spaces. 56 | Examples of representing our community include using an official e-mail address, 57 | posting via an official social media account, or acting as an appointed 58 | representative at an online or offline event. 59 | 60 | ## Enforcement 61 | 62 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 63 | reported to the community leaders responsible for enforcement at 64 | [INSERT CONTACT METHOD]. 65 | All complaints will be reviewed and investigated promptly and fairly. 66 | 67 | All community leaders are obligated to respect the privacy and security of the 68 | reporter of any incident. 69 | 70 | ## Enforcement Guidelines 71 | 72 | Community leaders will follow these Community Impact Guidelines in determining 73 | the consequences for any action they deem in violation of this Code of Conduct: 74 | 75 | ### 1. Correction 76 | 77 | **Community Impact**: Use of inappropriate language or other behavior deemed 78 | unprofessional or unwelcome in the community. 79 | 80 | **Consequence**: A private, written warning from community leaders, providing 81 | clarity around the nature of the violation and an explanation of why the 82 | behavior was inappropriate. A public apology may be requested. 83 | 84 | ### 2. Warning 85 | 86 | **Community Impact**: A violation through a single incident or series 87 | of actions. 88 | 89 | **Consequence**: A warning with consequences for continued behavior. No 90 | interaction with the people involved, including unsolicited interaction with 91 | those enforcing the Code of Conduct, for a specified period of time. This 92 | includes avoiding interactions in community spaces as well as external channels 93 | like social media. Violating these terms may lead to a temporary or 94 | permanent ban. 95 | 96 | ### 3. Temporary Ban 97 | 98 | **Community Impact**: A serious violation of community standards, including 99 | sustained inappropriate behavior. 100 | 101 | **Consequence**: A temporary ban from any sort of interaction or public 102 | communication with the community for a specified period of time. No public or 103 | private interaction with the people involved, including unsolicited interaction 104 | with those enforcing the Code of Conduct, is allowed during this period. 105 | Violating these terms may lead to a permanent ban. 106 | 107 | ### 4. Permanent Ban 108 | 109 | **Community Impact**: Demonstrating a pattern of violation of community 110 | standards, including sustained inappropriate behavior, harassment of an 111 | individual, or aggression toward or disparagement of classes of individuals. 112 | 113 | **Consequence**: A permanent ban from any sort of public interaction within 114 | the community. 115 | 116 | ## Attribution 117 | 118 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 119 | version 2.0, available at 120 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. 121 | 122 | Community Impact Guidelines were inspired by [Mozilla's code of conduct 123 | enforcement ladder](https://github.com/mozilla/diversity). 124 | 125 | [homepage]: https://www.contributor-covenant.org 126 | 127 | For answers to common questions about this code of conduct, see the FAQ at 128 | https://www.contributor-covenant.org/faq. Translations are available at 129 | https://www.contributor-covenant.org/translations. 130 | -------------------------------------------------------------------------------- /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | Contributions include code, documentation, answering user questions, running the 3 | project's infrastructure, and advocating for all types of users. 4 | 5 | The project welcomes all contributions from anyone willing to work in good faith 6 | with other contributors and the community. No contribution is too small and all 7 | contributions are valued. 8 | 9 | This guide explains the process for contributing to the project's GitHub 10 | Repository. 11 | 12 | - [Code of Conduct](#code-of-conduct) 13 | - [Bad Actors](#bad-actors) 14 | 15 | ## Code of Conduct 16 | The project has a [Code of Conduct](./CODE_OF_CONDUCT.md) that *all* 17 | contributors are expected to follow. This code describes the *minimum* behavior 18 | expectations for all contributors. 19 | 20 | As a contributor, how you choose to act and interact towards your 21 | fellow contributors, as well as to the community, will reflect back not only 22 | on yourself but on the project as a whole. The Code of Conduct is designed and 23 | intended, above all else, to help establish a culture within the project that 24 | allows anyone and everyone who wants to contribute to feel safe doing so. 25 | 26 | Should any individual act in any way that is considered in violation of the 27 | [Code of Conduct](./CODE_OF_CONDUCT.md), corrective actions will be taken. It is 28 | possible, however, for any individual to *act* in such a manner that is not in 29 | violation of the strict letter of the Code of Conduct guidelines while still 30 | going completely against the spirit of what that Code is intended to accomplish. 31 | 32 | Open, diverse, and inclusive communities live and die on the basis of trust. 33 | Contributors can disagree with one another so long as they trust that those 34 | disagreements are in good faith and everyone is working towards a common 35 | goal. 36 | 37 | ## Bad Actors 38 | All contributors to tacitly agree to abide by both the letter and 39 | spirit of the [Code of Conduct](./CODE_OF_CONDUCT.md). Failure, or 40 | unwillingness, to do so will result in contributions being respectfully 41 | declined. 42 | 43 | A *bad actor* is someone who repeatedly violates the *spirit* of the Code of 44 | Conduct through consistent failure to self-regulate the way in which they 45 | interact with other contributors in the project. In doing so, bad actors 46 | alienate other contributors, discourage collaboration, and generally reflect 47 | poorly on the project as a whole. 48 | 49 | Being a bad actor may be intentional or unintentional. Typically, unintentional 50 | bad behavior can be easily corrected by being quick to apologize and correct 51 | course *even if you are not entirely convinced you need to*. Giving other 52 | contributors the benefit of the doubt and having a sincere willingness to admit 53 | that you *might* be wrong is critical for any successful open collaboration. 54 | 55 | Don't be a bad actor. 56 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: cargo 4 | directory: "/" 5 | schedule: 6 | interval: daily 7 | time: "13:00" 8 | open-pull-requests-limit: 10 9 | -------------------------------------------------------------------------------- /.github/workflows/ci.yaml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | pull_request: 5 | push: 6 | branches: 7 | - main 8 | 9 | env: 10 | RUSTFLAGS: -Dwarnings 11 | 12 | jobs: 13 | build_and_test: 14 | name: Build and test 15 | runs-on: ${{ matrix.os }} 16 | strategy: 17 | matrix: 18 | os: [ubuntu-latest, windows-latest, macOS-latest] 19 | rust: [stable, nightly] 20 | 21 | steps: 22 | - uses: actions/checkout@main 23 | 24 | - name: Install ${{ matrix.rust }} 25 | uses: actions-rs/toolchain@v1 26 | with: 27 | toolchain: ${{ matrix.rust }} 28 | override: true 29 | 30 | - name: check 31 | uses: actions-rs/cargo@v1 32 | with: 33 | command: check 34 | args: --all --bins --examples 35 | 36 | - name: check avoid-dev-deps 37 | uses: actions-rs/cargo@v1 38 | if: matrix.rust == 'nightly' 39 | with: 40 | command: check 41 | args: --all -Z avoid-dev-deps 42 | 43 | - name: tests 44 | uses: actions-rs/cargo@v1 45 | with: 46 | command: test 47 | args: --all 48 | 49 | check_fmt_and_docs: 50 | name: Checking fmt, clippy, and docs 51 | runs-on: ubuntu-latest 52 | steps: 53 | - uses: actions/checkout@main 54 | 55 | - uses: actions-rs/toolchain@v1 56 | with: 57 | toolchain: nightly 58 | override: true 59 | 60 | - name: setup 61 | run: | 62 | rustup component add clippy rustfmt 63 | rustc --version 64 | 65 | - name: clippy 66 | run: cargo clippy -Z unstable-options -- -D warnings 67 | 68 | - name: fmt 69 | run: cargo fmt --all -- --check 70 | 71 | - name: Docs 72 | run: cargo doc --no-deps 73 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "adler" 7 | version = "1.0.2" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 10 | 11 | [[package]] 12 | name = "aead" 13 | version = "0.3.2" 14 | source = "registry+https://github.com/rust-lang/crates.io-index" 15 | checksum = "7fc95d1bdb8e6666b2b217308eeeb09f2d6728d104be3e31916cc74d15420331" 16 | dependencies = [ 17 | "generic-array", 18 | ] 19 | 20 | [[package]] 21 | name = "aes" 22 | version = "0.6.0" 23 | source = "registry+https://github.com/rust-lang/crates.io-index" 24 | checksum = "884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561" 25 | dependencies = [ 26 | "aes-soft", 27 | "aesni", 28 | "cipher", 29 | ] 30 | 31 | [[package]] 32 | name = "aes-gcm" 33 | version = "0.8.0" 34 | source = "registry+https://github.com/rust-lang/crates.io-index" 35 | checksum = "5278b5fabbb9bd46e24aa69b2fdea62c99088e0a950a9be40e3e0101298f88da" 36 | dependencies = [ 37 | "aead", 38 | "aes", 39 | "cipher", 40 | "ctr", 41 | "ghash", 42 | "subtle", 43 | ] 44 | 45 | [[package]] 46 | name = "aes-soft" 47 | version = "0.6.4" 48 | source = "registry+https://github.com/rust-lang/crates.io-index" 49 | checksum = "be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072" 50 | dependencies = [ 51 | "cipher", 52 | "opaque-debug", 53 | ] 54 | 55 | [[package]] 56 | name = "aesni" 57 | version = "0.10.0" 58 | source = "registry+https://github.com/rust-lang/crates.io-index" 59 | checksum = "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce" 60 | dependencies = [ 61 | "cipher", 62 | "opaque-debug", 63 | ] 64 | 65 | [[package]] 66 | name = "aho-corasick" 67 | version = "0.7.18" 68 | source = "registry+https://github.com/rust-lang/crates.io-index" 69 | checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" 70 | dependencies = [ 71 | "memchr", 72 | ] 73 | 74 | [[package]] 75 | name = "ansi_colours" 76 | version = "1.0.2" 77 | source = "registry+https://github.com/rust-lang/crates.io-index" 78 | checksum = "52cb663b84aea8670b4a40368360e29485c11b03d14ff6283261aeccd69d5ce1" 79 | dependencies = [ 80 | "cc", 81 | ] 82 | 83 | [[package]] 84 | name = "ansi_term" 85 | version = "0.11.0" 86 | source = "registry+https://github.com/rust-lang/crates.io-index" 87 | checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" 88 | dependencies = [ 89 | "winapi 0.3.9", 90 | ] 91 | 92 | [[package]] 93 | name = "ansi_term" 94 | version = "0.12.1" 95 | source = "registry+https://github.com/rust-lang/crates.io-index" 96 | checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" 97 | dependencies = [ 98 | "winapi 0.3.9", 99 | ] 100 | 101 | [[package]] 102 | name = "anyhow" 103 | version = "1.0.40" 104 | source = "registry+https://github.com/rust-lang/crates.io-index" 105 | checksum = "28b2cd92db5cbd74e8e5028f7e27dd7aa3090e89e4f2a197cc7c8dfb69c7063b" 106 | 107 | [[package]] 108 | name = "arrayvec" 109 | version = "0.5.2" 110 | source = "registry+https://github.com/rust-lang/crates.io-index" 111 | checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" 112 | 113 | [[package]] 114 | name = "async-attributes" 115 | version = "1.1.2" 116 | source = "registry+https://github.com/rust-lang/crates.io-index" 117 | checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" 118 | dependencies = [ 119 | "quote", 120 | "syn", 121 | ] 122 | 123 | [[package]] 124 | name = "async-channel" 125 | version = "1.6.1" 126 | source = "registry+https://github.com/rust-lang/crates.io-index" 127 | checksum = "2114d64672151c0c5eaa5e131ec84a74f06e1e559830dabba01ca30605d66319" 128 | dependencies = [ 129 | "concurrent-queue", 130 | "event-listener", 131 | "futures-core", 132 | ] 133 | 134 | [[package]] 135 | name = "async-dup" 136 | version = "1.2.2" 137 | source = "registry+https://github.com/rust-lang/crates.io-index" 138 | checksum = "7427a12b8dc09291528cfb1da2447059adb4a257388c2acd6497a79d55cf6f7c" 139 | dependencies = [ 140 | "futures-io", 141 | "simple-mutex", 142 | ] 143 | 144 | [[package]] 145 | name = "async-executor" 146 | version = "1.4.1" 147 | source = "registry+https://github.com/rust-lang/crates.io-index" 148 | checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965" 149 | dependencies = [ 150 | "async-task", 151 | "concurrent-queue", 152 | "fastrand", 153 | "futures-lite", 154 | "once_cell", 155 | "slab", 156 | ] 157 | 158 | [[package]] 159 | name = "async-global-executor" 160 | version = "2.0.2" 161 | source = "registry+https://github.com/rust-lang/crates.io-index" 162 | checksum = "9586ec52317f36de58453159d48351bc244bc24ced3effc1fce22f3d48664af6" 163 | dependencies = [ 164 | "async-channel", 165 | "async-executor", 166 | "async-io", 167 | "async-mutex", 168 | "blocking", 169 | "futures-lite", 170 | "num_cpus", 171 | "once_cell", 172 | "tokio 0.2.25", 173 | ] 174 | 175 | [[package]] 176 | name = "async-h1" 177 | version = "2.3.2" 178 | source = "registry+https://github.com/rust-lang/crates.io-index" 179 | checksum = "cc5142de15b549749cce62923a50714b0d7b77f5090ced141599e78899865451" 180 | dependencies = [ 181 | "async-channel", 182 | "async-dup", 183 | "async-std", 184 | "byte-pool", 185 | "futures-core", 186 | "http-types", 187 | "httparse", 188 | "lazy_static", 189 | "log", 190 | "pin-project", 191 | ] 192 | 193 | [[package]] 194 | name = "async-io" 195 | version = "1.4.1" 196 | source = "registry+https://github.com/rust-lang/crates.io-index" 197 | checksum = "4bbfd5cf2794b1e908ea8457e6c45f8f8f1f6ec5f74617bf4662623f47503c3b" 198 | dependencies = [ 199 | "concurrent-queue", 200 | "fastrand", 201 | "futures-lite", 202 | "libc", 203 | "log", 204 | "once_cell", 205 | "parking", 206 | "polling", 207 | "slab", 208 | "socket2 0.4.0", 209 | "waker-fn", 210 | "winapi 0.3.9", 211 | ] 212 | 213 | [[package]] 214 | name = "async-lock" 215 | version = "2.4.0" 216 | source = "registry+https://github.com/rust-lang/crates.io-index" 217 | checksum = "e6a8ea61bf9947a1007c5cada31e647dbc77b103c679858150003ba697ea798b" 218 | dependencies = [ 219 | "event-listener", 220 | ] 221 | 222 | [[package]] 223 | name = "async-mutex" 224 | version = "1.4.0" 225 | source = "registry+https://github.com/rust-lang/crates.io-index" 226 | checksum = "479db852db25d9dbf6204e6cb6253698f175c15726470f78af0d918e99d6156e" 227 | dependencies = [ 228 | "event-listener", 229 | ] 230 | 231 | [[package]] 232 | name = "async-std" 233 | version = "1.12.0" 234 | source = "registry+https://github.com/rust-lang/crates.io-index" 235 | checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d" 236 | dependencies = [ 237 | "async-attributes", 238 | "async-channel", 239 | "async-global-executor", 240 | "async-io", 241 | "async-lock", 242 | "crossbeam-utils", 243 | "futures-channel", 244 | "futures-core", 245 | "futures-io", 246 | "futures-lite", 247 | "gloo-timers", 248 | "kv-log-macro", 249 | "log", 250 | "memchr", 251 | "once_cell", 252 | "pin-project-lite 0.2.6", 253 | "pin-utils", 254 | "slab", 255 | "wasm-bindgen-futures", 256 | ] 257 | 258 | [[package]] 259 | name = "async-task" 260 | version = "4.0.3" 261 | source = "registry+https://github.com/rust-lang/crates.io-index" 262 | checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0" 263 | 264 | [[package]] 265 | name = "async-tls" 266 | version = "0.10.0" 267 | source = "registry+https://github.com/rust-lang/crates.io-index" 268 | checksum = "d85a97c4a0ecce878efd3f945f119c78a646d8975340bca0398f9bb05c30cc52" 269 | dependencies = [ 270 | "futures-core", 271 | "futures-io", 272 | "rustls", 273 | "webpki", 274 | "webpki-roots", 275 | ] 276 | 277 | [[package]] 278 | name = "async-trait" 279 | version = "0.1.50" 280 | source = "registry+https://github.com/rust-lang/crates.io-index" 281 | checksum = "0b98e84bbb4cbcdd97da190ba0c58a1bb0de2c1fdf67d159e192ed766aeca722" 282 | dependencies = [ 283 | "proc-macro2", 284 | "quote", 285 | "syn", 286 | ] 287 | 288 | [[package]] 289 | name = "atomic-waker" 290 | version = "1.0.0" 291 | source = "registry+https://github.com/rust-lang/crates.io-index" 292 | checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a" 293 | 294 | [[package]] 295 | name = "atty" 296 | version = "0.2.14" 297 | source = "registry+https://github.com/rust-lang/crates.io-index" 298 | checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" 299 | dependencies = [ 300 | "hermit-abi", 301 | "libc", 302 | "winapi 0.3.9", 303 | ] 304 | 305 | [[package]] 306 | name = "autocfg" 307 | version = "1.1.0" 308 | source = "registry+https://github.com/rust-lang/crates.io-index" 309 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 310 | 311 | [[package]] 312 | name = "base-x" 313 | version = "0.2.8" 314 | source = "registry+https://github.com/rust-lang/crates.io-index" 315 | checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b" 316 | 317 | [[package]] 318 | name = "base64" 319 | version = "0.12.3" 320 | source = "registry+https://github.com/rust-lang/crates.io-index" 321 | checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" 322 | 323 | [[package]] 324 | name = "base64" 325 | version = "0.13.0" 326 | source = "registry+https://github.com/rust-lang/crates.io-index" 327 | checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" 328 | 329 | [[package]] 330 | name = "bat" 331 | version = "0.18.3" 332 | source = "registry+https://github.com/rust-lang/crates.io-index" 333 | checksum = "5a069bad29696ecaa51ac79d3eb87abe3b65c7808ab2b3836afd9bd6c4009362" 334 | dependencies = [ 335 | "ansi_colours", 336 | "ansi_term 0.12.1", 337 | "atty", 338 | "bugreport", 339 | "clap", 340 | "clircle", 341 | "console", 342 | "content_inspector", 343 | "dirs-next", 344 | "encoding", 345 | "error-chain", 346 | "globset", 347 | "grep-cli", 348 | "lazy_static", 349 | "path_abs", 350 | "semver 0.11.0", 351 | "serde", 352 | "serde_yaml", 353 | "shell-words", 354 | "syntect", 355 | "unicode-width", 356 | "wild", 357 | ] 358 | 359 | [[package]] 360 | name = "bincode" 361 | version = "1.3.3" 362 | source = "registry+https://github.com/rust-lang/crates.io-index" 363 | checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" 364 | dependencies = [ 365 | "serde", 366 | ] 367 | 368 | [[package]] 369 | name = "bitflags" 370 | version = "1.2.1" 371 | source = "registry+https://github.com/rust-lang/crates.io-index" 372 | checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" 373 | 374 | [[package]] 375 | name = "block-buffer" 376 | version = "0.9.0" 377 | source = "registry+https://github.com/rust-lang/crates.io-index" 378 | checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" 379 | dependencies = [ 380 | "generic-array", 381 | ] 382 | 383 | [[package]] 384 | name = "blocking" 385 | version = "1.0.2" 386 | source = "registry+https://github.com/rust-lang/crates.io-index" 387 | checksum = "c5e170dbede1f740736619b776d7251cb1b9095c435c34d8ca9f57fcd2f335e9" 388 | dependencies = [ 389 | "async-channel", 390 | "async-task", 391 | "atomic-waker", 392 | "fastrand", 393 | "futures-lite", 394 | "once_cell", 395 | ] 396 | 397 | [[package]] 398 | name = "bstr" 399 | version = "0.2.16" 400 | source = "registry+https://github.com/rust-lang/crates.io-index" 401 | checksum = "90682c8d613ad3373e66de8c6411e0ae2ab2571e879d2efbf73558cc66f21279" 402 | dependencies = [ 403 | "lazy_static", 404 | "memchr", 405 | "regex-automata", 406 | ] 407 | 408 | [[package]] 409 | name = "bugreport" 410 | version = "0.4.0" 411 | source = "registry+https://github.com/rust-lang/crates.io-index" 412 | checksum = "a0e97e538864a7c95d33accbf64c8d354018ba3b6e032502fd0fe7259cf1aa3d" 413 | dependencies = [ 414 | "git-version", 415 | "shell-escape", 416 | "sys-info", 417 | ] 418 | 419 | [[package]] 420 | name = "bumpalo" 421 | version = "3.6.1" 422 | source = "registry+https://github.com/rust-lang/crates.io-index" 423 | checksum = "63396b8a4b9de3f4fdfb320ab6080762242f66a8ef174c49d8e19b674db4cdbe" 424 | 425 | [[package]] 426 | name = "byte-pool" 427 | version = "0.2.3" 428 | source = "registry+https://github.com/rust-lang/crates.io-index" 429 | checksum = "f8c7230ddbb427b1094d477d821a99f3f54d36333178eeb806e279bcdcecf0ca" 430 | dependencies = [ 431 | "crossbeam-queue", 432 | "stable_deref_trait", 433 | ] 434 | 435 | [[package]] 436 | name = "byteorder" 437 | version = "1.4.3" 438 | source = "registry+https://github.com/rust-lang/crates.io-index" 439 | checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" 440 | 441 | [[package]] 442 | name = "bytes" 443 | version = "0.5.6" 444 | source = "registry+https://github.com/rust-lang/crates.io-index" 445 | checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" 446 | 447 | [[package]] 448 | name = "bytes" 449 | version = "1.0.1" 450 | source = "registry+https://github.com/rust-lang/crates.io-index" 451 | checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040" 452 | 453 | [[package]] 454 | name = "cache-padded" 455 | version = "1.1.1" 456 | source = "registry+https://github.com/rust-lang/crates.io-index" 457 | checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba" 458 | 459 | [[package]] 460 | name = "cc" 461 | version = "1.0.67" 462 | source = "registry+https://github.com/rust-lang/crates.io-index" 463 | checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd" 464 | 465 | [[package]] 466 | name = "cfg-if" 467 | version = "0.1.10" 468 | source = "registry+https://github.com/rust-lang/crates.io-index" 469 | checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" 470 | 471 | [[package]] 472 | name = "cfg-if" 473 | version = "1.0.0" 474 | source = "registry+https://github.com/rust-lang/crates.io-index" 475 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 476 | 477 | [[package]] 478 | name = "chrono" 479 | version = "0.4.19" 480 | source = "registry+https://github.com/rust-lang/crates.io-index" 481 | checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" 482 | dependencies = [ 483 | "num-integer", 484 | "num-traits", 485 | ] 486 | 487 | [[package]] 488 | name = "cipher" 489 | version = "0.2.5" 490 | source = "registry+https://github.com/rust-lang/crates.io-index" 491 | checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" 492 | dependencies = [ 493 | "generic-array", 494 | ] 495 | 496 | [[package]] 497 | name = "clap" 498 | version = "2.33.3" 499 | source = "registry+https://github.com/rust-lang/crates.io-index" 500 | checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002" 501 | dependencies = [ 502 | "ansi_term 0.11.0", 503 | "atty", 504 | "bitflags", 505 | "strsim", 506 | "term_size", 507 | "textwrap", 508 | "unicode-width", 509 | "vec_map", 510 | ] 511 | 512 | [[package]] 513 | name = "clircle" 514 | version = "0.3.0" 515 | source = "registry+https://github.com/rust-lang/crates.io-index" 516 | checksum = "e68bbd985a63de680ab4d1ad77b6306611a8f961b282c8b5ab513e6de934e396" 517 | dependencies = [ 518 | "cfg-if 1.0.0", 519 | "libc", 520 | "serde", 521 | "winapi 0.3.9", 522 | ] 523 | 524 | [[package]] 525 | name = "concurrent-queue" 526 | version = "1.2.2" 527 | source = "registry+https://github.com/rust-lang/crates.io-index" 528 | checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3" 529 | dependencies = [ 530 | "cache-padded", 531 | ] 532 | 533 | [[package]] 534 | name = "config" 535 | version = "0.10.1" 536 | source = "registry+https://github.com/rust-lang/crates.io-index" 537 | checksum = "19b076e143e1d9538dde65da30f8481c2a6c44040edb8e02b9bf1351edb92ce3" 538 | dependencies = [ 539 | "lazy_static", 540 | "nom", 541 | "serde", 542 | ] 543 | 544 | [[package]] 545 | name = "console" 546 | version = "0.14.1" 547 | source = "registry+https://github.com/rust-lang/crates.io-index" 548 | checksum = "3993e6445baa160675931ec041a5e03ca84b9c6e32a056150d3aa2bdda0a1f45" 549 | dependencies = [ 550 | "encode_unicode", 551 | "lazy_static", 552 | "libc", 553 | "regex", 554 | "terminal_size", 555 | "unicode-width", 556 | "winapi 0.3.9", 557 | ] 558 | 559 | [[package]] 560 | name = "const_fn" 561 | version = "0.4.7" 562 | source = "registry+https://github.com/rust-lang/crates.io-index" 563 | checksum = "402da840495de3f976eaefc3485b7f5eb5b0bf9761f9a47be27fe975b3b8c2ec" 564 | 565 | [[package]] 566 | name = "content_inspector" 567 | version = "0.2.4" 568 | source = "registry+https://github.com/rust-lang/crates.io-index" 569 | checksum = "b7bda66e858c683005a53a9a60c69a4aca7eeaa45d124526e389f7aec8e62f38" 570 | dependencies = [ 571 | "memchr", 572 | ] 573 | 574 | [[package]] 575 | name = "cookie" 576 | version = "0.14.4" 577 | source = "registry+https://github.com/rust-lang/crates.io-index" 578 | checksum = "03a5d7b21829bc7b4bf4754a978a241ae54ea55a40f92bb20216e54096f4b951" 579 | dependencies = [ 580 | "aes-gcm", 581 | "base64 0.13.0", 582 | "hkdf", 583 | "hmac", 584 | "percent-encoding", 585 | "rand 0.8.3", 586 | "sha2", 587 | "time", 588 | "version_check", 589 | ] 590 | 591 | [[package]] 592 | name = "cookie" 593 | version = "0.15.1" 594 | source = "registry+https://github.com/rust-lang/crates.io-index" 595 | checksum = "d5f1c7727e460397e56abc4bddc1d49e07a1ad78fc98eb2e1c8f032a58a2f80d" 596 | dependencies = [ 597 | "percent-encoding", 598 | "time", 599 | "version_check", 600 | ] 601 | 602 | [[package]] 603 | name = "cookie_store" 604 | version = "0.15.0" 605 | source = "registry+https://github.com/rust-lang/crates.io-index" 606 | checksum = "55b4ac5559dd39f7bdc516f769cb412b151585d8886d216871a8435ed7f862cd" 607 | dependencies = [ 608 | "cookie 0.15.1", 609 | "idna", 610 | "indexmap", 611 | "log", 612 | "publicsuffix", 613 | "serde", 614 | "serde_json", 615 | "time", 616 | "url", 617 | ] 618 | 619 | [[package]] 620 | name = "core-foundation" 621 | version = "0.9.1" 622 | source = "registry+https://github.com/rust-lang/crates.io-index" 623 | checksum = "0a89e2ae426ea83155dccf10c0fa6b1463ef6d5fcb44cee0b224a408fa640a62" 624 | dependencies = [ 625 | "core-foundation-sys", 626 | "libc", 627 | ] 628 | 629 | [[package]] 630 | name = "core-foundation-sys" 631 | version = "0.8.2" 632 | source = "registry+https://github.com/rust-lang/crates.io-index" 633 | checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b" 634 | 635 | [[package]] 636 | name = "cpufeatures" 637 | version = "0.1.4" 638 | source = "registry+https://github.com/rust-lang/crates.io-index" 639 | checksum = "ed00c67cb5d0a7d64a44f6ad2668db7e7530311dd53ea79bcd4fb022c64911c8" 640 | dependencies = [ 641 | "libc", 642 | ] 643 | 644 | [[package]] 645 | name = "cpuid-bool" 646 | version = "0.2.0" 647 | source = "registry+https://github.com/rust-lang/crates.io-index" 648 | checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba" 649 | 650 | [[package]] 651 | name = "crc32fast" 652 | version = "1.2.1" 653 | source = "registry+https://github.com/rust-lang/crates.io-index" 654 | checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a" 655 | dependencies = [ 656 | "cfg-if 1.0.0", 657 | ] 658 | 659 | [[package]] 660 | name = "crossbeam-queue" 661 | version = "0.3.1" 662 | source = "registry+https://github.com/rust-lang/crates.io-index" 663 | checksum = "0f6cb3c7f5b8e51bc3ebb73a2327ad4abdbd119dc13223f14f961d2f38486756" 664 | dependencies = [ 665 | "cfg-if 1.0.0", 666 | "crossbeam-utils", 667 | ] 668 | 669 | [[package]] 670 | name = "crossbeam-utils" 671 | version = "0.8.8" 672 | source = "registry+https://github.com/rust-lang/crates.io-index" 673 | checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38" 674 | dependencies = [ 675 | "cfg-if 1.0.0", 676 | "lazy_static", 677 | ] 678 | 679 | [[package]] 680 | name = "crypto-mac" 681 | version = "0.10.0" 682 | source = "registry+https://github.com/rust-lang/crates.io-index" 683 | checksum = "4857fd85a0c34b3c3297875b747c1e02e06b6a0ea32dd892d8192b9ce0813ea6" 684 | dependencies = [ 685 | "generic-array", 686 | "subtle", 687 | ] 688 | 689 | [[package]] 690 | name = "ctor" 691 | version = "0.1.20" 692 | source = "registry+https://github.com/rust-lang/crates.io-index" 693 | checksum = "5e98e2ad1a782e33928b96fc3948e7c355e5af34ba4de7670fe8bac2a3b2006d" 694 | dependencies = [ 695 | "quote", 696 | "syn", 697 | ] 698 | 699 | [[package]] 700 | name = "ctr" 701 | version = "0.6.0" 702 | source = "registry+https://github.com/rust-lang/crates.io-index" 703 | checksum = "fb4a30d54f7443bf3d6191dcd486aca19e67cb3c49fa7a06a319966346707e7f" 704 | dependencies = [ 705 | "cipher", 706 | ] 707 | 708 | [[package]] 709 | name = "curl" 710 | version = "0.4.37" 711 | source = "registry+https://github.com/rust-lang/crates.io-index" 712 | checksum = "adba2012502267c1fdde381e0e3acc44bf8be96b2f7d455089dcc2c8ad2f67bd" 713 | dependencies = [ 714 | "curl-sys", 715 | "libc", 716 | "openssl-probe", 717 | "openssl-sys", 718 | "schannel", 719 | "socket2 0.4.0", 720 | "winapi 0.3.9", 721 | ] 722 | 723 | [[package]] 724 | name = "curl-sys" 725 | version = "0.4.43+curl-7.76.0" 726 | source = "registry+https://github.com/rust-lang/crates.io-index" 727 | checksum = "a802c7a9828b7d139efaed1bc92471ab6681ed86d19a105605f5eadcb0837d11" 728 | dependencies = [ 729 | "cc", 730 | "libc", 731 | "libnghttp2-sys", 732 | "libz-sys", 733 | "openssl-sys", 734 | "pkg-config", 735 | "vcpkg", 736 | "winapi 0.3.9", 737 | ] 738 | 739 | [[package]] 740 | name = "dashmap" 741 | version = "5.3.4" 742 | source = "registry+https://github.com/rust-lang/crates.io-index" 743 | checksum = "3495912c9c1ccf2e18976439f4443f3fee0fd61f424ff99fde6a66b15ecb448f" 744 | dependencies = [ 745 | "cfg-if 1.0.0", 746 | "hashbrown 0.12.1", 747 | "lock_api", 748 | "parking_lot_core", 749 | ] 750 | 751 | [[package]] 752 | name = "data-encoding" 753 | version = "2.3.2" 754 | source = "registry+https://github.com/rust-lang/crates.io-index" 755 | checksum = "3ee2393c4a91429dffb4bedf19f4d6abf27d8a732c8ce4980305d782e5426d57" 756 | 757 | [[package]] 758 | name = "deadpool" 759 | version = "0.7.0" 760 | source = "registry+https://github.com/rust-lang/crates.io-index" 761 | checksum = "3d126179d86aee4556e54f5f3c6bf6d9884e7cc52cef82f77ee6f90a7747616d" 762 | dependencies = [ 763 | "async-trait", 764 | "config", 765 | "crossbeam-queue", 766 | "num_cpus", 767 | "serde", 768 | "tokio 1.6.0", 769 | ] 770 | 771 | [[package]] 772 | name = "digest" 773 | version = "0.9.0" 774 | source = "registry+https://github.com/rust-lang/crates.io-index" 775 | checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" 776 | dependencies = [ 777 | "generic-array", 778 | ] 779 | 780 | [[package]] 781 | name = "dirs-next" 782 | version = "2.0.0" 783 | source = "registry+https://github.com/rust-lang/crates.io-index" 784 | checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" 785 | dependencies = [ 786 | "cfg-if 1.0.0", 787 | "dirs-sys-next", 788 | ] 789 | 790 | [[package]] 791 | name = "dirs-sys-next" 792 | version = "0.1.2" 793 | source = "registry+https://github.com/rust-lang/crates.io-index" 794 | checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" 795 | dependencies = [ 796 | "libc", 797 | "redox_users", 798 | "winapi 0.3.9", 799 | ] 800 | 801 | [[package]] 802 | name = "discard" 803 | version = "1.0.4" 804 | source = "registry+https://github.com/rust-lang/crates.io-index" 805 | checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0" 806 | 807 | [[package]] 808 | name = "dtoa" 809 | version = "0.4.8" 810 | source = "registry+https://github.com/rust-lang/crates.io-index" 811 | checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" 812 | 813 | [[package]] 814 | name = "encode_unicode" 815 | version = "0.3.6" 816 | source = "registry+https://github.com/rust-lang/crates.io-index" 817 | checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" 818 | 819 | [[package]] 820 | name = "encoding" 821 | version = "0.2.33" 822 | source = "registry+https://github.com/rust-lang/crates.io-index" 823 | checksum = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec" 824 | dependencies = [ 825 | "encoding-index-japanese", 826 | "encoding-index-korean", 827 | "encoding-index-simpchinese", 828 | "encoding-index-singlebyte", 829 | "encoding-index-tradchinese", 830 | ] 831 | 832 | [[package]] 833 | name = "encoding-index-japanese" 834 | version = "1.20141219.5" 835 | source = "registry+https://github.com/rust-lang/crates.io-index" 836 | checksum = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91" 837 | dependencies = [ 838 | "encoding_index_tests", 839 | ] 840 | 841 | [[package]] 842 | name = "encoding-index-korean" 843 | version = "1.20141219.5" 844 | source = "registry+https://github.com/rust-lang/crates.io-index" 845 | checksum = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81" 846 | dependencies = [ 847 | "encoding_index_tests", 848 | ] 849 | 850 | [[package]] 851 | name = "encoding-index-simpchinese" 852 | version = "1.20141219.5" 853 | source = "registry+https://github.com/rust-lang/crates.io-index" 854 | checksum = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7" 855 | dependencies = [ 856 | "encoding_index_tests", 857 | ] 858 | 859 | [[package]] 860 | name = "encoding-index-singlebyte" 861 | version = "1.20141219.5" 862 | source = "registry+https://github.com/rust-lang/crates.io-index" 863 | checksum = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a" 864 | dependencies = [ 865 | "encoding_index_tests", 866 | ] 867 | 868 | [[package]] 869 | name = "encoding-index-tradchinese" 870 | version = "1.20141219.5" 871 | source = "registry+https://github.com/rust-lang/crates.io-index" 872 | checksum = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18" 873 | dependencies = [ 874 | "encoding_index_tests", 875 | ] 876 | 877 | [[package]] 878 | name = "encoding_index_tests" 879 | version = "0.1.4" 880 | source = "registry+https://github.com/rust-lang/crates.io-index" 881 | checksum = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569" 882 | 883 | [[package]] 884 | name = "encoding_rs" 885 | version = "0.8.28" 886 | source = "registry+https://github.com/rust-lang/crates.io-index" 887 | checksum = "80df024fbc5ac80f87dfef0d9f5209a252f2a497f7f42944cff24d8253cac065" 888 | dependencies = [ 889 | "cfg-if 1.0.0", 890 | ] 891 | 892 | [[package]] 893 | name = "env_logger" 894 | version = "0.9.3" 895 | source = "registry+https://github.com/rust-lang/crates.io-index" 896 | checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" 897 | dependencies = [ 898 | "atty", 899 | "humantime", 900 | "log", 901 | "regex", 902 | "termcolor", 903 | ] 904 | 905 | [[package]] 906 | name = "error-chain" 907 | version = "0.12.4" 908 | source = "registry+https://github.com/rust-lang/crates.io-index" 909 | checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc" 910 | dependencies = [ 911 | "version_check", 912 | ] 913 | 914 | [[package]] 915 | name = "event-listener" 916 | version = "2.5.1" 917 | source = "registry+https://github.com/rust-lang/crates.io-index" 918 | checksum = "f7531096570974c3a9dcf9e4b8e1cede1ec26cf5046219fb3b9d897503b9be59" 919 | 920 | [[package]] 921 | name = "fastrand" 922 | version = "1.4.1" 923 | source = "registry+https://github.com/rust-lang/crates.io-index" 924 | checksum = "77b705829d1e87f762c2df6da140b26af5839e1033aa84aa5f56bb688e4e1bdb" 925 | dependencies = [ 926 | "instant", 927 | ] 928 | 929 | [[package]] 930 | name = "flate2" 931 | version = "1.0.20" 932 | source = "registry+https://github.com/rust-lang/crates.io-index" 933 | checksum = "cd3aec53de10fe96d7d8c565eb17f2c687bb5518a2ec453b5b1252964526abe0" 934 | dependencies = [ 935 | "cfg-if 1.0.0", 936 | "crc32fast", 937 | "libc", 938 | "miniz_oxide", 939 | ] 940 | 941 | [[package]] 942 | name = "flume" 943 | version = "0.9.2" 944 | source = "registry+https://github.com/rust-lang/crates.io-index" 945 | checksum = "1bebadab126f8120d410b677ed95eee4ba6eb7c6dd8e34a5ec88a08050e26132" 946 | dependencies = [ 947 | "futures-core", 948 | "futures-sink", 949 | "spinning_top", 950 | ] 951 | 952 | [[package]] 953 | name = "fnv" 954 | version = "1.0.7" 955 | source = "registry+https://github.com/rust-lang/crates.io-index" 956 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 957 | 958 | [[package]] 959 | name = "foreign-types" 960 | version = "0.3.2" 961 | source = "registry+https://github.com/rust-lang/crates.io-index" 962 | checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 963 | dependencies = [ 964 | "foreign-types-shared", 965 | ] 966 | 967 | [[package]] 968 | name = "foreign-types-shared" 969 | version = "0.1.1" 970 | source = "registry+https://github.com/rust-lang/crates.io-index" 971 | checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 972 | 973 | [[package]] 974 | name = "form_urlencoded" 975 | version = "1.0.1" 976 | source = "registry+https://github.com/rust-lang/crates.io-index" 977 | checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" 978 | dependencies = [ 979 | "matches", 980 | "percent-encoding", 981 | ] 982 | 983 | [[package]] 984 | name = "fuchsia-zircon" 985 | version = "0.3.3" 986 | source = "registry+https://github.com/rust-lang/crates.io-index" 987 | checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" 988 | dependencies = [ 989 | "bitflags", 990 | "fuchsia-zircon-sys", 991 | ] 992 | 993 | [[package]] 994 | name = "fuchsia-zircon-sys" 995 | version = "0.3.3" 996 | source = "registry+https://github.com/rust-lang/crates.io-index" 997 | checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" 998 | 999 | [[package]] 1000 | name = "futures" 1001 | version = "0.3.15" 1002 | source = "registry+https://github.com/rust-lang/crates.io-index" 1003 | checksum = "0e7e43a803dae2fa37c1f6a8fe121e1f7bf9548b4dfc0522a42f34145dadfc27" 1004 | dependencies = [ 1005 | "futures-channel", 1006 | "futures-core", 1007 | "futures-executor", 1008 | "futures-io", 1009 | "futures-sink", 1010 | "futures-task", 1011 | "futures-util", 1012 | ] 1013 | 1014 | [[package]] 1015 | name = "futures-channel" 1016 | version = "0.3.15" 1017 | source = "registry+https://github.com/rust-lang/crates.io-index" 1018 | checksum = "e682a68b29a882df0545c143dc3646daefe80ba479bcdede94d5a703de2871e2" 1019 | dependencies = [ 1020 | "futures-core", 1021 | "futures-sink", 1022 | ] 1023 | 1024 | [[package]] 1025 | name = "futures-core" 1026 | version = "0.3.15" 1027 | source = "registry+https://github.com/rust-lang/crates.io-index" 1028 | checksum = "0402f765d8a89a26043b889b26ce3c4679d268fa6bb22cd7c6aad98340e179d1" 1029 | 1030 | [[package]] 1031 | name = "futures-executor" 1032 | version = "0.3.15" 1033 | source = "registry+https://github.com/rust-lang/crates.io-index" 1034 | checksum = "badaa6a909fac9e7236d0620a2f57f7664640c56575b71a7552fbd68deafab79" 1035 | dependencies = [ 1036 | "futures-core", 1037 | "futures-task", 1038 | "futures-util", 1039 | ] 1040 | 1041 | [[package]] 1042 | name = "futures-io" 1043 | version = "0.3.15" 1044 | source = "registry+https://github.com/rust-lang/crates.io-index" 1045 | checksum = "acc499defb3b348f8d8f3f66415835a9131856ff7714bf10dadfc4ec4bdb29a1" 1046 | 1047 | [[package]] 1048 | name = "futures-lite" 1049 | version = "1.11.3" 1050 | source = "registry+https://github.com/rust-lang/crates.io-index" 1051 | checksum = "b4481d0cd0de1d204a4fa55e7d45f07b1d958abcb06714b3446438e2eff695fb" 1052 | dependencies = [ 1053 | "fastrand", 1054 | "futures-core", 1055 | "futures-io", 1056 | "memchr", 1057 | "parking", 1058 | "pin-project-lite 0.2.6", 1059 | "waker-fn", 1060 | ] 1061 | 1062 | [[package]] 1063 | name = "futures-macro" 1064 | version = "0.3.15" 1065 | source = "registry+https://github.com/rust-lang/crates.io-index" 1066 | checksum = "a4c40298486cdf52cc00cd6d6987892ba502c7656a16a4192a9992b1ccedd121" 1067 | dependencies = [ 1068 | "autocfg", 1069 | "proc-macro-hack", 1070 | "proc-macro2", 1071 | "quote", 1072 | "syn", 1073 | ] 1074 | 1075 | [[package]] 1076 | name = "futures-sink" 1077 | version = "0.3.15" 1078 | source = "registry+https://github.com/rust-lang/crates.io-index" 1079 | checksum = "a57bead0ceff0d6dde8f465ecd96c9338121bb7717d3e7b108059531870c4282" 1080 | 1081 | [[package]] 1082 | name = "futures-task" 1083 | version = "0.3.15" 1084 | source = "registry+https://github.com/rust-lang/crates.io-index" 1085 | checksum = "8a16bef9fc1a4dddb5bee51c989e3fbba26569cbb0e31f5b303c184e3dd33dae" 1086 | 1087 | [[package]] 1088 | name = "futures-util" 1089 | version = "0.3.15" 1090 | source = "registry+https://github.com/rust-lang/crates.io-index" 1091 | checksum = "feb5c238d27e2bf94ffdfd27b2c29e3df4a68c4193bb6427384259e2bf191967" 1092 | dependencies = [ 1093 | "autocfg", 1094 | "futures-channel", 1095 | "futures-core", 1096 | "futures-io", 1097 | "futures-macro", 1098 | "futures-sink", 1099 | "futures-task", 1100 | "memchr", 1101 | "pin-project-lite 0.2.6", 1102 | "pin-utils", 1103 | "proc-macro-hack", 1104 | "proc-macro-nested", 1105 | "slab", 1106 | ] 1107 | 1108 | [[package]] 1109 | name = "generic-array" 1110 | version = "0.14.4" 1111 | source = "registry+https://github.com/rust-lang/crates.io-index" 1112 | checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" 1113 | dependencies = [ 1114 | "typenum", 1115 | "version_check", 1116 | ] 1117 | 1118 | [[package]] 1119 | name = "getrandom" 1120 | version = "0.1.16" 1121 | source = "registry+https://github.com/rust-lang/crates.io-index" 1122 | checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" 1123 | dependencies = [ 1124 | "cfg-if 1.0.0", 1125 | "libc", 1126 | "wasi 0.9.0+wasi-snapshot-preview1", 1127 | ] 1128 | 1129 | [[package]] 1130 | name = "getrandom" 1131 | version = "0.2.2" 1132 | source = "registry+https://github.com/rust-lang/crates.io-index" 1133 | checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8" 1134 | dependencies = [ 1135 | "cfg-if 1.0.0", 1136 | "libc", 1137 | "wasi 0.10.2+wasi-snapshot-preview1", 1138 | ] 1139 | 1140 | [[package]] 1141 | name = "ghash" 1142 | version = "0.3.1" 1143 | source = "registry+https://github.com/rust-lang/crates.io-index" 1144 | checksum = "97304e4cd182c3846f7575ced3890c53012ce534ad9114046b0a9e00bb30a375" 1145 | dependencies = [ 1146 | "opaque-debug", 1147 | "polyval", 1148 | ] 1149 | 1150 | [[package]] 1151 | name = "git-version" 1152 | version = "0.3.4" 1153 | source = "registry+https://github.com/rust-lang/crates.io-index" 1154 | checksum = "94918e83f1e01dedc2e361d00ce9487b14c58c7f40bab148026fa39d42cb41e2" 1155 | dependencies = [ 1156 | "git-version-macro", 1157 | "proc-macro-hack", 1158 | ] 1159 | 1160 | [[package]] 1161 | name = "git-version-macro" 1162 | version = "0.3.4" 1163 | source = "registry+https://github.com/rust-lang/crates.io-index" 1164 | checksum = "34a97a52fdee1870a34fa6e4b77570cba531b27d1838874fef4429a791a3d657" 1165 | dependencies = [ 1166 | "proc-macro-hack", 1167 | "proc-macro2", 1168 | "quote", 1169 | "syn", 1170 | ] 1171 | 1172 | [[package]] 1173 | name = "glob" 1174 | version = "0.3.0" 1175 | source = "registry+https://github.com/rust-lang/crates.io-index" 1176 | checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" 1177 | 1178 | [[package]] 1179 | name = "globset" 1180 | version = "0.4.8" 1181 | source = "registry+https://github.com/rust-lang/crates.io-index" 1182 | checksum = "10463d9ff00a2a068db14231982f5132edebad0d7660cd956a1c30292dbcbfbd" 1183 | dependencies = [ 1184 | "aho-corasick", 1185 | "bstr", 1186 | "fnv", 1187 | "log", 1188 | "regex", 1189 | ] 1190 | 1191 | [[package]] 1192 | name = "gloo-timers" 1193 | version = "0.2.1" 1194 | source = "registry+https://github.com/rust-lang/crates.io-index" 1195 | checksum = "47204a46aaff920a1ea58b11d03dec6f704287d27561724a4631e450654a891f" 1196 | dependencies = [ 1197 | "futures-channel", 1198 | "futures-core", 1199 | "js-sys", 1200 | "wasm-bindgen", 1201 | "web-sys", 1202 | ] 1203 | 1204 | [[package]] 1205 | name = "grep-cli" 1206 | version = "0.1.6" 1207 | source = "registry+https://github.com/rust-lang/crates.io-index" 1208 | checksum = "2dd110c34bb4460d0de5062413b773e385cbf8a85a63fc535590110a09e79e8a" 1209 | dependencies = [ 1210 | "atty", 1211 | "bstr", 1212 | "globset", 1213 | "lazy_static", 1214 | "log", 1215 | "regex", 1216 | "same-file", 1217 | "termcolor", 1218 | "winapi-util", 1219 | ] 1220 | 1221 | [[package]] 1222 | name = "h2" 1223 | version = "0.2.7" 1224 | source = "registry+https://github.com/rust-lang/crates.io-index" 1225 | checksum = "5e4728fd124914ad25e99e3d15a9361a879f6620f63cb56bbb08f95abb97a535" 1226 | dependencies = [ 1227 | "bytes 0.5.6", 1228 | "fnv", 1229 | "futures-core", 1230 | "futures-sink", 1231 | "futures-util", 1232 | "http", 1233 | "indexmap", 1234 | "slab", 1235 | "tokio 0.2.25", 1236 | "tokio-util", 1237 | "tracing", 1238 | "tracing-futures", 1239 | ] 1240 | 1241 | [[package]] 1242 | name = "hashbrown" 1243 | version = "0.9.1" 1244 | source = "registry+https://github.com/rust-lang/crates.io-index" 1245 | checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" 1246 | 1247 | [[package]] 1248 | name = "hashbrown" 1249 | version = "0.11.2" 1250 | source = "registry+https://github.com/rust-lang/crates.io-index" 1251 | checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" 1252 | 1253 | [[package]] 1254 | name = "hashbrown" 1255 | version = "0.12.1" 1256 | source = "registry+https://github.com/rust-lang/crates.io-index" 1257 | checksum = "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3" 1258 | 1259 | [[package]] 1260 | name = "heck" 1261 | version = "0.3.2" 1262 | source = "registry+https://github.com/rust-lang/crates.io-index" 1263 | checksum = "87cbf45460356b7deeb5e3415b5563308c0a9b057c85e12b06ad551f98d0a6ac" 1264 | dependencies = [ 1265 | "unicode-segmentation", 1266 | ] 1267 | 1268 | [[package]] 1269 | name = "hermit-abi" 1270 | version = "0.1.18" 1271 | source = "registry+https://github.com/rust-lang/crates.io-index" 1272 | checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c" 1273 | dependencies = [ 1274 | "libc", 1275 | ] 1276 | 1277 | [[package]] 1278 | name = "hkdf" 1279 | version = "0.10.0" 1280 | source = "registry+https://github.com/rust-lang/crates.io-index" 1281 | checksum = "51ab2f639c231793c5f6114bdb9bbe50a7dbbfcd7c7c6bd8475dec2d991e964f" 1282 | dependencies = [ 1283 | "digest", 1284 | "hmac", 1285 | ] 1286 | 1287 | [[package]] 1288 | name = "hmac" 1289 | version = "0.10.1" 1290 | source = "registry+https://github.com/rust-lang/crates.io-index" 1291 | checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15" 1292 | dependencies = [ 1293 | "crypto-mac", 1294 | "digest", 1295 | ] 1296 | 1297 | [[package]] 1298 | name = "http" 1299 | version = "0.2.4" 1300 | source = "registry+https://github.com/rust-lang/crates.io-index" 1301 | checksum = "527e8c9ac747e28542699a951517aa9a6945af506cd1f2e1b53a576c17b6cc11" 1302 | dependencies = [ 1303 | "bytes 1.0.1", 1304 | "fnv", 1305 | "itoa", 1306 | ] 1307 | 1308 | [[package]] 1309 | name = "http-body" 1310 | version = "0.3.1" 1311 | source = "registry+https://github.com/rust-lang/crates.io-index" 1312 | checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b" 1313 | dependencies = [ 1314 | "bytes 0.5.6", 1315 | "http", 1316 | ] 1317 | 1318 | [[package]] 1319 | name = "http-client" 1320 | version = "6.5.3" 1321 | source = "registry+https://github.com/rust-lang/crates.io-index" 1322 | checksum = "1947510dc91e2bf586ea5ffb412caad7673264e14bb39fb9078da114a94ce1a5" 1323 | dependencies = [ 1324 | "async-h1", 1325 | "async-std", 1326 | "async-tls", 1327 | "async-trait", 1328 | "cfg-if 1.0.0", 1329 | "dashmap", 1330 | "deadpool", 1331 | "futures", 1332 | "futures-util", 1333 | "http-types", 1334 | "hyper", 1335 | "hyper-tls", 1336 | "isahc", 1337 | "log", 1338 | "rustls", 1339 | "tokio 0.2.25", 1340 | ] 1341 | 1342 | [[package]] 1343 | name = "http-types" 1344 | version = "2.11.1" 1345 | source = "registry+https://github.com/rust-lang/crates.io-index" 1346 | checksum = "ad077d89137cd3debdce53c66714dc536525ef43fe075d41ddc0a8ac11f85957" 1347 | dependencies = [ 1348 | "anyhow", 1349 | "async-channel", 1350 | "async-std", 1351 | "base64 0.13.0", 1352 | "cookie 0.14.4", 1353 | "futures-lite", 1354 | "http", 1355 | "infer", 1356 | "pin-project-lite 0.2.6", 1357 | "rand 0.7.3", 1358 | "serde", 1359 | "serde_json", 1360 | "serde_qs", 1361 | "serde_urlencoded", 1362 | "url", 1363 | ] 1364 | 1365 | [[package]] 1366 | name = "httparse" 1367 | version = "1.4.1" 1368 | source = "registry+https://github.com/rust-lang/crates.io-index" 1369 | checksum = "f3a87b616e37e93c22fb19bcd386f02f3af5ea98a25670ad0fce773de23c5e68" 1370 | 1371 | [[package]] 1372 | name = "httpdate" 1373 | version = "0.3.2" 1374 | source = "registry+https://github.com/rust-lang/crates.io-index" 1375 | checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47" 1376 | 1377 | [[package]] 1378 | name = "humantime" 1379 | version = "2.1.0" 1380 | source = "registry+https://github.com/rust-lang/crates.io-index" 1381 | checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" 1382 | 1383 | [[package]] 1384 | name = "hyper" 1385 | version = "0.13.10" 1386 | source = "registry+https://github.com/rust-lang/crates.io-index" 1387 | checksum = "8a6f157065790a3ed2f88679250419b5cdd96e714a0d65f7797fd337186e96bb" 1388 | dependencies = [ 1389 | "bytes 0.5.6", 1390 | "futures-channel", 1391 | "futures-core", 1392 | "futures-util", 1393 | "h2", 1394 | "http", 1395 | "http-body", 1396 | "httparse", 1397 | "httpdate", 1398 | "itoa", 1399 | "pin-project", 1400 | "socket2 0.3.19", 1401 | "tokio 0.2.25", 1402 | "tower-service", 1403 | "tracing", 1404 | "want", 1405 | ] 1406 | 1407 | [[package]] 1408 | name = "hyper-tls" 1409 | version = "0.4.3" 1410 | source = "registry+https://github.com/rust-lang/crates.io-index" 1411 | checksum = "d979acc56dcb5b8dddba3917601745e877576475aa046df3226eabdecef78eed" 1412 | dependencies = [ 1413 | "bytes 0.5.6", 1414 | "hyper", 1415 | "native-tls", 1416 | "tokio 0.2.25", 1417 | "tokio-tls", 1418 | ] 1419 | 1420 | [[package]] 1421 | name = "idna" 1422 | version = "0.2.3" 1423 | source = "registry+https://github.com/rust-lang/crates.io-index" 1424 | checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" 1425 | dependencies = [ 1426 | "matches", 1427 | "unicode-bidi", 1428 | "unicode-normalization", 1429 | ] 1430 | 1431 | [[package]] 1432 | name = "indexmap" 1433 | version = "1.6.2" 1434 | source = "registry+https://github.com/rust-lang/crates.io-index" 1435 | checksum = "824845a0bf897a9042383849b02c1bc219c2383772efcd5c6f9766fa4b81aef3" 1436 | dependencies = [ 1437 | "autocfg", 1438 | "hashbrown 0.9.1", 1439 | ] 1440 | 1441 | [[package]] 1442 | name = "infer" 1443 | version = "0.2.3" 1444 | source = "registry+https://github.com/rust-lang/crates.io-index" 1445 | checksum = "64e9829a50b42bb782c1df523f78d332fe371b10c661e78b7a3c34b0198e9fac" 1446 | 1447 | [[package]] 1448 | name = "instant" 1449 | version = "0.1.9" 1450 | source = "registry+https://github.com/rust-lang/crates.io-index" 1451 | checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec" 1452 | dependencies = [ 1453 | "cfg-if 1.0.0", 1454 | ] 1455 | 1456 | [[package]] 1457 | name = "iovec" 1458 | version = "0.1.4" 1459 | source = "registry+https://github.com/rust-lang/crates.io-index" 1460 | checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" 1461 | dependencies = [ 1462 | "libc", 1463 | ] 1464 | 1465 | [[package]] 1466 | name = "isahc" 1467 | version = "0.9.14" 1468 | source = "registry+https://github.com/rust-lang/crates.io-index" 1469 | checksum = "e2948a0ce43e2c2ef11d7edf6816508998d99e13badd1150be0914205df9388a" 1470 | dependencies = [ 1471 | "bytes 0.5.6", 1472 | "crossbeam-utils", 1473 | "curl", 1474 | "curl-sys", 1475 | "flume", 1476 | "futures-lite", 1477 | "http", 1478 | "log", 1479 | "once_cell", 1480 | "slab", 1481 | "sluice", 1482 | "tracing", 1483 | "tracing-futures", 1484 | "url", 1485 | "waker-fn", 1486 | ] 1487 | 1488 | [[package]] 1489 | name = "itoa" 1490 | version = "0.4.7" 1491 | source = "registry+https://github.com/rust-lang/crates.io-index" 1492 | checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" 1493 | 1494 | [[package]] 1495 | name = "js-sys" 1496 | version = "0.3.51" 1497 | source = "registry+https://github.com/rust-lang/crates.io-index" 1498 | checksum = "83bdfbace3a0e81a4253f73b49e960b053e396a11012cbd49b9b74d6a2b67062" 1499 | dependencies = [ 1500 | "wasm-bindgen", 1501 | ] 1502 | 1503 | [[package]] 1504 | name = "kernel32-sys" 1505 | version = "0.2.2" 1506 | source = "registry+https://github.com/rust-lang/crates.io-index" 1507 | checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" 1508 | dependencies = [ 1509 | "winapi 0.2.8", 1510 | "winapi-build", 1511 | ] 1512 | 1513 | [[package]] 1514 | name = "kv-log-macro" 1515 | version = "1.0.7" 1516 | source = "registry+https://github.com/rust-lang/crates.io-index" 1517 | checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" 1518 | dependencies = [ 1519 | "log", 1520 | ] 1521 | 1522 | [[package]] 1523 | name = "lazy_static" 1524 | version = "1.4.0" 1525 | source = "registry+https://github.com/rust-lang/crates.io-index" 1526 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 1527 | 1528 | [[package]] 1529 | name = "lazycell" 1530 | version = "1.3.0" 1531 | source = "registry+https://github.com/rust-lang/crates.io-index" 1532 | checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" 1533 | 1534 | [[package]] 1535 | name = "lexical-core" 1536 | version = "0.7.6" 1537 | source = "registry+https://github.com/rust-lang/crates.io-index" 1538 | checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe" 1539 | dependencies = [ 1540 | "arrayvec", 1541 | "bitflags", 1542 | "cfg-if 1.0.0", 1543 | "ryu", 1544 | "static_assertions", 1545 | ] 1546 | 1547 | [[package]] 1548 | name = "libc" 1549 | version = "0.2.126" 1550 | source = "registry+https://github.com/rust-lang/crates.io-index" 1551 | checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" 1552 | 1553 | [[package]] 1554 | name = "libnghttp2-sys" 1555 | version = "0.1.6+1.43.0" 1556 | source = "registry+https://github.com/rust-lang/crates.io-index" 1557 | checksum = "0af55541a8827e138d59ec9e5877fb6095ece63fb6f4da45e7491b4fbd262855" 1558 | dependencies = [ 1559 | "cc", 1560 | "libc", 1561 | ] 1562 | 1563 | [[package]] 1564 | name = "libz-sys" 1565 | version = "1.1.3" 1566 | source = "registry+https://github.com/rust-lang/crates.io-index" 1567 | checksum = "de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66" 1568 | dependencies = [ 1569 | "cc", 1570 | "libc", 1571 | "pkg-config", 1572 | "vcpkg", 1573 | ] 1574 | 1575 | [[package]] 1576 | name = "line-wrap" 1577 | version = "0.1.1" 1578 | source = "registry+https://github.com/rust-lang/crates.io-index" 1579 | checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9" 1580 | dependencies = [ 1581 | "safemem", 1582 | ] 1583 | 1584 | [[package]] 1585 | name = "linked-hash-map" 1586 | version = "0.5.4" 1587 | source = "registry+https://github.com/rust-lang/crates.io-index" 1588 | checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3" 1589 | 1590 | [[package]] 1591 | name = "lock_api" 1592 | version = "0.4.7" 1593 | source = "registry+https://github.com/rust-lang/crates.io-index" 1594 | checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" 1595 | dependencies = [ 1596 | "autocfg", 1597 | "scopeguard", 1598 | ] 1599 | 1600 | [[package]] 1601 | name = "log" 1602 | version = "0.4.14" 1603 | source = "registry+https://github.com/rust-lang/crates.io-index" 1604 | checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" 1605 | dependencies = [ 1606 | "cfg-if 1.0.0", 1607 | "value-bag", 1608 | ] 1609 | 1610 | [[package]] 1611 | name = "longboard" 1612 | version = "0.0.7" 1613 | dependencies = [ 1614 | "async-std", 1615 | "atty", 1616 | "bat", 1617 | "env_logger", 1618 | "http-client", 1619 | "structopt", 1620 | "surf", 1621 | "surf-cookie-middleware", 1622 | ] 1623 | 1624 | [[package]] 1625 | name = "matches" 1626 | version = "0.1.8" 1627 | source = "registry+https://github.com/rust-lang/crates.io-index" 1628 | checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" 1629 | 1630 | [[package]] 1631 | name = "memchr" 1632 | version = "2.4.0" 1633 | source = "registry+https://github.com/rust-lang/crates.io-index" 1634 | checksum = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc" 1635 | 1636 | [[package]] 1637 | name = "mime" 1638 | version = "0.3.16" 1639 | source = "registry+https://github.com/rust-lang/crates.io-index" 1640 | checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" 1641 | 1642 | [[package]] 1643 | name = "mime_guess" 1644 | version = "2.0.3" 1645 | source = "registry+https://github.com/rust-lang/crates.io-index" 1646 | checksum = "2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212" 1647 | dependencies = [ 1648 | "mime", 1649 | "unicase", 1650 | ] 1651 | 1652 | [[package]] 1653 | name = "miniz_oxide" 1654 | version = "0.4.4" 1655 | source = "registry+https://github.com/rust-lang/crates.io-index" 1656 | checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" 1657 | dependencies = [ 1658 | "adler", 1659 | "autocfg", 1660 | ] 1661 | 1662 | [[package]] 1663 | name = "mio" 1664 | version = "0.6.23" 1665 | source = "registry+https://github.com/rust-lang/crates.io-index" 1666 | checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" 1667 | dependencies = [ 1668 | "cfg-if 0.1.10", 1669 | "fuchsia-zircon", 1670 | "fuchsia-zircon-sys", 1671 | "iovec", 1672 | "kernel32-sys", 1673 | "libc", 1674 | "log", 1675 | "miow", 1676 | "net2", 1677 | "slab", 1678 | "winapi 0.2.8", 1679 | ] 1680 | 1681 | [[package]] 1682 | name = "miow" 1683 | version = "0.2.2" 1684 | source = "registry+https://github.com/rust-lang/crates.io-index" 1685 | checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" 1686 | dependencies = [ 1687 | "kernel32-sys", 1688 | "net2", 1689 | "winapi 0.2.8", 1690 | "ws2_32-sys", 1691 | ] 1692 | 1693 | [[package]] 1694 | name = "native-tls" 1695 | version = "0.2.7" 1696 | source = "registry+https://github.com/rust-lang/crates.io-index" 1697 | checksum = "b8d96b2e1c8da3957d58100b09f102c6d9cfdfced01b7ec5a8974044bb09dbd4" 1698 | dependencies = [ 1699 | "lazy_static", 1700 | "libc", 1701 | "log", 1702 | "openssl", 1703 | "openssl-probe", 1704 | "openssl-sys", 1705 | "schannel", 1706 | "security-framework", 1707 | "security-framework-sys", 1708 | "tempfile", 1709 | ] 1710 | 1711 | [[package]] 1712 | name = "net2" 1713 | version = "0.2.37" 1714 | source = "registry+https://github.com/rust-lang/crates.io-index" 1715 | checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae" 1716 | dependencies = [ 1717 | "cfg-if 0.1.10", 1718 | "libc", 1719 | "winapi 0.3.9", 1720 | ] 1721 | 1722 | [[package]] 1723 | name = "nom" 1724 | version = "5.1.2" 1725 | source = "registry+https://github.com/rust-lang/crates.io-index" 1726 | checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af" 1727 | dependencies = [ 1728 | "lexical-core", 1729 | "memchr", 1730 | "version_check", 1731 | ] 1732 | 1733 | [[package]] 1734 | name = "num-integer" 1735 | version = "0.1.44" 1736 | source = "registry+https://github.com/rust-lang/crates.io-index" 1737 | checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" 1738 | dependencies = [ 1739 | "autocfg", 1740 | "num-traits", 1741 | ] 1742 | 1743 | [[package]] 1744 | name = "num-traits" 1745 | version = "0.2.14" 1746 | source = "registry+https://github.com/rust-lang/crates.io-index" 1747 | checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" 1748 | dependencies = [ 1749 | "autocfg", 1750 | ] 1751 | 1752 | [[package]] 1753 | name = "num_cpus" 1754 | version = "1.13.0" 1755 | source = "registry+https://github.com/rust-lang/crates.io-index" 1756 | checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" 1757 | dependencies = [ 1758 | "hermit-abi", 1759 | "libc", 1760 | ] 1761 | 1762 | [[package]] 1763 | name = "once_cell" 1764 | version = "1.7.2" 1765 | source = "registry+https://github.com/rust-lang/crates.io-index" 1766 | checksum = "af8b08b04175473088b46763e51ee54da5f9a164bc162f615b91bc179dbf15a3" 1767 | 1768 | [[package]] 1769 | name = "onig" 1770 | version = "6.1.1" 1771 | source = "registry+https://github.com/rust-lang/crates.io-index" 1772 | checksum = "30b46fd9edbc018f0be4e366c24c46db44fac49cd01c039ae85308088b089dd5" 1773 | dependencies = [ 1774 | "bitflags", 1775 | "lazy_static", 1776 | "libc", 1777 | "onig_sys", 1778 | ] 1779 | 1780 | [[package]] 1781 | name = "onig_sys" 1782 | version = "69.6.0" 1783 | source = "registry+https://github.com/rust-lang/crates.io-index" 1784 | checksum = "ed063c96cf4c0f2e5d09324409d158b38a0a85a7b90fbd68c8cad75c495d5775" 1785 | dependencies = [ 1786 | "cc", 1787 | "pkg-config", 1788 | ] 1789 | 1790 | [[package]] 1791 | name = "opaque-debug" 1792 | version = "0.3.0" 1793 | source = "registry+https://github.com/rust-lang/crates.io-index" 1794 | checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" 1795 | 1796 | [[package]] 1797 | name = "openssl" 1798 | version = "0.10.34" 1799 | source = "registry+https://github.com/rust-lang/crates.io-index" 1800 | checksum = "6d7830286ad6a3973c0f1d9b73738f69c76b739301d0229c4b96501695cbe4c8" 1801 | dependencies = [ 1802 | "bitflags", 1803 | "cfg-if 1.0.0", 1804 | "foreign-types", 1805 | "libc", 1806 | "once_cell", 1807 | "openssl-sys", 1808 | ] 1809 | 1810 | [[package]] 1811 | name = "openssl-probe" 1812 | version = "0.1.4" 1813 | source = "registry+https://github.com/rust-lang/crates.io-index" 1814 | checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" 1815 | 1816 | [[package]] 1817 | name = "openssl-sys" 1818 | version = "0.9.63" 1819 | source = "registry+https://github.com/rust-lang/crates.io-index" 1820 | checksum = "b6b0d6fb7d80f877617dfcb014e605e2b5ab2fb0afdf27935219bb6bd984cb98" 1821 | dependencies = [ 1822 | "autocfg", 1823 | "cc", 1824 | "libc", 1825 | "pkg-config", 1826 | "vcpkg", 1827 | ] 1828 | 1829 | [[package]] 1830 | name = "parking" 1831 | version = "2.0.0" 1832 | source = "registry+https://github.com/rust-lang/crates.io-index" 1833 | checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" 1834 | 1835 | [[package]] 1836 | name = "parking_lot_core" 1837 | version = "0.9.3" 1838 | source = "registry+https://github.com/rust-lang/crates.io-index" 1839 | checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" 1840 | dependencies = [ 1841 | "cfg-if 1.0.0", 1842 | "libc", 1843 | "redox_syscall", 1844 | "smallvec", 1845 | "windows-sys", 1846 | ] 1847 | 1848 | [[package]] 1849 | name = "path_abs" 1850 | version = "0.5.1" 1851 | source = "registry+https://github.com/rust-lang/crates.io-index" 1852 | checksum = "05ef02f6342ac01d8a93b65f96db53fe68a92a15f41144f97fb00a9e669633c3" 1853 | dependencies = [ 1854 | "std_prelude", 1855 | ] 1856 | 1857 | [[package]] 1858 | name = "percent-encoding" 1859 | version = "2.1.0" 1860 | source = "registry+https://github.com/rust-lang/crates.io-index" 1861 | checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" 1862 | 1863 | [[package]] 1864 | name = "pest" 1865 | version = "2.1.3" 1866 | source = "registry+https://github.com/rust-lang/crates.io-index" 1867 | checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" 1868 | dependencies = [ 1869 | "ucd-trie", 1870 | ] 1871 | 1872 | [[package]] 1873 | name = "pin-project" 1874 | version = "1.0.7" 1875 | source = "registry+https://github.com/rust-lang/crates.io-index" 1876 | checksum = "c7509cc106041c40a4518d2af7a61530e1eed0e6285296a3d8c5472806ccc4a4" 1877 | dependencies = [ 1878 | "pin-project-internal", 1879 | ] 1880 | 1881 | [[package]] 1882 | name = "pin-project-internal" 1883 | version = "1.0.7" 1884 | source = "registry+https://github.com/rust-lang/crates.io-index" 1885 | checksum = "48c950132583b500556b1efd71d45b319029f2b71518d979fcc208e16b42426f" 1886 | dependencies = [ 1887 | "proc-macro2", 1888 | "quote", 1889 | "syn", 1890 | ] 1891 | 1892 | [[package]] 1893 | name = "pin-project-lite" 1894 | version = "0.1.12" 1895 | source = "registry+https://github.com/rust-lang/crates.io-index" 1896 | checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" 1897 | 1898 | [[package]] 1899 | name = "pin-project-lite" 1900 | version = "0.2.6" 1901 | source = "registry+https://github.com/rust-lang/crates.io-index" 1902 | checksum = "dc0e1f259c92177c30a4c9d177246edd0a3568b25756a977d0632cf8fa37e905" 1903 | 1904 | [[package]] 1905 | name = "pin-utils" 1906 | version = "0.1.0" 1907 | source = "registry+https://github.com/rust-lang/crates.io-index" 1908 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 1909 | 1910 | [[package]] 1911 | name = "pkg-config" 1912 | version = "0.3.19" 1913 | source = "registry+https://github.com/rust-lang/crates.io-index" 1914 | checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c" 1915 | 1916 | [[package]] 1917 | name = "plist" 1918 | version = "1.1.0" 1919 | source = "registry+https://github.com/rust-lang/crates.io-index" 1920 | checksum = "679104537029ed2287c216bfb942bbf723f48ee98f0aef15611634173a74ef21" 1921 | dependencies = [ 1922 | "base64 0.13.0", 1923 | "chrono", 1924 | "indexmap", 1925 | "line-wrap", 1926 | "serde", 1927 | "xml-rs", 1928 | ] 1929 | 1930 | [[package]] 1931 | name = "polling" 1932 | version = "2.0.3" 1933 | source = "registry+https://github.com/rust-lang/crates.io-index" 1934 | checksum = "4fc12d774e799ee9ebae13f4076ca003b40d18a11ac0f3641e6f899618580b7b" 1935 | dependencies = [ 1936 | "cfg-if 1.0.0", 1937 | "libc", 1938 | "log", 1939 | "wepoll-sys", 1940 | "winapi 0.3.9", 1941 | ] 1942 | 1943 | [[package]] 1944 | name = "polyval" 1945 | version = "0.4.5" 1946 | source = "registry+https://github.com/rust-lang/crates.io-index" 1947 | checksum = "eebcc4aa140b9abd2bc40d9c3f7ccec842679cd79045ac3a7ac698c1a064b7cd" 1948 | dependencies = [ 1949 | "cpuid-bool", 1950 | "opaque-debug", 1951 | "universal-hash", 1952 | ] 1953 | 1954 | [[package]] 1955 | name = "ppv-lite86" 1956 | version = "0.2.10" 1957 | source = "registry+https://github.com/rust-lang/crates.io-index" 1958 | checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" 1959 | 1960 | [[package]] 1961 | name = "proc-macro-error" 1962 | version = "1.0.4" 1963 | source = "registry+https://github.com/rust-lang/crates.io-index" 1964 | checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 1965 | dependencies = [ 1966 | "proc-macro-error-attr", 1967 | "proc-macro2", 1968 | "quote", 1969 | "syn", 1970 | "version_check", 1971 | ] 1972 | 1973 | [[package]] 1974 | name = "proc-macro-error-attr" 1975 | version = "1.0.4" 1976 | source = "registry+https://github.com/rust-lang/crates.io-index" 1977 | checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 1978 | dependencies = [ 1979 | "proc-macro2", 1980 | "quote", 1981 | "version_check", 1982 | ] 1983 | 1984 | [[package]] 1985 | name = "proc-macro-hack" 1986 | version = "0.5.19" 1987 | source = "registry+https://github.com/rust-lang/crates.io-index" 1988 | checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" 1989 | 1990 | [[package]] 1991 | name = "proc-macro-nested" 1992 | version = "0.1.7" 1993 | source = "registry+https://github.com/rust-lang/crates.io-index" 1994 | checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086" 1995 | 1996 | [[package]] 1997 | name = "proc-macro2" 1998 | version = "1.0.26" 1999 | source = "registry+https://github.com/rust-lang/crates.io-index" 2000 | checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec" 2001 | dependencies = [ 2002 | "unicode-xid", 2003 | ] 2004 | 2005 | [[package]] 2006 | name = "psl-types" 2007 | version = "2.0.7" 2008 | source = "registry+https://github.com/rust-lang/crates.io-index" 2009 | checksum = "66b398073e7cdd6f05934389a8f5961e3aabfa66675b6f440df4e2c793d51a4f" 2010 | 2011 | [[package]] 2012 | name = "publicsuffix" 2013 | version = "2.1.0" 2014 | source = "registry+https://github.com/rust-lang/crates.io-index" 2015 | checksum = "c3ac055aef7cc7a1caefbc65144be879e862467dcd9b8a8d57b64a13e7dce15d" 2016 | dependencies = [ 2017 | "byteorder", 2018 | "hashbrown 0.11.2", 2019 | "idna", 2020 | "psl-types", 2021 | ] 2022 | 2023 | [[package]] 2024 | name = "quote" 2025 | version = "1.0.9" 2026 | source = "registry+https://github.com/rust-lang/crates.io-index" 2027 | checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" 2028 | dependencies = [ 2029 | "proc-macro2", 2030 | ] 2031 | 2032 | [[package]] 2033 | name = "rand" 2034 | version = "0.7.3" 2035 | source = "registry+https://github.com/rust-lang/crates.io-index" 2036 | checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" 2037 | dependencies = [ 2038 | "getrandom 0.1.16", 2039 | "libc", 2040 | "rand_chacha 0.2.2", 2041 | "rand_core 0.5.1", 2042 | "rand_hc 0.2.0", 2043 | ] 2044 | 2045 | [[package]] 2046 | name = "rand" 2047 | version = "0.8.3" 2048 | source = "registry+https://github.com/rust-lang/crates.io-index" 2049 | checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e" 2050 | dependencies = [ 2051 | "libc", 2052 | "rand_chacha 0.3.0", 2053 | "rand_core 0.6.2", 2054 | "rand_hc 0.3.0", 2055 | ] 2056 | 2057 | [[package]] 2058 | name = "rand_chacha" 2059 | version = "0.2.2" 2060 | source = "registry+https://github.com/rust-lang/crates.io-index" 2061 | checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" 2062 | dependencies = [ 2063 | "ppv-lite86", 2064 | "rand_core 0.5.1", 2065 | ] 2066 | 2067 | [[package]] 2068 | name = "rand_chacha" 2069 | version = "0.3.0" 2070 | source = "registry+https://github.com/rust-lang/crates.io-index" 2071 | checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" 2072 | dependencies = [ 2073 | "ppv-lite86", 2074 | "rand_core 0.6.2", 2075 | ] 2076 | 2077 | [[package]] 2078 | name = "rand_core" 2079 | version = "0.5.1" 2080 | source = "registry+https://github.com/rust-lang/crates.io-index" 2081 | checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" 2082 | dependencies = [ 2083 | "getrandom 0.1.16", 2084 | ] 2085 | 2086 | [[package]] 2087 | name = "rand_core" 2088 | version = "0.6.2" 2089 | source = "registry+https://github.com/rust-lang/crates.io-index" 2090 | checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7" 2091 | dependencies = [ 2092 | "getrandom 0.2.2", 2093 | ] 2094 | 2095 | [[package]] 2096 | name = "rand_hc" 2097 | version = "0.2.0" 2098 | source = "registry+https://github.com/rust-lang/crates.io-index" 2099 | checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" 2100 | dependencies = [ 2101 | "rand_core 0.5.1", 2102 | ] 2103 | 2104 | [[package]] 2105 | name = "rand_hc" 2106 | version = "0.3.0" 2107 | source = "registry+https://github.com/rust-lang/crates.io-index" 2108 | checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73" 2109 | dependencies = [ 2110 | "rand_core 0.6.2", 2111 | ] 2112 | 2113 | [[package]] 2114 | name = "redox_syscall" 2115 | version = "0.2.8" 2116 | source = "registry+https://github.com/rust-lang/crates.io-index" 2117 | checksum = "742739e41cd49414de871ea5e549afb7e2a3ac77b589bcbebe8c82fab37147fc" 2118 | dependencies = [ 2119 | "bitflags", 2120 | ] 2121 | 2122 | [[package]] 2123 | name = "redox_users" 2124 | version = "0.4.0" 2125 | source = "registry+https://github.com/rust-lang/crates.io-index" 2126 | checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64" 2127 | dependencies = [ 2128 | "getrandom 0.2.2", 2129 | "redox_syscall", 2130 | ] 2131 | 2132 | [[package]] 2133 | name = "regex" 2134 | version = "1.5.6" 2135 | source = "registry+https://github.com/rust-lang/crates.io-index" 2136 | checksum = "d83f127d94bdbcda4c8cc2e50f6f84f4b611f69c902699ca385a39c3a75f9ff1" 2137 | dependencies = [ 2138 | "aho-corasick", 2139 | "memchr", 2140 | "regex-syntax", 2141 | ] 2142 | 2143 | [[package]] 2144 | name = "regex-automata" 2145 | version = "0.1.10" 2146 | source = "registry+https://github.com/rust-lang/crates.io-index" 2147 | checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" 2148 | 2149 | [[package]] 2150 | name = "regex-syntax" 2151 | version = "0.6.26" 2152 | source = "registry+https://github.com/rust-lang/crates.io-index" 2153 | checksum = "49b3de9ec5dc0a3417da371aab17d729997c15010e7fd24ff707773a33bddb64" 2154 | 2155 | [[package]] 2156 | name = "remove_dir_all" 2157 | version = "0.5.3" 2158 | source = "registry+https://github.com/rust-lang/crates.io-index" 2159 | checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" 2160 | dependencies = [ 2161 | "winapi 0.3.9", 2162 | ] 2163 | 2164 | [[package]] 2165 | name = "ring" 2166 | version = "0.16.20" 2167 | source = "registry+https://github.com/rust-lang/crates.io-index" 2168 | checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" 2169 | dependencies = [ 2170 | "cc", 2171 | "libc", 2172 | "once_cell", 2173 | "spin", 2174 | "untrusted", 2175 | "web-sys", 2176 | "winapi 0.3.9", 2177 | ] 2178 | 2179 | [[package]] 2180 | name = "rustc_version" 2181 | version = "0.2.3" 2182 | source = "registry+https://github.com/rust-lang/crates.io-index" 2183 | checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" 2184 | dependencies = [ 2185 | "semver 0.9.0", 2186 | ] 2187 | 2188 | [[package]] 2189 | name = "rustls" 2190 | version = "0.18.1" 2191 | source = "registry+https://github.com/rust-lang/crates.io-index" 2192 | checksum = "5d1126dcf58e93cee7d098dbda643b5f92ed724f1f6a63007c1116eed6700c81" 2193 | dependencies = [ 2194 | "base64 0.12.3", 2195 | "log", 2196 | "ring", 2197 | "sct", 2198 | "webpki", 2199 | ] 2200 | 2201 | [[package]] 2202 | name = "ryu" 2203 | version = "1.0.5" 2204 | source = "registry+https://github.com/rust-lang/crates.io-index" 2205 | checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" 2206 | 2207 | [[package]] 2208 | name = "safemem" 2209 | version = "0.3.3" 2210 | source = "registry+https://github.com/rust-lang/crates.io-index" 2211 | checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" 2212 | 2213 | [[package]] 2214 | name = "same-file" 2215 | version = "1.0.6" 2216 | source = "registry+https://github.com/rust-lang/crates.io-index" 2217 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 2218 | dependencies = [ 2219 | "winapi-util", 2220 | ] 2221 | 2222 | [[package]] 2223 | name = "schannel" 2224 | version = "0.1.19" 2225 | source = "registry+https://github.com/rust-lang/crates.io-index" 2226 | checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" 2227 | dependencies = [ 2228 | "lazy_static", 2229 | "winapi 0.3.9", 2230 | ] 2231 | 2232 | [[package]] 2233 | name = "scopeguard" 2234 | version = "1.1.0" 2235 | source = "registry+https://github.com/rust-lang/crates.io-index" 2236 | checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" 2237 | 2238 | [[package]] 2239 | name = "sct" 2240 | version = "0.6.1" 2241 | source = "registry+https://github.com/rust-lang/crates.io-index" 2242 | checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" 2243 | dependencies = [ 2244 | "ring", 2245 | "untrusted", 2246 | ] 2247 | 2248 | [[package]] 2249 | name = "security-framework" 2250 | version = "2.2.0" 2251 | source = "registry+https://github.com/rust-lang/crates.io-index" 2252 | checksum = "3670b1d2fdf6084d192bc71ead7aabe6c06aa2ea3fbd9cc3ac111fa5c2b1bd84" 2253 | dependencies = [ 2254 | "bitflags", 2255 | "core-foundation", 2256 | "core-foundation-sys", 2257 | "libc", 2258 | "security-framework-sys", 2259 | ] 2260 | 2261 | [[package]] 2262 | name = "security-framework-sys" 2263 | version = "2.2.0" 2264 | source = "registry+https://github.com/rust-lang/crates.io-index" 2265 | checksum = "3676258fd3cfe2c9a0ec99ce3038798d847ce3e4bb17746373eb9f0f1ac16339" 2266 | dependencies = [ 2267 | "core-foundation-sys", 2268 | "libc", 2269 | ] 2270 | 2271 | [[package]] 2272 | name = "semver" 2273 | version = "0.9.0" 2274 | source = "registry+https://github.com/rust-lang/crates.io-index" 2275 | checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" 2276 | dependencies = [ 2277 | "semver-parser 0.7.0", 2278 | ] 2279 | 2280 | [[package]] 2281 | name = "semver" 2282 | version = "0.11.0" 2283 | source = "registry+https://github.com/rust-lang/crates.io-index" 2284 | checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" 2285 | dependencies = [ 2286 | "semver-parser 0.10.2", 2287 | ] 2288 | 2289 | [[package]] 2290 | name = "semver-parser" 2291 | version = "0.7.0" 2292 | source = "registry+https://github.com/rust-lang/crates.io-index" 2293 | checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" 2294 | 2295 | [[package]] 2296 | name = "semver-parser" 2297 | version = "0.10.2" 2298 | source = "registry+https://github.com/rust-lang/crates.io-index" 2299 | checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" 2300 | dependencies = [ 2301 | "pest", 2302 | ] 2303 | 2304 | [[package]] 2305 | name = "serde" 2306 | version = "1.0.126" 2307 | source = "registry+https://github.com/rust-lang/crates.io-index" 2308 | checksum = "ec7505abeacaec74ae4778d9d9328fe5a5d04253220a85c4ee022239fc996d03" 2309 | dependencies = [ 2310 | "serde_derive", 2311 | ] 2312 | 2313 | [[package]] 2314 | name = "serde_derive" 2315 | version = "1.0.126" 2316 | source = "registry+https://github.com/rust-lang/crates.io-index" 2317 | checksum = "963a7dbc9895aeac7ac90e74f34a5d5261828f79df35cbed41e10189d3804d43" 2318 | dependencies = [ 2319 | "proc-macro2", 2320 | "quote", 2321 | "syn", 2322 | ] 2323 | 2324 | [[package]] 2325 | name = "serde_json" 2326 | version = "1.0.67" 2327 | source = "registry+https://github.com/rust-lang/crates.io-index" 2328 | checksum = "a7f9e390c27c3c0ce8bc5d725f6e4d30a29d26659494aa4b17535f7522c5c950" 2329 | dependencies = [ 2330 | "itoa", 2331 | "ryu", 2332 | "serde", 2333 | ] 2334 | 2335 | [[package]] 2336 | name = "serde_qs" 2337 | version = "0.7.2" 2338 | source = "registry+https://github.com/rust-lang/crates.io-index" 2339 | checksum = "5af82de3c6549b001bec34961ff2d6a54339a87bab37ce901b693401f27de6cb" 2340 | dependencies = [ 2341 | "data-encoding", 2342 | "percent-encoding", 2343 | "serde", 2344 | "thiserror", 2345 | ] 2346 | 2347 | [[package]] 2348 | name = "serde_urlencoded" 2349 | version = "0.7.0" 2350 | source = "registry+https://github.com/rust-lang/crates.io-index" 2351 | checksum = "edfa57a7f8d9c1d260a549e7224100f6c43d43f9103e06dd8b4095a9b2b43ce9" 2352 | dependencies = [ 2353 | "form_urlencoded", 2354 | "itoa", 2355 | "ryu", 2356 | "serde", 2357 | ] 2358 | 2359 | [[package]] 2360 | name = "serde_yaml" 2361 | version = "0.8.17" 2362 | source = "registry+https://github.com/rust-lang/crates.io-index" 2363 | checksum = "15654ed4ab61726bf918a39cb8d98a2e2995b002387807fa6ba58fdf7f59bb23" 2364 | dependencies = [ 2365 | "dtoa", 2366 | "linked-hash-map", 2367 | "serde", 2368 | "yaml-rust", 2369 | ] 2370 | 2371 | [[package]] 2372 | name = "sha1" 2373 | version = "0.6.0" 2374 | source = "registry+https://github.com/rust-lang/crates.io-index" 2375 | checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d" 2376 | 2377 | [[package]] 2378 | name = "sha2" 2379 | version = "0.9.5" 2380 | source = "registry+https://github.com/rust-lang/crates.io-index" 2381 | checksum = "b362ae5752fd2137731f9fa25fd4d9058af34666ca1966fb969119cc35719f12" 2382 | dependencies = [ 2383 | "block-buffer", 2384 | "cfg-if 1.0.0", 2385 | "cpufeatures", 2386 | "digest", 2387 | "opaque-debug", 2388 | ] 2389 | 2390 | [[package]] 2391 | name = "shell-escape" 2392 | version = "0.1.5" 2393 | source = "registry+https://github.com/rust-lang/crates.io-index" 2394 | checksum = "45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f" 2395 | 2396 | [[package]] 2397 | name = "shell-words" 2398 | version = "1.0.0" 2399 | source = "registry+https://github.com/rust-lang/crates.io-index" 2400 | checksum = "b6fa3938c99da4914afedd13bf3d79bcb6c277d1b2c398d23257a304d9e1b074" 2401 | 2402 | [[package]] 2403 | name = "simple-mutex" 2404 | version = "1.1.5" 2405 | source = "registry+https://github.com/rust-lang/crates.io-index" 2406 | checksum = "38aabbeafa6f6dead8cebf246fe9fae1f9215c8d29b3a69f93bd62a9e4a3dcd6" 2407 | dependencies = [ 2408 | "event-listener", 2409 | ] 2410 | 2411 | [[package]] 2412 | name = "slab" 2413 | version = "0.4.3" 2414 | source = "registry+https://github.com/rust-lang/crates.io-index" 2415 | checksum = "f173ac3d1a7e3b28003f40de0b5ce7fe2710f9b9dc3fc38664cebee46b3b6527" 2416 | 2417 | [[package]] 2418 | name = "sluice" 2419 | version = "0.5.4" 2420 | source = "registry+https://github.com/rust-lang/crates.io-index" 2421 | checksum = "8fa0333a60ff2e3474a6775cc611840c2a55610c831dd366503474c02f1a28f5" 2422 | dependencies = [ 2423 | "futures-channel", 2424 | "futures-core", 2425 | "futures-io", 2426 | ] 2427 | 2428 | [[package]] 2429 | name = "smallvec" 2430 | version = "1.8.0" 2431 | source = "registry+https://github.com/rust-lang/crates.io-index" 2432 | checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" 2433 | 2434 | [[package]] 2435 | name = "socket2" 2436 | version = "0.3.19" 2437 | source = "registry+https://github.com/rust-lang/crates.io-index" 2438 | checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e" 2439 | dependencies = [ 2440 | "cfg-if 1.0.0", 2441 | "libc", 2442 | "winapi 0.3.9", 2443 | ] 2444 | 2445 | [[package]] 2446 | name = "socket2" 2447 | version = "0.4.0" 2448 | source = "registry+https://github.com/rust-lang/crates.io-index" 2449 | checksum = "9e3dfc207c526015c632472a77be09cf1b6e46866581aecae5cc38fb4235dea2" 2450 | dependencies = [ 2451 | "libc", 2452 | "winapi 0.3.9", 2453 | ] 2454 | 2455 | [[package]] 2456 | name = "spin" 2457 | version = "0.5.2" 2458 | source = "registry+https://github.com/rust-lang/crates.io-index" 2459 | checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" 2460 | 2461 | [[package]] 2462 | name = "spinning_top" 2463 | version = "0.2.4" 2464 | source = "registry+https://github.com/rust-lang/crates.io-index" 2465 | checksum = "75adad84ee84b521fb2cca2d4fd0f1dab1d8d026bda3c5bea4ca63b5f9f9293c" 2466 | dependencies = [ 2467 | "lock_api", 2468 | ] 2469 | 2470 | [[package]] 2471 | name = "stable_deref_trait" 2472 | version = "1.2.0" 2473 | source = "registry+https://github.com/rust-lang/crates.io-index" 2474 | checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 2475 | 2476 | [[package]] 2477 | name = "standback" 2478 | version = "0.2.17" 2479 | source = "registry+https://github.com/rust-lang/crates.io-index" 2480 | checksum = "e113fb6f3de07a243d434a56ec6f186dfd51cb08448239fe7bcae73f87ff28ff" 2481 | dependencies = [ 2482 | "version_check", 2483 | ] 2484 | 2485 | [[package]] 2486 | name = "static_assertions" 2487 | version = "1.1.0" 2488 | source = "registry+https://github.com/rust-lang/crates.io-index" 2489 | checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 2490 | 2491 | [[package]] 2492 | name = "std_prelude" 2493 | version = "0.2.12" 2494 | source = "registry+https://github.com/rust-lang/crates.io-index" 2495 | checksum = "8207e78455ffdf55661170876f88daf85356e4edd54e0a3dbc79586ca1e50cbe" 2496 | 2497 | [[package]] 2498 | name = "stdweb" 2499 | version = "0.4.20" 2500 | source = "registry+https://github.com/rust-lang/crates.io-index" 2501 | checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5" 2502 | dependencies = [ 2503 | "discard", 2504 | "rustc_version", 2505 | "stdweb-derive", 2506 | "stdweb-internal-macros", 2507 | "stdweb-internal-runtime", 2508 | "wasm-bindgen", 2509 | ] 2510 | 2511 | [[package]] 2512 | name = "stdweb-derive" 2513 | version = "0.5.3" 2514 | source = "registry+https://github.com/rust-lang/crates.io-index" 2515 | checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef" 2516 | dependencies = [ 2517 | "proc-macro2", 2518 | "quote", 2519 | "serde", 2520 | "serde_derive", 2521 | "syn", 2522 | ] 2523 | 2524 | [[package]] 2525 | name = "stdweb-internal-macros" 2526 | version = "0.2.9" 2527 | source = "registry+https://github.com/rust-lang/crates.io-index" 2528 | checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11" 2529 | dependencies = [ 2530 | "base-x", 2531 | "proc-macro2", 2532 | "quote", 2533 | "serde", 2534 | "serde_derive", 2535 | "serde_json", 2536 | "sha1", 2537 | "syn", 2538 | ] 2539 | 2540 | [[package]] 2541 | name = "stdweb-internal-runtime" 2542 | version = "0.1.5" 2543 | source = "registry+https://github.com/rust-lang/crates.io-index" 2544 | checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0" 2545 | 2546 | [[package]] 2547 | name = "strsim" 2548 | version = "0.8.0" 2549 | source = "registry+https://github.com/rust-lang/crates.io-index" 2550 | checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" 2551 | 2552 | [[package]] 2553 | name = "structopt" 2554 | version = "0.3.26" 2555 | source = "registry+https://github.com/rust-lang/crates.io-index" 2556 | checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" 2557 | dependencies = [ 2558 | "clap", 2559 | "lazy_static", 2560 | "structopt-derive", 2561 | ] 2562 | 2563 | [[package]] 2564 | name = "structopt-derive" 2565 | version = "0.4.18" 2566 | source = "registry+https://github.com/rust-lang/crates.io-index" 2567 | checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" 2568 | dependencies = [ 2569 | "heck", 2570 | "proc-macro-error", 2571 | "proc-macro2", 2572 | "quote", 2573 | "syn", 2574 | ] 2575 | 2576 | [[package]] 2577 | name = "subtle" 2578 | version = "2.4.0" 2579 | source = "registry+https://github.com/rust-lang/crates.io-index" 2580 | checksum = "1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2" 2581 | 2582 | [[package]] 2583 | name = "surf" 2584 | version = "2.3.2" 2585 | source = "registry+https://github.com/rust-lang/crates.io-index" 2586 | checksum = "718b1ae6b50351982dedff021db0def601677f2120938b070eadb10ba4038dd7" 2587 | dependencies = [ 2588 | "async-std", 2589 | "async-trait", 2590 | "cfg-if 1.0.0", 2591 | "encoding_rs", 2592 | "futures-util", 2593 | "getrandom 0.2.2", 2594 | "http-client", 2595 | "http-types", 2596 | "log", 2597 | "mime_guess", 2598 | "once_cell", 2599 | "pin-project-lite 0.2.6", 2600 | "serde", 2601 | "serde_json", 2602 | "web-sys", 2603 | ] 2604 | 2605 | [[package]] 2606 | name = "surf-cookie-middleware" 2607 | version = "0.3.0" 2608 | source = "registry+https://github.com/rust-lang/crates.io-index" 2609 | checksum = "e002b1abe5ecb87577cf2564ada64888e53539c7bed3a5fa2669b48f6680b42c" 2610 | dependencies = [ 2611 | "async-dup", 2612 | "async-std", 2613 | "cookie_store", 2614 | "log", 2615 | "serde_json", 2616 | "surf", 2617 | "tempfile", 2618 | ] 2619 | 2620 | [[package]] 2621 | name = "syn" 2622 | version = "1.0.72" 2623 | source = "registry+https://github.com/rust-lang/crates.io-index" 2624 | checksum = "a1e8cdbefb79a9a5a65e0db8b47b723ee907b7c7f8496c76a1770b5c310bab82" 2625 | dependencies = [ 2626 | "proc-macro2", 2627 | "quote", 2628 | "unicode-xid", 2629 | ] 2630 | 2631 | [[package]] 2632 | name = "syntect" 2633 | version = "4.5.0" 2634 | source = "registry+https://github.com/rust-lang/crates.io-index" 2635 | checksum = "2bfac2b23b4d049dc9a89353b4e06bbc85a8f42020cccbe5409a115cf19031e5" 2636 | dependencies = [ 2637 | "bincode", 2638 | "bitflags", 2639 | "flate2", 2640 | "fnv", 2641 | "lazy_static", 2642 | "lazycell", 2643 | "onig", 2644 | "plist", 2645 | "regex-syntax", 2646 | "serde", 2647 | "serde_derive", 2648 | "serde_json", 2649 | "walkdir", 2650 | "yaml-rust", 2651 | ] 2652 | 2653 | [[package]] 2654 | name = "sys-info" 2655 | version = "0.9.0" 2656 | source = "registry+https://github.com/rust-lang/crates.io-index" 2657 | checksum = "33fcecee49339531cf6bd84ecf3ed94f9c8ef4a7e700f2a1cac9cc1ca485383a" 2658 | dependencies = [ 2659 | "cc", 2660 | "libc", 2661 | ] 2662 | 2663 | [[package]] 2664 | name = "tempfile" 2665 | version = "3.2.0" 2666 | source = "registry+https://github.com/rust-lang/crates.io-index" 2667 | checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22" 2668 | dependencies = [ 2669 | "cfg-if 1.0.0", 2670 | "libc", 2671 | "rand 0.8.3", 2672 | "redox_syscall", 2673 | "remove_dir_all", 2674 | "winapi 0.3.9", 2675 | ] 2676 | 2677 | [[package]] 2678 | name = "term_size" 2679 | version = "0.3.2" 2680 | source = "registry+https://github.com/rust-lang/crates.io-index" 2681 | checksum = "1e4129646ca0ed8f45d09b929036bafad5377103edd06e50bf574b353d2b08d9" 2682 | dependencies = [ 2683 | "libc", 2684 | "winapi 0.3.9", 2685 | ] 2686 | 2687 | [[package]] 2688 | name = "termcolor" 2689 | version = "1.1.2" 2690 | source = "registry+https://github.com/rust-lang/crates.io-index" 2691 | checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" 2692 | dependencies = [ 2693 | "winapi-util", 2694 | ] 2695 | 2696 | [[package]] 2697 | name = "terminal_size" 2698 | version = "0.1.17" 2699 | source = "registry+https://github.com/rust-lang/crates.io-index" 2700 | checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df" 2701 | dependencies = [ 2702 | "libc", 2703 | "winapi 0.3.9", 2704 | ] 2705 | 2706 | [[package]] 2707 | name = "textwrap" 2708 | version = "0.11.0" 2709 | source = "registry+https://github.com/rust-lang/crates.io-index" 2710 | checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" 2711 | dependencies = [ 2712 | "term_size", 2713 | "unicode-width", 2714 | ] 2715 | 2716 | [[package]] 2717 | name = "thiserror" 2718 | version = "1.0.24" 2719 | source = "registry+https://github.com/rust-lang/crates.io-index" 2720 | checksum = "e0f4a65597094d4483ddaed134f409b2cb7c1beccf25201a9f73c719254fa98e" 2721 | dependencies = [ 2722 | "thiserror-impl", 2723 | ] 2724 | 2725 | [[package]] 2726 | name = "thiserror-impl" 2727 | version = "1.0.24" 2728 | source = "registry+https://github.com/rust-lang/crates.io-index" 2729 | checksum = "7765189610d8241a44529806d6fd1f2e0a08734313a35d5b3a556f92b381f3c0" 2730 | dependencies = [ 2731 | "proc-macro2", 2732 | "quote", 2733 | "syn", 2734 | ] 2735 | 2736 | [[package]] 2737 | name = "time" 2738 | version = "0.2.26" 2739 | source = "registry+https://github.com/rust-lang/crates.io-index" 2740 | checksum = "08a8cbfbf47955132d0202d1662f49b2423ae35862aee471f3ba4b133358f372" 2741 | dependencies = [ 2742 | "const_fn", 2743 | "libc", 2744 | "standback", 2745 | "stdweb", 2746 | "time-macros", 2747 | "version_check", 2748 | "winapi 0.3.9", 2749 | ] 2750 | 2751 | [[package]] 2752 | name = "time-macros" 2753 | version = "0.1.1" 2754 | source = "registry+https://github.com/rust-lang/crates.io-index" 2755 | checksum = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1" 2756 | dependencies = [ 2757 | "proc-macro-hack", 2758 | "time-macros-impl", 2759 | ] 2760 | 2761 | [[package]] 2762 | name = "time-macros-impl" 2763 | version = "0.1.1" 2764 | source = "registry+https://github.com/rust-lang/crates.io-index" 2765 | checksum = "e5c3be1edfad6027c69f5491cf4cb310d1a71ecd6af742788c6ff8bced86b8fa" 2766 | dependencies = [ 2767 | "proc-macro-hack", 2768 | "proc-macro2", 2769 | "quote", 2770 | "standback", 2771 | "syn", 2772 | ] 2773 | 2774 | [[package]] 2775 | name = "tinyvec" 2776 | version = "1.2.0" 2777 | source = "registry+https://github.com/rust-lang/crates.io-index" 2778 | checksum = "5b5220f05bb7de7f3f53c7c065e1199b3172696fe2db9f9c4d8ad9b4ee74c342" 2779 | dependencies = [ 2780 | "tinyvec_macros", 2781 | ] 2782 | 2783 | [[package]] 2784 | name = "tinyvec_macros" 2785 | version = "0.1.0" 2786 | source = "registry+https://github.com/rust-lang/crates.io-index" 2787 | checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" 2788 | 2789 | [[package]] 2790 | name = "tokio" 2791 | version = "0.2.25" 2792 | source = "registry+https://github.com/rust-lang/crates.io-index" 2793 | checksum = "6703a273949a90131b290be1fe7b039d0fc884aa1935860dfcbe056f28cd8092" 2794 | dependencies = [ 2795 | "bytes 0.5.6", 2796 | "fnv", 2797 | "futures-core", 2798 | "iovec", 2799 | "lazy_static", 2800 | "memchr", 2801 | "mio", 2802 | "pin-project-lite 0.1.12", 2803 | "slab", 2804 | ] 2805 | 2806 | [[package]] 2807 | name = "tokio" 2808 | version = "1.6.0" 2809 | source = "registry+https://github.com/rust-lang/crates.io-index" 2810 | checksum = "bd3076b5c8cc18138b8f8814895c11eb4de37114a5d127bafdc5e55798ceef37" 2811 | dependencies = [ 2812 | "autocfg", 2813 | "pin-project-lite 0.2.6", 2814 | ] 2815 | 2816 | [[package]] 2817 | name = "tokio-tls" 2818 | version = "0.3.1" 2819 | source = "registry+https://github.com/rust-lang/crates.io-index" 2820 | checksum = "9a70f4fcd7b3b24fb194f837560168208f669ca8cb70d0c4b862944452396343" 2821 | dependencies = [ 2822 | "native-tls", 2823 | "tokio 0.2.25", 2824 | ] 2825 | 2826 | [[package]] 2827 | name = "tokio-util" 2828 | version = "0.3.1" 2829 | source = "registry+https://github.com/rust-lang/crates.io-index" 2830 | checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499" 2831 | dependencies = [ 2832 | "bytes 0.5.6", 2833 | "futures-core", 2834 | "futures-sink", 2835 | "log", 2836 | "pin-project-lite 0.1.12", 2837 | "tokio 0.2.25", 2838 | ] 2839 | 2840 | [[package]] 2841 | name = "tower-service" 2842 | version = "0.3.1" 2843 | source = "registry+https://github.com/rust-lang/crates.io-index" 2844 | checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" 2845 | 2846 | [[package]] 2847 | name = "tracing" 2848 | version = "0.1.26" 2849 | source = "registry+https://github.com/rust-lang/crates.io-index" 2850 | checksum = "09adeb8c97449311ccd28a427f96fb563e7fd31aabf994189879d9da2394b89d" 2851 | dependencies = [ 2852 | "cfg-if 1.0.0", 2853 | "log", 2854 | "pin-project-lite 0.2.6", 2855 | "tracing-attributes", 2856 | "tracing-core", 2857 | ] 2858 | 2859 | [[package]] 2860 | name = "tracing-attributes" 2861 | version = "0.1.15" 2862 | source = "registry+https://github.com/rust-lang/crates.io-index" 2863 | checksum = "c42e6fa53307c8a17e4ccd4dc81cf5ec38db9209f59b222210375b54ee40d1e2" 2864 | dependencies = [ 2865 | "proc-macro2", 2866 | "quote", 2867 | "syn", 2868 | ] 2869 | 2870 | [[package]] 2871 | name = "tracing-core" 2872 | version = "0.1.18" 2873 | source = "registry+https://github.com/rust-lang/crates.io-index" 2874 | checksum = "a9ff14f98b1a4b289c6248a023c1c2fa1491062964e9fed67ab29c4e4da4a052" 2875 | dependencies = [ 2876 | "lazy_static", 2877 | ] 2878 | 2879 | [[package]] 2880 | name = "tracing-futures" 2881 | version = "0.2.5" 2882 | source = "registry+https://github.com/rust-lang/crates.io-index" 2883 | checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" 2884 | dependencies = [ 2885 | "pin-project", 2886 | "tracing", 2887 | ] 2888 | 2889 | [[package]] 2890 | name = "try-lock" 2891 | version = "0.2.3" 2892 | source = "registry+https://github.com/rust-lang/crates.io-index" 2893 | checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" 2894 | 2895 | [[package]] 2896 | name = "typenum" 2897 | version = "1.13.0" 2898 | source = "registry+https://github.com/rust-lang/crates.io-index" 2899 | checksum = "879f6906492a7cd215bfa4cf595b600146ccfac0c79bcbd1f3000162af5e8b06" 2900 | 2901 | [[package]] 2902 | name = "ucd-trie" 2903 | version = "0.1.3" 2904 | source = "registry+https://github.com/rust-lang/crates.io-index" 2905 | checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" 2906 | 2907 | [[package]] 2908 | name = "unicase" 2909 | version = "2.6.0" 2910 | source = "registry+https://github.com/rust-lang/crates.io-index" 2911 | checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" 2912 | dependencies = [ 2913 | "version_check", 2914 | ] 2915 | 2916 | [[package]] 2917 | name = "unicode-bidi" 2918 | version = "0.3.5" 2919 | source = "registry+https://github.com/rust-lang/crates.io-index" 2920 | checksum = "eeb8be209bb1c96b7c177c7420d26e04eccacb0eeae6b980e35fcb74678107e0" 2921 | dependencies = [ 2922 | "matches", 2923 | ] 2924 | 2925 | [[package]] 2926 | name = "unicode-normalization" 2927 | version = "0.1.17" 2928 | source = "registry+https://github.com/rust-lang/crates.io-index" 2929 | checksum = "07fbfce1c8a97d547e8b5334978438d9d6ec8c20e38f56d4a4374d181493eaef" 2930 | dependencies = [ 2931 | "tinyvec", 2932 | ] 2933 | 2934 | [[package]] 2935 | name = "unicode-segmentation" 2936 | version = "1.7.1" 2937 | source = "registry+https://github.com/rust-lang/crates.io-index" 2938 | checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796" 2939 | 2940 | [[package]] 2941 | name = "unicode-width" 2942 | version = "0.1.8" 2943 | source = "registry+https://github.com/rust-lang/crates.io-index" 2944 | checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" 2945 | 2946 | [[package]] 2947 | name = "unicode-xid" 2948 | version = "0.2.2" 2949 | source = "registry+https://github.com/rust-lang/crates.io-index" 2950 | checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" 2951 | 2952 | [[package]] 2953 | name = "universal-hash" 2954 | version = "0.4.0" 2955 | source = "registry+https://github.com/rust-lang/crates.io-index" 2956 | checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402" 2957 | dependencies = [ 2958 | "generic-array", 2959 | "subtle", 2960 | ] 2961 | 2962 | [[package]] 2963 | name = "untrusted" 2964 | version = "0.7.1" 2965 | source = "registry+https://github.com/rust-lang/crates.io-index" 2966 | checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" 2967 | 2968 | [[package]] 2969 | name = "url" 2970 | version = "2.2.2" 2971 | source = "registry+https://github.com/rust-lang/crates.io-index" 2972 | checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" 2973 | dependencies = [ 2974 | "form_urlencoded", 2975 | "idna", 2976 | "matches", 2977 | "percent-encoding", 2978 | "serde", 2979 | ] 2980 | 2981 | [[package]] 2982 | name = "value-bag" 2983 | version = "1.0.0-alpha.7" 2984 | source = "registry+https://github.com/rust-lang/crates.io-index" 2985 | checksum = "dd320e1520f94261153e96f7534476ad869c14022aee1e59af7c778075d840ae" 2986 | dependencies = [ 2987 | "ctor", 2988 | "version_check", 2989 | ] 2990 | 2991 | [[package]] 2992 | name = "vcpkg" 2993 | version = "0.2.12" 2994 | source = "registry+https://github.com/rust-lang/crates.io-index" 2995 | checksum = "cbdbff6266a24120518560b5dc983096efb98462e51d0d68169895b237be3e5d" 2996 | 2997 | [[package]] 2998 | name = "vec_map" 2999 | version = "0.8.2" 3000 | source = "registry+https://github.com/rust-lang/crates.io-index" 3001 | checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" 3002 | 3003 | [[package]] 3004 | name = "version_check" 3005 | version = "0.9.3" 3006 | source = "registry+https://github.com/rust-lang/crates.io-index" 3007 | checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe" 3008 | 3009 | [[package]] 3010 | name = "waker-fn" 3011 | version = "1.1.0" 3012 | source = "registry+https://github.com/rust-lang/crates.io-index" 3013 | checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" 3014 | 3015 | [[package]] 3016 | name = "walkdir" 3017 | version = "2.3.2" 3018 | source = "registry+https://github.com/rust-lang/crates.io-index" 3019 | checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" 3020 | dependencies = [ 3021 | "same-file", 3022 | "winapi 0.3.9", 3023 | "winapi-util", 3024 | ] 3025 | 3026 | [[package]] 3027 | name = "want" 3028 | version = "0.3.0" 3029 | source = "registry+https://github.com/rust-lang/crates.io-index" 3030 | checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" 3031 | dependencies = [ 3032 | "log", 3033 | "try-lock", 3034 | ] 3035 | 3036 | [[package]] 3037 | name = "wasi" 3038 | version = "0.9.0+wasi-snapshot-preview1" 3039 | source = "registry+https://github.com/rust-lang/crates.io-index" 3040 | checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" 3041 | 3042 | [[package]] 3043 | name = "wasi" 3044 | version = "0.10.2+wasi-snapshot-preview1" 3045 | source = "registry+https://github.com/rust-lang/crates.io-index" 3046 | checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" 3047 | 3048 | [[package]] 3049 | name = "wasm-bindgen" 3050 | version = "0.2.74" 3051 | source = "registry+https://github.com/rust-lang/crates.io-index" 3052 | checksum = "d54ee1d4ed486f78874278e63e4069fc1ab9f6a18ca492076ffb90c5eb2997fd" 3053 | dependencies = [ 3054 | "cfg-if 1.0.0", 3055 | "wasm-bindgen-macro", 3056 | ] 3057 | 3058 | [[package]] 3059 | name = "wasm-bindgen-backend" 3060 | version = "0.2.74" 3061 | source = "registry+https://github.com/rust-lang/crates.io-index" 3062 | checksum = "3b33f6a0694ccfea53d94db8b2ed1c3a8a4c86dd936b13b9f0a15ec4a451b900" 3063 | dependencies = [ 3064 | "bumpalo", 3065 | "lazy_static", 3066 | "log", 3067 | "proc-macro2", 3068 | "quote", 3069 | "syn", 3070 | "wasm-bindgen-shared", 3071 | ] 3072 | 3073 | [[package]] 3074 | name = "wasm-bindgen-futures" 3075 | version = "0.4.24" 3076 | source = "registry+https://github.com/rust-lang/crates.io-index" 3077 | checksum = "5fba7978c679d53ce2d0ac80c8c175840feb849a161664365d1287b41f2e67f1" 3078 | dependencies = [ 3079 | "cfg-if 1.0.0", 3080 | "js-sys", 3081 | "wasm-bindgen", 3082 | "web-sys", 3083 | ] 3084 | 3085 | [[package]] 3086 | name = "wasm-bindgen-macro" 3087 | version = "0.2.74" 3088 | source = "registry+https://github.com/rust-lang/crates.io-index" 3089 | checksum = "088169ca61430fe1e58b8096c24975251700e7b1f6fd91cc9d59b04fb9b18bd4" 3090 | dependencies = [ 3091 | "quote", 3092 | "wasm-bindgen-macro-support", 3093 | ] 3094 | 3095 | [[package]] 3096 | name = "wasm-bindgen-macro-support" 3097 | version = "0.2.74" 3098 | source = "registry+https://github.com/rust-lang/crates.io-index" 3099 | checksum = "be2241542ff3d9f241f5e2cb6dd09b37efe786df8851c54957683a49f0987a97" 3100 | dependencies = [ 3101 | "proc-macro2", 3102 | "quote", 3103 | "syn", 3104 | "wasm-bindgen-backend", 3105 | "wasm-bindgen-shared", 3106 | ] 3107 | 3108 | [[package]] 3109 | name = "wasm-bindgen-shared" 3110 | version = "0.2.74" 3111 | source = "registry+https://github.com/rust-lang/crates.io-index" 3112 | checksum = "d7cff876b8f18eed75a66cf49b65e7f967cb354a7aa16003fb55dbfd25b44b4f" 3113 | 3114 | [[package]] 3115 | name = "web-sys" 3116 | version = "0.3.51" 3117 | source = "registry+https://github.com/rust-lang/crates.io-index" 3118 | checksum = "e828417b379f3df7111d3a2a9e5753706cae29c41f7c4029ee9fd77f3e09e582" 3119 | dependencies = [ 3120 | "js-sys", 3121 | "wasm-bindgen", 3122 | ] 3123 | 3124 | [[package]] 3125 | name = "webpki" 3126 | version = "0.21.4" 3127 | source = "registry+https://github.com/rust-lang/crates.io-index" 3128 | checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" 3129 | dependencies = [ 3130 | "ring", 3131 | "untrusted", 3132 | ] 3133 | 3134 | [[package]] 3135 | name = "webpki-roots" 3136 | version = "0.20.0" 3137 | source = "registry+https://github.com/rust-lang/crates.io-index" 3138 | checksum = "0f20dea7535251981a9670857150d571846545088359b28e4951d350bdaf179f" 3139 | dependencies = [ 3140 | "webpki", 3141 | ] 3142 | 3143 | [[package]] 3144 | name = "wepoll-sys" 3145 | version = "3.0.1" 3146 | source = "registry+https://github.com/rust-lang/crates.io-index" 3147 | checksum = "0fcb14dea929042224824779fbc82d9fab8d2e6d3cbc0ac404de8edf489e77ff" 3148 | dependencies = [ 3149 | "cc", 3150 | ] 3151 | 3152 | [[package]] 3153 | name = "wild" 3154 | version = "2.0.4" 3155 | source = "registry+https://github.com/rust-lang/crates.io-index" 3156 | checksum = "035793abb854745033f01a07647a79831eba29ec0be377205f2a25b0aa830020" 3157 | dependencies = [ 3158 | "glob", 3159 | ] 3160 | 3161 | [[package]] 3162 | name = "winapi" 3163 | version = "0.2.8" 3164 | source = "registry+https://github.com/rust-lang/crates.io-index" 3165 | checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" 3166 | 3167 | [[package]] 3168 | name = "winapi" 3169 | version = "0.3.9" 3170 | source = "registry+https://github.com/rust-lang/crates.io-index" 3171 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 3172 | dependencies = [ 3173 | "winapi-i686-pc-windows-gnu", 3174 | "winapi-x86_64-pc-windows-gnu", 3175 | ] 3176 | 3177 | [[package]] 3178 | name = "winapi-build" 3179 | version = "0.1.1" 3180 | source = "registry+https://github.com/rust-lang/crates.io-index" 3181 | checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" 3182 | 3183 | [[package]] 3184 | name = "winapi-i686-pc-windows-gnu" 3185 | version = "0.4.0" 3186 | source = "registry+https://github.com/rust-lang/crates.io-index" 3187 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 3188 | 3189 | [[package]] 3190 | name = "winapi-util" 3191 | version = "0.1.5" 3192 | source = "registry+https://github.com/rust-lang/crates.io-index" 3193 | checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" 3194 | dependencies = [ 3195 | "winapi 0.3.9", 3196 | ] 3197 | 3198 | [[package]] 3199 | name = "winapi-x86_64-pc-windows-gnu" 3200 | version = "0.4.0" 3201 | source = "registry+https://github.com/rust-lang/crates.io-index" 3202 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 3203 | 3204 | [[package]] 3205 | name = "windows-sys" 3206 | version = "0.36.1" 3207 | source = "registry+https://github.com/rust-lang/crates.io-index" 3208 | checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" 3209 | dependencies = [ 3210 | "windows_aarch64_msvc", 3211 | "windows_i686_gnu", 3212 | "windows_i686_msvc", 3213 | "windows_x86_64_gnu", 3214 | "windows_x86_64_msvc", 3215 | ] 3216 | 3217 | [[package]] 3218 | name = "windows_aarch64_msvc" 3219 | version = "0.36.1" 3220 | source = "registry+https://github.com/rust-lang/crates.io-index" 3221 | checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" 3222 | 3223 | [[package]] 3224 | name = "windows_i686_gnu" 3225 | version = "0.36.1" 3226 | source = "registry+https://github.com/rust-lang/crates.io-index" 3227 | checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" 3228 | 3229 | [[package]] 3230 | name = "windows_i686_msvc" 3231 | version = "0.36.1" 3232 | source = "registry+https://github.com/rust-lang/crates.io-index" 3233 | checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" 3234 | 3235 | [[package]] 3236 | name = "windows_x86_64_gnu" 3237 | version = "0.36.1" 3238 | source = "registry+https://github.com/rust-lang/crates.io-index" 3239 | checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" 3240 | 3241 | [[package]] 3242 | name = "windows_x86_64_msvc" 3243 | version = "0.36.1" 3244 | source = "registry+https://github.com/rust-lang/crates.io-index" 3245 | checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" 3246 | 3247 | [[package]] 3248 | name = "ws2_32-sys" 3249 | version = "0.2.1" 3250 | source = "registry+https://github.com/rust-lang/crates.io-index" 3251 | checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" 3252 | dependencies = [ 3253 | "winapi 0.2.8", 3254 | "winapi-build", 3255 | ] 3256 | 3257 | [[package]] 3258 | name = "xml-rs" 3259 | version = "0.8.3" 3260 | source = "registry+https://github.com/rust-lang/crates.io-index" 3261 | checksum = "b07db065a5cf61a7e4ba64f29e67db906fb1787316516c4e6e5ff0fea1efcd8a" 3262 | 3263 | [[package]] 3264 | name = "yaml-rust" 3265 | version = "0.4.5" 3266 | source = "registry+https://github.com/rust-lang/crates.io-index" 3267 | checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" 3268 | dependencies = [ 3269 | "linked-hash-map", 3270 | ] 3271 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "longboard" 3 | version = "0.0.7" 4 | authors = ["Jacob Rothstein "] 5 | edition = "2018" 6 | description = "the easy way to surf" 7 | keywords = ["surf", "cli"] 8 | license = "MIT OR Apache-2.0" 9 | readme = "README.md" 10 | repository = "https://github.com/jbr/longboard" 11 | 12 | [dependencies] 13 | surf = "2.3.2" 14 | structopt = "0.3.26" 15 | atty = "0.2.14" 16 | surf-cookie-middleware = "0.3.0" 17 | env_logger = "0.9.3" 18 | 19 | [dependencies.bat] 20 | version = "0.18.3" 21 | default-features = false 22 | features = [ 23 | "atty", 24 | "clap", 25 | "dirs-next", 26 | "lazy_static", 27 | "paging", 28 | "wild", 29 | "regex-onig", 30 | ] 31 | 32 | [dependencies.async-std] 33 | version = "1.12.0" 34 | features = ["tokio02", "attributes"] 35 | 36 | [dependencies.http-client] 37 | version = "6.5.3" 38 | default-features = false 39 | features = ["h1_client", "hyper_client", "curl_client", "rustls"] 40 | -------------------------------------------------------------------------------- /LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | Copyright 2018 Yoshua Wuyts 179 | 180 | Licensed under the Apache License, Version 2.0 (the "License"); 181 | you may not use this file except in compliance with the License. 182 | You may obtain a copy of the License at 183 | 184 | http://www.apache.org/licenses/LICENSE-2.0 185 | 186 | Unless required by applicable law or agreed to in writing, software 187 | distributed under the License is distributed on an "AS IS" BASIS, 188 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 189 | See the License for the specific language governing permissions and 190 | limitations under the License. 191 | -------------------------------------------------------------------------------- /LICENSE-MIT: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2018 Yoshua Wuyts 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Longboard: The easy way to [surf](https://github.com/http-rs/surf) 2 | 3 | ```bash 4 | $ longboard get https://async.rs 5 | ``` 6 | 7 | ## Installation 8 | 9 | ```sh 10 | $ cargo install longboard 11 | ``` 12 | 13 | ## Usage 14 | 15 | ```sh 16 | longboard 0.0.x 17 | the easy way to surf 18 | 19 | USAGE: 20 | longboard [OPTIONS] 21 | 22 | FLAGS: 23 | --help 24 | Prints help information 25 | 26 | -V, --version 27 | Prints version information 28 | 29 | 30 | OPTIONS: 31 | -b, --body 32 | provide a request body on the command line 33 | 34 | example: 35 | longboard post http://httpbin.org/post -b '{"hello": "world"}' 36 | -c, --client 37 | http backend for surf. options: h1, curl, hyper 38 | 39 | caveat: h1 currently does not support chunked request bodies, 40 | so do not use that backend yet if you need to stream bodies [default: h1] 41 | -f, --file 42 | provide a file system path to a file to use as the request body 43 | 44 | alternatively, you can use an operating system pipe to pass a file in 45 | 46 | three equivalent examples: 47 | 48 | longboard post http://httpbin.org/anything -f ./body.json 49 | longboard post http://httpbin.org/anything < ./body.json 50 | cat ./body.json | longboard post http://httpbin.org/anything 51 | -h, --headers ... 52 | provide headers in the form -h KEY1=VALUE1 KEY2=VALUE2 53 | 54 | example: 55 | longboard get http://httpbin.org/headers -h Accept=application/json Authorization="Basic u:p" 56 | -j, --jar 57 | a filesystem path to a cookie jar in ndjson format 58 | 59 | note: this currently only persists "persistent cookies," which 60 | either have a max-age or expires. 61 | 62 | if the file does not yet exist, it will be created 63 | 64 | example: 65 | longboard get "https://httpbin.org/response-headers?Set-Cookie=USER_ID=10;+Max-Age=100" -j ~/.longboard.ndjson 66 | 67 | ARGS: 68 | 69 | 70 | ``` 71 | 72 | Examples to try: 73 | ``` 74 | $ longboard get http://httpin.org/get 75 | $ longboard get https://httpbin.org/headers -h Some-Header="header value" User-Agent=longboard 76 | $ longboard post https://httpbin.org/post -b "this is a request body" 77 | $ longboard post http://httpbin.org/anything -b "a=b&c=d" -h content-type=application/x-www-form-urlencoded 78 | $ longboard put https://httpbin.org/put -f ./Cargo.toml -h content-type=application/toml 79 | $ longboard patch https://httpbin.org/patch < ./some-file 80 | $ cat /dev/random | head -c1000 | base64 | longboard post https://httpbin.org/anything 81 | $ longboard get https://httpbin.org/stream | cat 82 | ``` 83 | 84 | ## TODO for this to be useful 85 | - [x] request bodies 86 | - [x] from filesystem 87 | - [x] as a cli arg 88 | - [x] from stdin (pipe) 89 | - [x] request headers 90 | - [ ] more emoji, custom formatters 91 | - [ ] opt into / out of displaying different parts of request and response 92 | - [ ] http status -> exit code 93 | 94 | ## Some future ideas: 95 | - [x] sessions/stored cookie jars 96 | - interactive repl mode for an easy way to make consecutive requests with the same client 97 | - sse mode that pretty-prints sse messages 98 | - render images to ascii for fun? 99 | 100 | 101 | * [Releases][releases] [![crates.io version][version-badge]][lib-rs] 102 | * [Contributing][contributing] 103 | 104 | 105 | 106 | [releases]: https://github.com/jbr/longboard/releases 107 | [contributing]: https://github.com/jbr/longboard/blob/master/.github/CONTRIBUTING.md 108 | [lib-rs]: https://lib.rs/longboard 109 | [version-badge]: https://img.shields.io/crates/v/longboard.svg?style=flat-square 110 | 111 | ## Safety 112 | This crate uses ``#![forbid(unsafe_code)]`` to ensure everything is implemented in 113 | 100% Safe Rust. 114 | 115 | ## License 116 | 117 | 118 | Licensed under either of Apache License, Version 119 | 2.0 or MIT license at your option. 120 | 121 | 122 |
123 | 124 | 125 | Unless you explicitly state otherwise, any contribution intentionally submitted 126 | for inclusion in this crate by you, as defined in the Apache-2.0 license, shall 127 | be dual licensed as above, without any additional terms or conditions. 128 | 129 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | #![forbid(unsafe_code, future_incompatible)] 2 | #![deny( 3 | missing_debug_implementations, 4 | nonstandard_style, 5 | missing_copy_implementations, 6 | unused_qualifications 7 | )] 8 | 9 | use async_std::io; 10 | use async_std::io::BufReader; 11 | use bat::{Input, PagingMode, PrettyPrinter}; 12 | use http_client::{h1::H1Client, hyper::HyperClient, isahc::IsahcClient}; 13 | use std::borrow::Cow; 14 | use std::path::PathBuf; 15 | use std::str::FromStr; 16 | use structopt::StructOpt; 17 | use surf::http::{self, Headers, Method, Url}; 18 | use surf::Body; 19 | use surf::{Client, Error, Request, Response, Result}; 20 | use surf_cookie_middleware::CookieMiddleware; 21 | 22 | fn parse_header(s: &str) -> Result<(String, String)> { 23 | let pos = s 24 | .find('=') 25 | .ok_or_else(|| http::format_err!("invalid KEY=value: no `=` found in `{}`", s))?; 26 | Ok((String::from(&s[..pos]), String::from(&s[pos + 1..]))) 27 | } 28 | 29 | #[derive(StructOpt, Debug)] 30 | #[structopt( 31 | name = "longboard", 32 | about = "the easy way to surf", 33 | verbatim_doc_comment 34 | )] 35 | struct Longboard { 36 | #[structopt(parse(try_from_str = parse_method_case_insensitive))] 37 | method: Method, 38 | url: Url, 39 | 40 | /// provide a file system path to a file to use as the request body 41 | /// 42 | /// alternatively, you can use an operating system pipe to pass a file in 43 | /// 44 | /// three equivalent examples: 45 | /// 46 | /// longboard post http://httpbin.org/anything -f ./body.json 47 | /// longboard post http://httpbin.org/anything < ./body.json 48 | /// cat ./body.json | longboard post http://httpbin.org/anything 49 | #[structopt(short, long, parse(from_os_str), verbatim_doc_comment)] 50 | file: Option, 51 | 52 | /// provide a request body on the command line 53 | /// 54 | /// example: 55 | /// longboard post http://httpbin.org/post -b '{"hello": "world"}' 56 | #[structopt(short, long, verbatim_doc_comment)] 57 | body: Option, 58 | 59 | /// provide headers in the form -h KEY1=VALUE1 KEY2=VALUE2 60 | /// 61 | /// example: 62 | /// longboard get http://httpbin.org/headers -h Accept=application/json Authorization="Basic u:p" 63 | #[structopt(short, long, parse(try_from_str = parse_header), verbatim_doc_comment)] 64 | headers: Vec<(String, String)>, 65 | 66 | /// http backend for surf. options: h1, curl, hyper 67 | /// 68 | /// caveat: h1 currently does not support chunked request bodies, 69 | /// so do not use that backend yet if you need to stream bodies 70 | #[structopt(short, long, default_value = "h1", verbatim_doc_comment)] 71 | client: Backend, 72 | 73 | /// a filesystem path to a cookie jar in ndjson format 74 | /// 75 | /// note: this currently only persists "persistent cookies," which 76 | /// either have a max-age or expires. 77 | /// 78 | /// if the file does not yet exist, it will be created 79 | /// 80 | /// example: 81 | /// longboard get "https://httpbin.org/response-headers?Set-Cookie=USER_ID=10;+Max-Age=100" -j ~/.longboard.ndjson 82 | #[structopt(short, long, parse(from_os_str), verbatim_doc_comment)] 83 | jar: Option, 84 | } 85 | 86 | impl Longboard { 87 | pub async fn client(&self) -> Result { 88 | use Backend::*; 89 | let mut client = match self.client { 90 | H1 => Client::with_http_client(H1Client::new()), 91 | Curl => Client::with_http_client(IsahcClient::new()), 92 | Hyper => Client::with_http_client(HyperClient::new()), 93 | }; 94 | 95 | if let Some(ref cookie_path) = self.jar { 96 | client = client.with(CookieMiddleware::from_path(cookie_path).await?); 97 | } 98 | 99 | Ok(client) 100 | } 101 | 102 | pub async fn request(&self) -> Result { 103 | let mut request = Request::new(self.method, self.url.clone()); 104 | 105 | for (name, value) in &self.headers { 106 | request.append_header(&name[..], &value[..]); 107 | } 108 | 109 | if let Some(path) = &self.file { 110 | request.body_file(path).await?; 111 | } else if let Some(body) = &self.body { 112 | request.body_string(body.to_owned()); 113 | } else if atty::isnt(atty::Stream::Stdin) { 114 | request.set_body(Body::from_reader(BufReader::new(io::stdin()), None)); 115 | } 116 | 117 | Ok(request) 118 | } 119 | 120 | pub fn url(&self) -> Url { 121 | self.url.clone() 122 | } 123 | 124 | pub async fn send(&self) -> Result { 125 | let request = self.request().await?; 126 | let client = self.client().await?; 127 | client.send(request).await 128 | } 129 | } 130 | 131 | #[derive(Debug, Eq, PartialEq)] 132 | enum Backend { 133 | H1, 134 | Curl, 135 | Hyper, 136 | } 137 | 138 | impl FromStr for Backend { 139 | type Err = Error; 140 | 141 | fn from_str(s: &str) -> std::result::Result { 142 | match &*s.to_ascii_lowercase() { 143 | "h1" | "async-h1" => Ok(Self::H1), 144 | "curl" | "isahc" => Ok(Self::Curl), 145 | "hyper" => Ok(Self::Hyper), 146 | _ => Err(http::format_err!("unrecognized backend {}", s)), 147 | } 148 | } 149 | } 150 | 151 | fn parse_method_case_insensitive(src: &str) -> Result { 152 | src.to_uppercase().parse() 153 | } 154 | 155 | #[async_std::main] 156 | async fn main() -> Result<()> { 157 | env_logger::init(); 158 | let longboard = Longboard::from_args(); 159 | let url = longboard.url(); 160 | 161 | let mut response = longboard.send().await?; 162 | 163 | if atty::is(atty::Stream::Stdout) { 164 | let body = response.body_string().await?; 165 | let http_res: &http::Response = response.as_ref(); 166 | let headers: &Headers = http_res.as_ref(); 167 | let headers_as_string = format!("{:#?}", headers); 168 | let content_type = response.content_type().map(|c| c.to_string()); 169 | let filename = match content_type.as_deref() { 170 | Some("application/json") => "body.json", // bat can't sniff json for some reason 171 | _ => url.path(), 172 | }; 173 | 174 | let response_status = format!( 175 | "{}: {}", 176 | response.status(), 177 | response.status().canonical_reason() 178 | ); 179 | 180 | PrettyPrinter::new() 181 | .paging_mode(PagingMode::QuitIfOneScreen) 182 | .header(true) 183 | .grid(true) 184 | .inputs(vec![ 185 | Input::from_bytes(headers_as_string.as_bytes()) 186 | .name("headers.rs") 187 | .title("response headers"), 188 | Input::from_bytes(response_status.as_bytes()) 189 | .name("status") 190 | .title("status"), 191 | Input::from_bytes(body.as_bytes()).name(filename).title( 192 | if let Some(content_type) = content_type { 193 | Cow::Owned(format!("response body ({})", content_type)) 194 | } else { 195 | Cow::Borrowed("response body") 196 | }, 197 | ), 198 | ]) 199 | .print() 200 | .unwrap(); 201 | } else { 202 | io::copy(&mut response, &mut io::stdout()).await?; 203 | } 204 | 205 | Ok(()) 206 | } 207 | --------------------------------------------------------------------------------