├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── README.md ├── embed-wasm-build ├── Cargo.toml └── src │ └── lib.rs └── embed-wasm ├── Cargo.toml └── src └── lib.rs /.gitignore: -------------------------------------------------------------------------------- 1 | target/* 2 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | [[package]] 4 | name = "adler32" 5 | version = "1.0.4" 6 | source = "registry+https://github.com/rust-lang/crates.io-index" 7 | checksum = "5d2e7343e7fc9de883d1b0341e0b13970f764c14101234857d2ddafa1cb1cac2" 8 | 9 | [[package]] 10 | name = "aho-corasick" 11 | version = "0.7.10" 12 | source = "registry+https://github.com/rust-lang/crates.io-index" 13 | checksum = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada" 14 | dependencies = [ 15 | "memchr", 16 | ] 17 | 18 | [[package]] 19 | name = "ansi_term" 20 | version = "0.11.0" 21 | source = "registry+https://github.com/rust-lang/crates.io-index" 22 | checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" 23 | dependencies = [ 24 | "winapi 0.3.8", 25 | ] 26 | 27 | [[package]] 28 | name = "arrayref" 29 | version = "0.3.6" 30 | source = "registry+https://github.com/rust-lang/crates.io-index" 31 | checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" 32 | 33 | [[package]] 34 | name = "arrayvec" 35 | version = "0.5.1" 36 | source = "registry+https://github.com/rust-lang/crates.io-index" 37 | checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8" 38 | 39 | [[package]] 40 | name = "atty" 41 | version = "0.2.14" 42 | source = "registry+https://github.com/rust-lang/crates.io-index" 43 | checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" 44 | dependencies = [ 45 | "hermit-abi", 46 | "libc", 47 | "winapi 0.3.8", 48 | ] 49 | 50 | [[package]] 51 | name = "autocfg" 52 | version = "0.1.7" 53 | source = "registry+https://github.com/rust-lang/crates.io-index" 54 | checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" 55 | 56 | [[package]] 57 | name = "autocfg" 58 | version = "1.0.0" 59 | source = "registry+https://github.com/rust-lang/crates.io-index" 60 | checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" 61 | 62 | [[package]] 63 | name = "backtrace" 64 | version = "0.3.46" 65 | source = "registry+https://github.com/rust-lang/crates.io-index" 66 | checksum = "b1e692897359247cc6bb902933361652380af0f1b7651ae5c5013407f30e109e" 67 | dependencies = [ 68 | "backtrace-sys", 69 | "cfg-if", 70 | "libc", 71 | "rustc-demangle", 72 | ] 73 | 74 | [[package]] 75 | name = "backtrace-sys" 76 | version = "0.1.35" 77 | source = "registry+https://github.com/rust-lang/crates.io-index" 78 | checksum = "7de8aba10a69c8e8d7622c5710229485ec32e9d55fdad160ea559c086fdcd118" 79 | dependencies = [ 80 | "cc", 81 | "libc", 82 | ] 83 | 84 | [[package]] 85 | name = "base-x" 86 | version = "0.2.6" 87 | source = "registry+https://github.com/rust-lang/crates.io-index" 88 | checksum = "1b20b618342cf9891c292c4f5ac2cde7287cc5c87e87e9c769d617793607dec1" 89 | 90 | [[package]] 91 | name = "base64" 92 | version = "0.9.3" 93 | source = "registry+https://github.com/rust-lang/crates.io-index" 94 | checksum = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" 95 | dependencies = [ 96 | "byteorder", 97 | "safemem", 98 | ] 99 | 100 | [[package]] 101 | name = "base64" 102 | version = "0.10.1" 103 | source = "registry+https://github.com/rust-lang/crates.io-index" 104 | checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" 105 | dependencies = [ 106 | "byteorder", 107 | ] 108 | 109 | [[package]] 110 | name = "base64" 111 | version = "0.11.0" 112 | source = "registry+https://github.com/rust-lang/crates.io-index" 113 | checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" 114 | 115 | [[package]] 116 | name = "base64" 117 | version = "0.12.0" 118 | source = "registry+https://github.com/rust-lang/crates.io-index" 119 | checksum = "7d5ca2cd0adc3f48f9e9ea5a6bbdf9ccc0bfade884847e484d452414c7ccffb3" 120 | 121 | [[package]] 122 | name = "bitflags" 123 | version = "0.9.1" 124 | source = "registry+https://github.com/rust-lang/crates.io-index" 125 | checksum = "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5" 126 | 127 | [[package]] 128 | name = "bitflags" 129 | version = "1.2.1" 130 | source = "registry+https://github.com/rust-lang/crates.io-index" 131 | checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" 132 | 133 | [[package]] 134 | name = "blake2b_simd" 135 | version = "0.5.10" 136 | source = "registry+https://github.com/rust-lang/crates.io-index" 137 | checksum = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a" 138 | dependencies = [ 139 | "arrayref", 140 | "arrayvec", 141 | "constant_time_eq", 142 | ] 143 | 144 | [[package]] 145 | name = "block-buffer" 146 | version = "0.7.3" 147 | source = "registry+https://github.com/rust-lang/crates.io-index" 148 | checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" 149 | dependencies = [ 150 | "block-padding", 151 | "byte-tools", 152 | "byteorder", 153 | "generic-array", 154 | ] 155 | 156 | [[package]] 157 | name = "block-padding" 158 | version = "0.1.5" 159 | source = "registry+https://github.com/rust-lang/crates.io-index" 160 | checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" 161 | dependencies = [ 162 | "byte-tools", 163 | ] 164 | 165 | [[package]] 166 | name = "bstr" 167 | version = "0.2.12" 168 | source = "registry+https://github.com/rust-lang/crates.io-index" 169 | checksum = "2889e6d50f394968c8bf4240dc3f2a7eb4680844d27308f798229ac9d4725f41" 170 | dependencies = [ 171 | "memchr", 172 | ] 173 | 174 | [[package]] 175 | name = "byte-tools" 176 | version = "0.3.1" 177 | source = "registry+https://github.com/rust-lang/crates.io-index" 178 | checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" 179 | 180 | [[package]] 181 | name = "byteorder" 182 | version = "1.3.4" 183 | source = "registry+https://github.com/rust-lang/crates.io-index" 184 | checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" 185 | 186 | [[package]] 187 | name = "bytes" 188 | version = "0.4.12" 189 | source = "registry+https://github.com/rust-lang/crates.io-index" 190 | checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" 191 | dependencies = [ 192 | "byteorder", 193 | "either", 194 | "iovec", 195 | ] 196 | 197 | [[package]] 198 | name = "bytes" 199 | version = "0.5.4" 200 | source = "registry+https://github.com/rust-lang/crates.io-index" 201 | checksum = "130aac562c0dd69c56b3b1cc8ffd2e17be31d0b6c25b61c96b76231aa23e39e1" 202 | 203 | [[package]] 204 | name = "cargo-web" 205 | version = "0.6.26" 206 | source = "registry+https://github.com/rust-lang/crates.io-index" 207 | checksum = "927989bc5412fa22b28f8f48f077c3abf94b039c208694c44e225eb756aba278" 208 | dependencies = [ 209 | "ansi_term", 210 | "atty", 211 | "base-x", 212 | "cargo_metadata", 213 | "clap", 214 | "digest", 215 | "directories", 216 | "env_logger", 217 | "failure", 218 | "futures", 219 | "handlebars", 220 | "http 0.1.21", 221 | "hyper 0.12.35", 222 | "indexmap", 223 | "lazy_static", 224 | "libflate", 225 | "log 0.4.8", 226 | "memmap", 227 | "mime_guess 1.8.8", 228 | "notify", 229 | "open", 230 | "openssl-sys", 231 | "parity-wasm", 232 | "pbr", 233 | "percent-encoding 1.0.1", 234 | "regex", 235 | "reqwest", 236 | "rustc-demangle", 237 | "semver", 238 | "serde", 239 | "serde_derive", 240 | "serde_json", 241 | "sha1", 242 | "sha2", 243 | "structopt", 244 | "tar", 245 | "tempfile", 246 | "toml", 247 | "unicode_categories", 248 | "walkdir", 249 | "websocket", 250 | ] 251 | 252 | [[package]] 253 | name = "cargo_metadata" 254 | version = "0.6.4" 255 | source = "registry+https://github.com/rust-lang/crates.io-index" 256 | checksum = "e5d1b4d380e1bab994591a24c2bdd1b054f64b60bef483a8c598c7c345bc3bbe" 257 | dependencies = [ 258 | "error-chain", 259 | "semver", 260 | "serde", 261 | "serde_derive", 262 | "serde_json", 263 | ] 264 | 265 | [[package]] 266 | name = "cc" 267 | version = "1.0.50" 268 | source = "registry+https://github.com/rust-lang/crates.io-index" 269 | checksum = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd" 270 | 271 | [[package]] 272 | name = "cfg-if" 273 | version = "0.1.10" 274 | source = "registry+https://github.com/rust-lang/crates.io-index" 275 | checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" 276 | 277 | [[package]] 278 | name = "clap" 279 | version = "2.33.0" 280 | source = "registry+https://github.com/rust-lang/crates.io-index" 281 | checksum = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9" 282 | dependencies = [ 283 | "ansi_term", 284 | "atty", 285 | "bitflags 1.2.1", 286 | "strsim", 287 | "textwrap", 288 | "unicode-width", 289 | "vec_map", 290 | ] 291 | 292 | [[package]] 293 | name = "cloudabi" 294 | version = "0.0.3" 295 | source = "registry+https://github.com/rust-lang/crates.io-index" 296 | checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" 297 | dependencies = [ 298 | "bitflags 1.2.1", 299 | ] 300 | 301 | [[package]] 302 | name = "constant_time_eq" 303 | version = "0.1.5" 304 | source = "registry+https://github.com/rust-lang/crates.io-index" 305 | checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" 306 | 307 | [[package]] 308 | name = "cookie" 309 | version = "0.12.0" 310 | source = "registry+https://github.com/rust-lang/crates.io-index" 311 | checksum = "888604f00b3db336d2af898ec3c1d5d0ddf5e6d462220f2ededc33a87ac4bbd5" 312 | dependencies = [ 313 | "time", 314 | "url 1.7.2", 315 | ] 316 | 317 | [[package]] 318 | name = "cookie_store" 319 | version = "0.7.0" 320 | source = "registry+https://github.com/rust-lang/crates.io-index" 321 | checksum = "46750b3f362965f197996c4448e4a0935e791bf7d6631bfce9ee0af3d24c919c" 322 | dependencies = [ 323 | "cookie", 324 | "failure", 325 | "idna 0.1.5", 326 | "log 0.4.8", 327 | "publicsuffix", 328 | "serde", 329 | "serde_json", 330 | "time", 331 | "try_from", 332 | "url 1.7.2", 333 | ] 334 | 335 | [[package]] 336 | name = "core-foundation" 337 | version = "0.6.4" 338 | source = "registry+https://github.com/rust-lang/crates.io-index" 339 | checksum = "25b9e03f145fd4f2bf705e07b900cd41fc636598fe5dc452fd0db1441c3f496d" 340 | dependencies = [ 341 | "core-foundation-sys", 342 | "libc", 343 | ] 344 | 345 | [[package]] 346 | name = "core-foundation-sys" 347 | version = "0.6.2" 348 | source = "registry+https://github.com/rust-lang/crates.io-index" 349 | checksum = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b" 350 | 351 | [[package]] 352 | name = "crc32fast" 353 | version = "1.2.0" 354 | source = "registry+https://github.com/rust-lang/crates.io-index" 355 | checksum = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1" 356 | dependencies = [ 357 | "cfg-if", 358 | ] 359 | 360 | [[package]] 361 | name = "crossbeam-channel" 362 | version = "0.4.2" 363 | source = "registry+https://github.com/rust-lang/crates.io-index" 364 | checksum = "cced8691919c02aac3cb0a1bc2e9b73d89e832bf9a06fc579d4e71b68a2da061" 365 | dependencies = [ 366 | "crossbeam-utils", 367 | "maybe-uninit", 368 | ] 369 | 370 | [[package]] 371 | name = "crossbeam-deque" 372 | version = "0.7.3" 373 | source = "registry+https://github.com/rust-lang/crates.io-index" 374 | checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285" 375 | dependencies = [ 376 | "crossbeam-epoch", 377 | "crossbeam-utils", 378 | "maybe-uninit", 379 | ] 380 | 381 | [[package]] 382 | name = "crossbeam-epoch" 383 | version = "0.8.2" 384 | source = "registry+https://github.com/rust-lang/crates.io-index" 385 | checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" 386 | dependencies = [ 387 | "autocfg 1.0.0", 388 | "cfg-if", 389 | "crossbeam-utils", 390 | "lazy_static", 391 | "maybe-uninit", 392 | "memoffset", 393 | "scopeguard", 394 | ] 395 | 396 | [[package]] 397 | name = "crossbeam-queue" 398 | version = "0.2.1" 399 | source = "registry+https://github.com/rust-lang/crates.io-index" 400 | checksum = "c695eeca1e7173472a32221542ae469b3e9aac3a4fc81f7696bcad82029493db" 401 | dependencies = [ 402 | "cfg-if", 403 | "crossbeam-utils", 404 | ] 405 | 406 | [[package]] 407 | name = "crossbeam-utils" 408 | version = "0.7.2" 409 | source = "registry+https://github.com/rust-lang/crates.io-index" 410 | checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" 411 | dependencies = [ 412 | "autocfg 1.0.0", 413 | "cfg-if", 414 | "lazy_static", 415 | ] 416 | 417 | [[package]] 418 | name = "digest" 419 | version = "0.8.1" 420 | source = "registry+https://github.com/rust-lang/crates.io-index" 421 | checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" 422 | dependencies = [ 423 | "generic-array", 424 | ] 425 | 426 | [[package]] 427 | name = "directories" 428 | version = "2.0.2" 429 | source = "registry+https://github.com/rust-lang/crates.io-index" 430 | checksum = "551a778172a450d7fc12e629ca3b0428d00f6afa9a43da1b630d54604e97371c" 431 | dependencies = [ 432 | "cfg-if", 433 | "dirs-sys", 434 | ] 435 | 436 | [[package]] 437 | name = "dirs-sys" 438 | version = "0.3.4" 439 | source = "registry+https://github.com/rust-lang/crates.io-index" 440 | checksum = "afa0b23de8fd801745c471deffa6e12d248f962c9fd4b4c33787b055599bde7b" 441 | dependencies = [ 442 | "cfg-if", 443 | "libc", 444 | "redox_users", 445 | "winapi 0.3.8", 446 | ] 447 | 448 | [[package]] 449 | name = "dtoa" 450 | version = "0.4.5" 451 | source = "registry+https://github.com/rust-lang/crates.io-index" 452 | checksum = "4358a9e11b9a09cf52383b451b49a169e8d797b68aa02301ff586d70d9661ea3" 453 | 454 | [[package]] 455 | name = "either" 456 | version = "1.5.3" 457 | source = "registry+https://github.com/rust-lang/crates.io-index" 458 | checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3" 459 | 460 | [[package]] 461 | name = "embed-wasm" 462 | version = "0.1.0-alpha" 463 | dependencies = [ 464 | "headers", 465 | "hyper 0.13.4", 466 | "mime_guess 2.0.3", 467 | "phf 0.8.0", 468 | ] 469 | 470 | [[package]] 471 | name = "embed-wasm-build" 472 | version = "0.1.0-alpha" 473 | dependencies = [ 474 | "cargo-web", 475 | "ignore", 476 | "phf_codegen 0.8.0", 477 | "structopt", 478 | ] 479 | 480 | [[package]] 481 | name = "encoding_rs" 482 | version = "0.8.22" 483 | source = "registry+https://github.com/rust-lang/crates.io-index" 484 | checksum = "cd8d03faa7fe0c1431609dfad7bbe827af30f82e1e2ae6f7ee4fca6bd764bc28" 485 | dependencies = [ 486 | "cfg-if", 487 | ] 488 | 489 | [[package]] 490 | name = "env_logger" 491 | version = "0.6.2" 492 | source = "registry+https://github.com/rust-lang/crates.io-index" 493 | checksum = "aafcde04e90a5226a6443b7aabdb016ba2f8307c847d524724bd9b346dd1a2d3" 494 | dependencies = [ 495 | "atty", 496 | "humantime", 497 | "log 0.4.8", 498 | "regex", 499 | "termcolor", 500 | ] 501 | 502 | [[package]] 503 | name = "error-chain" 504 | version = "0.12.2" 505 | source = "registry+https://github.com/rust-lang/crates.io-index" 506 | checksum = "d371106cc88ffdfb1eabd7111e432da544f16f3e2d7bf1dfe8bf575f1df045cd" 507 | dependencies = [ 508 | "backtrace", 509 | "version_check 0.9.1", 510 | ] 511 | 512 | [[package]] 513 | name = "failure" 514 | version = "0.1.7" 515 | source = "registry+https://github.com/rust-lang/crates.io-index" 516 | checksum = "b8529c2421efa3066a5cbd8063d2244603824daccb6936b079010bb2aa89464b" 517 | dependencies = [ 518 | "backtrace", 519 | "failure_derive", 520 | ] 521 | 522 | [[package]] 523 | name = "failure_derive" 524 | version = "0.1.7" 525 | source = "registry+https://github.com/rust-lang/crates.io-index" 526 | checksum = "030a733c8287d6213886dd487564ff5c8f6aae10278b3588ed177f9d18f8d231" 527 | dependencies = [ 528 | "proc-macro2 1.0.10", 529 | "quote 1.0.3", 530 | "syn 1.0.17", 531 | "synstructure", 532 | ] 533 | 534 | [[package]] 535 | name = "fake-simd" 536 | version = "0.1.2" 537 | source = "registry+https://github.com/rust-lang/crates.io-index" 538 | checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" 539 | 540 | [[package]] 541 | name = "filetime" 542 | version = "0.2.9" 543 | source = "registry+https://github.com/rust-lang/crates.io-index" 544 | checksum = "f59efc38004c988e4201d11d263b8171f49a2e7ec0bdbb71773433f271504a5e" 545 | dependencies = [ 546 | "cfg-if", 547 | "libc", 548 | "redox_syscall", 549 | "winapi 0.3.8", 550 | ] 551 | 552 | [[package]] 553 | name = "flate2" 554 | version = "1.0.14" 555 | source = "registry+https://github.com/rust-lang/crates.io-index" 556 | checksum = "2cfff41391129e0a856d6d822600b8d71179d46879e310417eb9c762eb178b42" 557 | dependencies = [ 558 | "cfg-if", 559 | "crc32fast", 560 | "libc", 561 | "miniz_oxide", 562 | ] 563 | 564 | [[package]] 565 | name = "fnv" 566 | version = "1.0.6" 567 | source = "registry+https://github.com/rust-lang/crates.io-index" 568 | checksum = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" 569 | 570 | [[package]] 571 | name = "foreign-types" 572 | version = "0.3.2" 573 | source = "registry+https://github.com/rust-lang/crates.io-index" 574 | checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 575 | dependencies = [ 576 | "foreign-types-shared", 577 | ] 578 | 579 | [[package]] 580 | name = "foreign-types-shared" 581 | version = "0.1.1" 582 | source = "registry+https://github.com/rust-lang/crates.io-index" 583 | checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 584 | 585 | [[package]] 586 | name = "fsevent" 587 | version = "0.4.0" 588 | source = "registry+https://github.com/rust-lang/crates.io-index" 589 | checksum = "5ab7d1bd1bd33cc98b0889831b72da23c0aa4df9cec7e0702f46ecea04b35db6" 590 | dependencies = [ 591 | "bitflags 1.2.1", 592 | "fsevent-sys", 593 | ] 594 | 595 | [[package]] 596 | name = "fsevent-sys" 597 | version = "2.0.1" 598 | source = "registry+https://github.com/rust-lang/crates.io-index" 599 | checksum = "f41b048a94555da0f42f1d632e2e19510084fb8e303b0daa2816e733fb3644a0" 600 | dependencies = [ 601 | "libc", 602 | ] 603 | 604 | [[package]] 605 | name = "fuchsia-cprng" 606 | version = "0.1.1" 607 | source = "registry+https://github.com/rust-lang/crates.io-index" 608 | checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" 609 | 610 | [[package]] 611 | name = "fuchsia-zircon" 612 | version = "0.3.3" 613 | source = "registry+https://github.com/rust-lang/crates.io-index" 614 | checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" 615 | dependencies = [ 616 | "bitflags 1.2.1", 617 | "fuchsia-zircon-sys", 618 | ] 619 | 620 | [[package]] 621 | name = "fuchsia-zircon-sys" 622 | version = "0.3.3" 623 | source = "registry+https://github.com/rust-lang/crates.io-index" 624 | checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" 625 | 626 | [[package]] 627 | name = "futures" 628 | version = "0.1.29" 629 | source = "registry+https://github.com/rust-lang/crates.io-index" 630 | checksum = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef" 631 | 632 | [[package]] 633 | name = "futures-channel" 634 | version = "0.3.4" 635 | source = "registry+https://github.com/rust-lang/crates.io-index" 636 | checksum = "f0c77d04ce8edd9cb903932b608268b3fffec4163dc053b3b402bf47eac1f1a8" 637 | dependencies = [ 638 | "futures-core", 639 | ] 640 | 641 | [[package]] 642 | name = "futures-core" 643 | version = "0.3.4" 644 | source = "registry+https://github.com/rust-lang/crates.io-index" 645 | checksum = "f25592f769825e89b92358db00d26f965761e094951ac44d3663ef25b7ac464a" 646 | 647 | [[package]] 648 | name = "futures-cpupool" 649 | version = "0.1.8" 650 | source = "registry+https://github.com/rust-lang/crates.io-index" 651 | checksum = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" 652 | dependencies = [ 653 | "futures", 654 | "num_cpus", 655 | ] 656 | 657 | [[package]] 658 | name = "futures-sink" 659 | version = "0.3.4" 660 | source = "registry+https://github.com/rust-lang/crates.io-index" 661 | checksum = "3466821b4bc114d95b087b850a724c6f83115e929bc88f1fa98a3304a944c8a6" 662 | 663 | [[package]] 664 | name = "futures-task" 665 | version = "0.3.4" 666 | source = "registry+https://github.com/rust-lang/crates.io-index" 667 | checksum = "7b0a34e53cf6cdcd0178aa573aed466b646eb3db769570841fda0c7ede375a27" 668 | 669 | [[package]] 670 | name = "futures-util" 671 | version = "0.3.4" 672 | source = "registry+https://github.com/rust-lang/crates.io-index" 673 | checksum = "22766cf25d64306bedf0384da004d05c9974ab104fcc4528f1236181c18004c5" 674 | dependencies = [ 675 | "futures-core", 676 | "futures-task", 677 | "pin-utils", 678 | ] 679 | 680 | [[package]] 681 | name = "generic-array" 682 | version = "0.12.3" 683 | source = "registry+https://github.com/rust-lang/crates.io-index" 684 | checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec" 685 | dependencies = [ 686 | "typenum", 687 | ] 688 | 689 | [[package]] 690 | name = "getrandom" 691 | version = "0.1.14" 692 | source = "registry+https://github.com/rust-lang/crates.io-index" 693 | checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" 694 | dependencies = [ 695 | "cfg-if", 696 | "libc", 697 | "wasi", 698 | ] 699 | 700 | [[package]] 701 | name = "globset" 702 | version = "0.4.5" 703 | source = "registry+https://github.com/rust-lang/crates.io-index" 704 | checksum = "7ad1da430bd7281dde2576f44c84cc3f0f7b475e7202cd503042dff01a8c8120" 705 | dependencies = [ 706 | "aho-corasick", 707 | "bstr", 708 | "fnv", 709 | "log 0.4.8", 710 | "regex", 711 | ] 712 | 713 | [[package]] 714 | name = "h2" 715 | version = "0.1.26" 716 | source = "registry+https://github.com/rust-lang/crates.io-index" 717 | checksum = "a5b34c246847f938a410a03c5458c7fee2274436675e76d8b903c08efc29c462" 718 | dependencies = [ 719 | "byteorder", 720 | "bytes 0.4.12", 721 | "fnv", 722 | "futures", 723 | "http 0.1.21", 724 | "indexmap", 725 | "log 0.4.8", 726 | "slab", 727 | "string", 728 | "tokio-io", 729 | ] 730 | 731 | [[package]] 732 | name = "h2" 733 | version = "0.2.4" 734 | source = "registry+https://github.com/rust-lang/crates.io-index" 735 | checksum = "377038bf3c89d18d6ca1431e7a5027194fbd724ca10592b9487ede5e8e144f42" 736 | dependencies = [ 737 | "bytes 0.5.4", 738 | "fnv", 739 | "futures-core", 740 | "futures-sink", 741 | "futures-util", 742 | "http 0.2.1", 743 | "indexmap", 744 | "log 0.4.8", 745 | "slab", 746 | "tokio 0.2.18", 747 | "tokio-util", 748 | ] 749 | 750 | [[package]] 751 | name = "handlebars" 752 | version = "1.1.0" 753 | source = "registry+https://github.com/rust-lang/crates.io-index" 754 | checksum = "d82e5750d8027a97b9640e3fefa66bbaf852a35228e1c90790efd13c4b09c166" 755 | dependencies = [ 756 | "lazy_static", 757 | "log 0.4.8", 758 | "pest", 759 | "pest_derive", 760 | "quick-error", 761 | "regex", 762 | "serde", 763 | "serde_json", 764 | "walkdir", 765 | ] 766 | 767 | [[package]] 768 | name = "headers" 769 | version = "0.3.2" 770 | source = "registry+https://github.com/rust-lang/crates.io-index" 771 | checksum = "ed18eb2459bf1a09ad2d6b1547840c3e5e62882fa09b9a6a20b1de8e3228848f" 772 | dependencies = [ 773 | "base64 0.12.0", 774 | "bitflags 1.2.1", 775 | "bytes 0.5.4", 776 | "headers-core", 777 | "http 0.2.1", 778 | "mime 0.3.16", 779 | "sha-1", 780 | "time", 781 | ] 782 | 783 | [[package]] 784 | name = "headers-core" 785 | version = "0.2.0" 786 | source = "registry+https://github.com/rust-lang/crates.io-index" 787 | checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" 788 | dependencies = [ 789 | "http 0.2.1", 790 | ] 791 | 792 | [[package]] 793 | name = "heck" 794 | version = "0.3.1" 795 | source = "registry+https://github.com/rust-lang/crates.io-index" 796 | checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" 797 | dependencies = [ 798 | "unicode-segmentation", 799 | ] 800 | 801 | [[package]] 802 | name = "hermit-abi" 803 | version = "0.1.11" 804 | source = "registry+https://github.com/rust-lang/crates.io-index" 805 | checksum = "8a0d737e0f947a1864e93d33fdef4af8445a00d1ed8dc0c8ddb73139ea6abf15" 806 | dependencies = [ 807 | "libc", 808 | ] 809 | 810 | [[package]] 811 | name = "http" 812 | version = "0.1.21" 813 | source = "registry+https://github.com/rust-lang/crates.io-index" 814 | checksum = "d6ccf5ede3a895d8856620237b2f02972c1bbc78d2965ad7fe8838d4a0ed41f0" 815 | dependencies = [ 816 | "bytes 0.4.12", 817 | "fnv", 818 | "itoa", 819 | ] 820 | 821 | [[package]] 822 | name = "http" 823 | version = "0.2.1" 824 | source = "registry+https://github.com/rust-lang/crates.io-index" 825 | checksum = "28d569972648b2c512421b5f2a405ad6ac9666547189d0c5477a3f200f3e02f9" 826 | dependencies = [ 827 | "bytes 0.5.4", 828 | "fnv", 829 | "itoa", 830 | ] 831 | 832 | [[package]] 833 | name = "http-body" 834 | version = "0.1.0" 835 | source = "registry+https://github.com/rust-lang/crates.io-index" 836 | checksum = "6741c859c1b2463a423a1dbce98d418e6c3c3fc720fb0d45528657320920292d" 837 | dependencies = [ 838 | "bytes 0.4.12", 839 | "futures", 840 | "http 0.1.21", 841 | "tokio-buf", 842 | ] 843 | 844 | [[package]] 845 | name = "http-body" 846 | version = "0.3.1" 847 | source = "registry+https://github.com/rust-lang/crates.io-index" 848 | checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b" 849 | dependencies = [ 850 | "bytes 0.5.4", 851 | "http 0.2.1", 852 | ] 853 | 854 | [[package]] 855 | name = "httparse" 856 | version = "1.3.4" 857 | source = "registry+https://github.com/rust-lang/crates.io-index" 858 | checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9" 859 | 860 | [[package]] 861 | name = "humantime" 862 | version = "1.3.0" 863 | source = "registry+https://github.com/rust-lang/crates.io-index" 864 | checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" 865 | dependencies = [ 866 | "quick-error", 867 | ] 868 | 869 | [[package]] 870 | name = "hyper" 871 | version = "0.10.16" 872 | source = "registry+https://github.com/rust-lang/crates.io-index" 873 | checksum = "0a0652d9a2609a968c14be1a9ea00bf4b1d64e2e1f53a1b51b6fff3a6e829273" 874 | dependencies = [ 875 | "base64 0.9.3", 876 | "httparse", 877 | "language-tags", 878 | "log 0.3.9", 879 | "mime 0.2.6", 880 | "num_cpus", 881 | "time", 882 | "traitobject", 883 | "typeable", 884 | "unicase 1.4.2", 885 | "url 1.7.2", 886 | ] 887 | 888 | [[package]] 889 | name = "hyper" 890 | version = "0.12.35" 891 | source = "registry+https://github.com/rust-lang/crates.io-index" 892 | checksum = "9dbe6ed1438e1f8ad955a4701e9a944938e9519f6888d12d8558b645e247d5f6" 893 | dependencies = [ 894 | "bytes 0.4.12", 895 | "futures", 896 | "futures-cpupool", 897 | "h2 0.1.26", 898 | "http 0.1.21", 899 | "http-body 0.1.0", 900 | "httparse", 901 | "iovec", 902 | "itoa", 903 | "log 0.4.8", 904 | "net2", 905 | "rustc_version", 906 | "time", 907 | "tokio 0.1.22", 908 | "tokio-buf", 909 | "tokio-executor", 910 | "tokio-io", 911 | "tokio-reactor", 912 | "tokio-tcp", 913 | "tokio-threadpool", 914 | "tokio-timer", 915 | "want 0.2.0", 916 | ] 917 | 918 | [[package]] 919 | name = "hyper" 920 | version = "0.13.4" 921 | source = "registry+https://github.com/rust-lang/crates.io-index" 922 | checksum = "ed6081100e960d9d74734659ffc9cc91daf1c0fc7aceb8eaa94ee1a3f5046f2e" 923 | dependencies = [ 924 | "bytes 0.5.4", 925 | "futures-channel", 926 | "futures-core", 927 | "futures-util", 928 | "h2 0.2.4", 929 | "http 0.2.1", 930 | "http-body 0.3.1", 931 | "httparse", 932 | "itoa", 933 | "log 0.4.8", 934 | "net2", 935 | "pin-project", 936 | "time", 937 | "tokio 0.2.18", 938 | "tower-service", 939 | "want 0.3.0", 940 | ] 941 | 942 | [[package]] 943 | name = "hyper-tls" 944 | version = "0.3.2" 945 | source = "registry+https://github.com/rust-lang/crates.io-index" 946 | checksum = "3a800d6aa50af4b5850b2b0f659625ce9504df908e9733b635720483be26174f" 947 | dependencies = [ 948 | "bytes 0.4.12", 949 | "futures", 950 | "hyper 0.12.35", 951 | "native-tls", 952 | "tokio-io", 953 | ] 954 | 955 | [[package]] 956 | name = "idna" 957 | version = "0.1.5" 958 | source = "registry+https://github.com/rust-lang/crates.io-index" 959 | checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" 960 | dependencies = [ 961 | "matches", 962 | "unicode-bidi", 963 | "unicode-normalization", 964 | ] 965 | 966 | [[package]] 967 | name = "idna" 968 | version = "0.2.0" 969 | source = "registry+https://github.com/rust-lang/crates.io-index" 970 | checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9" 971 | dependencies = [ 972 | "matches", 973 | "unicode-bidi", 974 | "unicode-normalization", 975 | ] 976 | 977 | [[package]] 978 | name = "ignore" 979 | version = "0.4.14" 980 | source = "registry+https://github.com/rust-lang/crates.io-index" 981 | checksum = "ddf60d063dbe6b75388eec66cfc07781167ae3d34a09e0c433e6c5de0511f7fb" 982 | dependencies = [ 983 | "crossbeam-channel", 984 | "crossbeam-utils", 985 | "globset", 986 | "lazy_static", 987 | "log 0.4.8", 988 | "memchr", 989 | "regex", 990 | "same-file", 991 | "thread_local", 992 | "walkdir", 993 | "winapi-util", 994 | ] 995 | 996 | [[package]] 997 | name = "indexmap" 998 | version = "1.3.2" 999 | source = "registry+https://github.com/rust-lang/crates.io-index" 1000 | checksum = "076f042c5b7b98f31d205f1249267e12a6518c1481e9dae9764af19b707d2292" 1001 | dependencies = [ 1002 | "autocfg 1.0.0", 1003 | ] 1004 | 1005 | [[package]] 1006 | name = "inotify" 1007 | version = "0.7.0" 1008 | source = "registry+https://github.com/rust-lang/crates.io-index" 1009 | checksum = "24e40d6fd5d64e2082e0c796495c8ef5ad667a96d03e5aaa0becfd9d47bcbfb8" 1010 | dependencies = [ 1011 | "bitflags 1.2.1", 1012 | "inotify-sys", 1013 | "libc", 1014 | ] 1015 | 1016 | [[package]] 1017 | name = "inotify-sys" 1018 | version = "0.1.3" 1019 | source = "registry+https://github.com/rust-lang/crates.io-index" 1020 | checksum = "e74a1aa87c59aeff6ef2cc2fa62d41bc43f54952f55652656b18a02fd5e356c0" 1021 | dependencies = [ 1022 | "libc", 1023 | ] 1024 | 1025 | [[package]] 1026 | name = "iovec" 1027 | version = "0.1.4" 1028 | source = "registry+https://github.com/rust-lang/crates.io-index" 1029 | checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" 1030 | dependencies = [ 1031 | "libc", 1032 | ] 1033 | 1034 | [[package]] 1035 | name = "itoa" 1036 | version = "0.4.5" 1037 | source = "registry+https://github.com/rust-lang/crates.io-index" 1038 | checksum = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e" 1039 | 1040 | [[package]] 1041 | name = "kernel32-sys" 1042 | version = "0.2.2" 1043 | source = "registry+https://github.com/rust-lang/crates.io-index" 1044 | checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" 1045 | dependencies = [ 1046 | "winapi 0.2.8", 1047 | "winapi-build", 1048 | ] 1049 | 1050 | [[package]] 1051 | name = "language-tags" 1052 | version = "0.2.2" 1053 | source = "registry+https://github.com/rust-lang/crates.io-index" 1054 | checksum = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" 1055 | 1056 | [[package]] 1057 | name = "lazy_static" 1058 | version = "1.4.0" 1059 | source = "registry+https://github.com/rust-lang/crates.io-index" 1060 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 1061 | 1062 | [[package]] 1063 | name = "lazycell" 1064 | version = "1.2.1" 1065 | source = "registry+https://github.com/rust-lang/crates.io-index" 1066 | checksum = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" 1067 | 1068 | [[package]] 1069 | name = "libc" 1070 | version = "0.2.69" 1071 | source = "registry+https://github.com/rust-lang/crates.io-index" 1072 | checksum = "99e85c08494b21a9054e7fe1374a732aeadaff3980b6990b94bfd3a70f690005" 1073 | 1074 | [[package]] 1075 | name = "libflate" 1076 | version = "0.1.27" 1077 | source = "registry+https://github.com/rust-lang/crates.io-index" 1078 | checksum = "d9135df43b1f5d0e333385cb6e7897ecd1a43d7d11b91ac003f4d2c2d2401fdd" 1079 | dependencies = [ 1080 | "adler32", 1081 | "crc32fast", 1082 | "rle-decode-fast", 1083 | "take_mut", 1084 | ] 1085 | 1086 | [[package]] 1087 | name = "lock_api" 1088 | version = "0.3.4" 1089 | source = "registry+https://github.com/rust-lang/crates.io-index" 1090 | checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" 1091 | dependencies = [ 1092 | "scopeguard", 1093 | ] 1094 | 1095 | [[package]] 1096 | name = "log" 1097 | version = "0.3.9" 1098 | source = "registry+https://github.com/rust-lang/crates.io-index" 1099 | checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" 1100 | dependencies = [ 1101 | "log 0.4.8", 1102 | ] 1103 | 1104 | [[package]] 1105 | name = "log" 1106 | version = "0.4.8" 1107 | source = "registry+https://github.com/rust-lang/crates.io-index" 1108 | checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7" 1109 | dependencies = [ 1110 | "cfg-if", 1111 | ] 1112 | 1113 | [[package]] 1114 | name = "maplit" 1115 | version = "1.0.2" 1116 | source = "registry+https://github.com/rust-lang/crates.io-index" 1117 | checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" 1118 | 1119 | [[package]] 1120 | name = "matches" 1121 | version = "0.1.8" 1122 | source = "registry+https://github.com/rust-lang/crates.io-index" 1123 | checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" 1124 | 1125 | [[package]] 1126 | name = "maybe-uninit" 1127 | version = "2.0.0" 1128 | source = "registry+https://github.com/rust-lang/crates.io-index" 1129 | checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" 1130 | 1131 | [[package]] 1132 | name = "memchr" 1133 | version = "2.3.3" 1134 | source = "registry+https://github.com/rust-lang/crates.io-index" 1135 | checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" 1136 | 1137 | [[package]] 1138 | name = "memmap" 1139 | version = "0.7.0" 1140 | source = "registry+https://github.com/rust-lang/crates.io-index" 1141 | checksum = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b" 1142 | dependencies = [ 1143 | "libc", 1144 | "winapi 0.3.8", 1145 | ] 1146 | 1147 | [[package]] 1148 | name = "memoffset" 1149 | version = "0.5.4" 1150 | source = "registry+https://github.com/rust-lang/crates.io-index" 1151 | checksum = "b4fc2c02a7e374099d4ee95a193111f72d2110197fe200272371758f6c3643d8" 1152 | dependencies = [ 1153 | "autocfg 1.0.0", 1154 | ] 1155 | 1156 | [[package]] 1157 | name = "mime" 1158 | version = "0.2.6" 1159 | source = "registry+https://github.com/rust-lang/crates.io-index" 1160 | checksum = "ba626b8a6de5da682e1caa06bdb42a335aee5a84db8e5046a3e8ab17ba0a3ae0" 1161 | dependencies = [ 1162 | "log 0.3.9", 1163 | ] 1164 | 1165 | [[package]] 1166 | name = "mime" 1167 | version = "0.3.16" 1168 | source = "registry+https://github.com/rust-lang/crates.io-index" 1169 | checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" 1170 | 1171 | [[package]] 1172 | name = "mime_guess" 1173 | version = "1.8.8" 1174 | source = "registry+https://github.com/rust-lang/crates.io-index" 1175 | checksum = "216929a5ee4dd316b1702eedf5e74548c123d370f47841ceaac38ca154690ca3" 1176 | dependencies = [ 1177 | "mime 0.2.6", 1178 | "phf 0.7.24", 1179 | "phf_codegen 0.7.24", 1180 | "unicase 1.4.2", 1181 | ] 1182 | 1183 | [[package]] 1184 | name = "mime_guess" 1185 | version = "2.0.3" 1186 | source = "registry+https://github.com/rust-lang/crates.io-index" 1187 | checksum = "2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212" 1188 | dependencies = [ 1189 | "mime 0.3.16", 1190 | "unicase 2.6.0", 1191 | ] 1192 | 1193 | [[package]] 1194 | name = "miniz_oxide" 1195 | version = "0.3.6" 1196 | source = "registry+https://github.com/rust-lang/crates.io-index" 1197 | checksum = "aa679ff6578b1cddee93d7e82e263b94a575e0bfced07284eb0c037c1d2416a5" 1198 | dependencies = [ 1199 | "adler32", 1200 | ] 1201 | 1202 | [[package]] 1203 | name = "mio" 1204 | version = "0.6.21" 1205 | source = "registry+https://github.com/rust-lang/crates.io-index" 1206 | checksum = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f" 1207 | dependencies = [ 1208 | "cfg-if", 1209 | "fuchsia-zircon", 1210 | "fuchsia-zircon-sys", 1211 | "iovec", 1212 | "kernel32-sys", 1213 | "libc", 1214 | "log 0.4.8", 1215 | "miow", 1216 | "net2", 1217 | "slab", 1218 | "winapi 0.2.8", 1219 | ] 1220 | 1221 | [[package]] 1222 | name = "mio-extras" 1223 | version = "2.0.6" 1224 | source = "registry+https://github.com/rust-lang/crates.io-index" 1225 | checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" 1226 | dependencies = [ 1227 | "lazycell", 1228 | "log 0.4.8", 1229 | "mio", 1230 | "slab", 1231 | ] 1232 | 1233 | [[package]] 1234 | name = "mio-uds" 1235 | version = "0.6.7" 1236 | source = "registry+https://github.com/rust-lang/crates.io-index" 1237 | checksum = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125" 1238 | dependencies = [ 1239 | "iovec", 1240 | "libc", 1241 | "mio", 1242 | ] 1243 | 1244 | [[package]] 1245 | name = "miow" 1246 | version = "0.2.1" 1247 | source = "registry+https://github.com/rust-lang/crates.io-index" 1248 | checksum = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" 1249 | dependencies = [ 1250 | "kernel32-sys", 1251 | "net2", 1252 | "winapi 0.2.8", 1253 | "ws2_32-sys", 1254 | ] 1255 | 1256 | [[package]] 1257 | name = "native-tls" 1258 | version = "0.2.3" 1259 | source = "registry+https://github.com/rust-lang/crates.io-index" 1260 | checksum = "4b2df1a4c22fd44a62147fd8f13dd0f95c9d8ca7b2610299b2a2f9cf8964274e" 1261 | dependencies = [ 1262 | "lazy_static", 1263 | "libc", 1264 | "log 0.4.8", 1265 | "openssl", 1266 | "openssl-probe", 1267 | "openssl-sys", 1268 | "schannel", 1269 | "security-framework", 1270 | "security-framework-sys", 1271 | "tempfile", 1272 | ] 1273 | 1274 | [[package]] 1275 | name = "net2" 1276 | version = "0.2.33" 1277 | source = "registry+https://github.com/rust-lang/crates.io-index" 1278 | checksum = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" 1279 | dependencies = [ 1280 | "cfg-if", 1281 | "libc", 1282 | "winapi 0.3.8", 1283 | ] 1284 | 1285 | [[package]] 1286 | name = "notify" 1287 | version = "4.0.15" 1288 | source = "registry+https://github.com/rust-lang/crates.io-index" 1289 | checksum = "80ae4a7688d1fab81c5bf19c64fc8db920be8d519ce6336ed4e7efe024724dbd" 1290 | dependencies = [ 1291 | "bitflags 1.2.1", 1292 | "filetime", 1293 | "fsevent", 1294 | "fsevent-sys", 1295 | "inotify", 1296 | "libc", 1297 | "mio", 1298 | "mio-extras", 1299 | "walkdir", 1300 | "winapi 0.3.8", 1301 | ] 1302 | 1303 | [[package]] 1304 | name = "num_cpus" 1305 | version = "1.13.0" 1306 | source = "registry+https://github.com/rust-lang/crates.io-index" 1307 | checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" 1308 | dependencies = [ 1309 | "hermit-abi", 1310 | "libc", 1311 | ] 1312 | 1313 | [[package]] 1314 | name = "numtoa" 1315 | version = "0.1.0" 1316 | source = "registry+https://github.com/rust-lang/crates.io-index" 1317 | checksum = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef" 1318 | 1319 | [[package]] 1320 | name = "opaque-debug" 1321 | version = "0.2.3" 1322 | source = "registry+https://github.com/rust-lang/crates.io-index" 1323 | checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" 1324 | 1325 | [[package]] 1326 | name = "open" 1327 | version = "1.4.0" 1328 | source = "registry+https://github.com/rust-lang/crates.io-index" 1329 | checksum = "7c283bf0114efea9e42f1a60edea9859e8c47528eae09d01df4b29c1e489cc48" 1330 | dependencies = [ 1331 | "winapi 0.3.8", 1332 | ] 1333 | 1334 | [[package]] 1335 | name = "openssl" 1336 | version = "0.10.22" 1337 | source = "registry+https://github.com/rust-lang/crates.io-index" 1338 | checksum = "a51f452b82d622fc8dd973d7266e9055ac64af25b957d9ced3989142dc61cb6b" 1339 | dependencies = [ 1340 | "bitflags 1.2.1", 1341 | "cfg-if", 1342 | "foreign-types", 1343 | "lazy_static", 1344 | "libc", 1345 | "openssl-sys", 1346 | ] 1347 | 1348 | [[package]] 1349 | name = "openssl-probe" 1350 | version = "0.1.2" 1351 | source = "registry+https://github.com/rust-lang/crates.io-index" 1352 | checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" 1353 | 1354 | [[package]] 1355 | name = "openssl-src" 1356 | version = "111.8.1+1.1.1f" 1357 | source = "registry+https://github.com/rust-lang/crates.io-index" 1358 | checksum = "f04f0299a91de598dde58d2e99101895498dcf3d58896a3297798f28b27c8b72" 1359 | dependencies = [ 1360 | "cc", 1361 | ] 1362 | 1363 | [[package]] 1364 | name = "openssl-sys" 1365 | version = "0.9.45" 1366 | source = "registry+https://github.com/rust-lang/crates.io-index" 1367 | checksum = "ce906a1d521507a94645974fc9ab0fb70ceeb789f7240b85617ca3d8d2cd2f46" 1368 | dependencies = [ 1369 | "autocfg 0.1.7", 1370 | "cc", 1371 | "libc", 1372 | "openssl-src", 1373 | "pkg-config", 1374 | "vcpkg", 1375 | ] 1376 | 1377 | [[package]] 1378 | name = "parity-wasm" 1379 | version = "0.35.7" 1380 | source = "registry+https://github.com/rust-lang/crates.io-index" 1381 | checksum = "3e1e076c4e01399b6cd0793a8df42f90bba3ae424671ef421d1608a943155d93" 1382 | dependencies = [ 1383 | "byteorder", 1384 | ] 1385 | 1386 | [[package]] 1387 | name = "parking_lot" 1388 | version = "0.9.0" 1389 | source = "registry+https://github.com/rust-lang/crates.io-index" 1390 | checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" 1391 | dependencies = [ 1392 | "lock_api", 1393 | "parking_lot_core", 1394 | "rustc_version", 1395 | ] 1396 | 1397 | [[package]] 1398 | name = "parking_lot_core" 1399 | version = "0.6.2" 1400 | source = "registry+https://github.com/rust-lang/crates.io-index" 1401 | checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b" 1402 | dependencies = [ 1403 | "cfg-if", 1404 | "cloudabi", 1405 | "libc", 1406 | "redox_syscall", 1407 | "rustc_version", 1408 | "smallvec 0.6.13", 1409 | "winapi 0.3.8", 1410 | ] 1411 | 1412 | [[package]] 1413 | name = "pbr" 1414 | version = "1.0.2" 1415 | source = "registry+https://github.com/rust-lang/crates.io-index" 1416 | checksum = "4403eb718d70c03ee279e51737782902c68cca01e870a33b6a2f9dfb50b9cd83" 1417 | dependencies = [ 1418 | "libc", 1419 | "termion", 1420 | "time", 1421 | "winapi 0.3.8", 1422 | ] 1423 | 1424 | [[package]] 1425 | name = "percent-encoding" 1426 | version = "1.0.1" 1427 | source = "registry+https://github.com/rust-lang/crates.io-index" 1428 | checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" 1429 | 1430 | [[package]] 1431 | name = "percent-encoding" 1432 | version = "2.1.0" 1433 | source = "registry+https://github.com/rust-lang/crates.io-index" 1434 | checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" 1435 | 1436 | [[package]] 1437 | name = "pest" 1438 | version = "2.1.3" 1439 | source = "registry+https://github.com/rust-lang/crates.io-index" 1440 | checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" 1441 | dependencies = [ 1442 | "ucd-trie", 1443 | ] 1444 | 1445 | [[package]] 1446 | name = "pest_derive" 1447 | version = "2.1.0" 1448 | source = "registry+https://github.com/rust-lang/crates.io-index" 1449 | checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0" 1450 | dependencies = [ 1451 | "pest", 1452 | "pest_generator", 1453 | ] 1454 | 1455 | [[package]] 1456 | name = "pest_generator" 1457 | version = "2.1.3" 1458 | source = "registry+https://github.com/rust-lang/crates.io-index" 1459 | checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55" 1460 | dependencies = [ 1461 | "pest", 1462 | "pest_meta", 1463 | "proc-macro2 1.0.10", 1464 | "quote 1.0.3", 1465 | "syn 1.0.17", 1466 | ] 1467 | 1468 | [[package]] 1469 | name = "pest_meta" 1470 | version = "2.1.3" 1471 | source = "registry+https://github.com/rust-lang/crates.io-index" 1472 | checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d" 1473 | dependencies = [ 1474 | "maplit", 1475 | "pest", 1476 | "sha-1", 1477 | ] 1478 | 1479 | [[package]] 1480 | name = "phf" 1481 | version = "0.7.24" 1482 | source = "registry+https://github.com/rust-lang/crates.io-index" 1483 | checksum = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18" 1484 | dependencies = [ 1485 | "phf_shared 0.7.24", 1486 | ] 1487 | 1488 | [[package]] 1489 | name = "phf" 1490 | version = "0.8.0" 1491 | source = "registry+https://github.com/rust-lang/crates.io-index" 1492 | checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" 1493 | dependencies = [ 1494 | "phf_shared 0.8.0", 1495 | ] 1496 | 1497 | [[package]] 1498 | name = "phf_codegen" 1499 | version = "0.7.24" 1500 | source = "registry+https://github.com/rust-lang/crates.io-index" 1501 | checksum = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e" 1502 | dependencies = [ 1503 | "phf_generator 0.7.24", 1504 | "phf_shared 0.7.24", 1505 | ] 1506 | 1507 | [[package]] 1508 | name = "phf_codegen" 1509 | version = "0.8.0" 1510 | source = "registry+https://github.com/rust-lang/crates.io-index" 1511 | checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" 1512 | dependencies = [ 1513 | "phf_generator 0.8.0", 1514 | "phf_shared 0.8.0", 1515 | ] 1516 | 1517 | [[package]] 1518 | name = "phf_generator" 1519 | version = "0.7.24" 1520 | source = "registry+https://github.com/rust-lang/crates.io-index" 1521 | checksum = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662" 1522 | dependencies = [ 1523 | "phf_shared 0.7.24", 1524 | "rand 0.6.5", 1525 | ] 1526 | 1527 | [[package]] 1528 | name = "phf_generator" 1529 | version = "0.8.0" 1530 | source = "registry+https://github.com/rust-lang/crates.io-index" 1531 | checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" 1532 | dependencies = [ 1533 | "phf_shared 0.8.0", 1534 | "rand 0.7.3", 1535 | ] 1536 | 1537 | [[package]] 1538 | name = "phf_shared" 1539 | version = "0.7.24" 1540 | source = "registry+https://github.com/rust-lang/crates.io-index" 1541 | checksum = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0" 1542 | dependencies = [ 1543 | "siphasher 0.2.3", 1544 | "unicase 1.4.2", 1545 | ] 1546 | 1547 | [[package]] 1548 | name = "phf_shared" 1549 | version = "0.8.0" 1550 | source = "registry+https://github.com/rust-lang/crates.io-index" 1551 | checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" 1552 | dependencies = [ 1553 | "siphasher 0.3.3", 1554 | ] 1555 | 1556 | [[package]] 1557 | name = "pin-project" 1558 | version = "0.4.9" 1559 | source = "registry+https://github.com/rust-lang/crates.io-index" 1560 | checksum = "6f6a7f5eee6292c559c793430c55c00aea9d3b3d1905e855806ca4d7253426a2" 1561 | dependencies = [ 1562 | "pin-project-internal", 1563 | ] 1564 | 1565 | [[package]] 1566 | name = "pin-project-internal" 1567 | version = "0.4.9" 1568 | source = "registry+https://github.com/rust-lang/crates.io-index" 1569 | checksum = "8988430ce790d8682672117bc06dda364c0be32d3abd738234f19f3240bad99a" 1570 | dependencies = [ 1571 | "proc-macro2 1.0.10", 1572 | "quote 1.0.3", 1573 | "syn 1.0.17", 1574 | ] 1575 | 1576 | [[package]] 1577 | name = "pin-project-lite" 1578 | version = "0.1.4" 1579 | source = "registry+https://github.com/rust-lang/crates.io-index" 1580 | checksum = "237844750cfbb86f67afe27eee600dfbbcb6188d734139b534cbfbf4f96792ae" 1581 | 1582 | [[package]] 1583 | name = "pin-utils" 1584 | version = "0.1.0-alpha.4" 1585 | source = "registry+https://github.com/rust-lang/crates.io-index" 1586 | checksum = "5894c618ce612a3fa23881b152b608bafb8c56cfc22f434a3ba3120b40f7b587" 1587 | 1588 | [[package]] 1589 | name = "pkg-config" 1590 | version = "0.3.17" 1591 | source = "registry+https://github.com/rust-lang/crates.io-index" 1592 | checksum = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677" 1593 | 1594 | [[package]] 1595 | name = "ppv-lite86" 1596 | version = "0.2.6" 1597 | source = "registry+https://github.com/rust-lang/crates.io-index" 1598 | checksum = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b" 1599 | 1600 | [[package]] 1601 | name = "proc-macro2" 1602 | version = "0.4.30" 1603 | source = "registry+https://github.com/rust-lang/crates.io-index" 1604 | checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" 1605 | dependencies = [ 1606 | "unicode-xid 0.1.0", 1607 | ] 1608 | 1609 | [[package]] 1610 | name = "proc-macro2" 1611 | version = "1.0.10" 1612 | source = "registry+https://github.com/rust-lang/crates.io-index" 1613 | checksum = "df246d292ff63439fea9bc8c0a270bed0e390d5ebd4db4ba15aba81111b5abe3" 1614 | dependencies = [ 1615 | "unicode-xid 0.2.0", 1616 | ] 1617 | 1618 | [[package]] 1619 | name = "publicsuffix" 1620 | version = "1.5.4" 1621 | source = "registry+https://github.com/rust-lang/crates.io-index" 1622 | checksum = "3bbaa49075179162b49acac1c6aa45fb4dafb5f13cf6794276d77bc7fd95757b" 1623 | dependencies = [ 1624 | "error-chain", 1625 | "idna 0.2.0", 1626 | "lazy_static", 1627 | "regex", 1628 | "url 2.1.1", 1629 | ] 1630 | 1631 | [[package]] 1632 | name = "quick-error" 1633 | version = "1.2.3" 1634 | source = "registry+https://github.com/rust-lang/crates.io-index" 1635 | checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" 1636 | 1637 | [[package]] 1638 | name = "quote" 1639 | version = "0.6.13" 1640 | source = "registry+https://github.com/rust-lang/crates.io-index" 1641 | checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" 1642 | dependencies = [ 1643 | "proc-macro2 0.4.30", 1644 | ] 1645 | 1646 | [[package]] 1647 | name = "quote" 1648 | version = "1.0.3" 1649 | source = "registry+https://github.com/rust-lang/crates.io-index" 1650 | checksum = "2bdc6c187c65bca4260c9011c9e3132efe4909da44726bad24cf7572ae338d7f" 1651 | dependencies = [ 1652 | "proc-macro2 1.0.10", 1653 | ] 1654 | 1655 | [[package]] 1656 | name = "rand" 1657 | version = "0.5.6" 1658 | source = "registry+https://github.com/rust-lang/crates.io-index" 1659 | checksum = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9" 1660 | dependencies = [ 1661 | "cloudabi", 1662 | "fuchsia-cprng", 1663 | "libc", 1664 | "rand_core 0.3.1", 1665 | "winapi 0.3.8", 1666 | ] 1667 | 1668 | [[package]] 1669 | name = "rand" 1670 | version = "0.6.5" 1671 | source = "registry+https://github.com/rust-lang/crates.io-index" 1672 | checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" 1673 | dependencies = [ 1674 | "autocfg 0.1.7", 1675 | "libc", 1676 | "rand_chacha 0.1.1", 1677 | "rand_core 0.4.2", 1678 | "rand_hc 0.1.0", 1679 | "rand_isaac", 1680 | "rand_jitter", 1681 | "rand_os", 1682 | "rand_pcg 0.1.2", 1683 | "rand_xorshift", 1684 | "winapi 0.3.8", 1685 | ] 1686 | 1687 | [[package]] 1688 | name = "rand" 1689 | version = "0.7.3" 1690 | source = "registry+https://github.com/rust-lang/crates.io-index" 1691 | checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" 1692 | dependencies = [ 1693 | "getrandom", 1694 | "libc", 1695 | "rand_chacha 0.2.2", 1696 | "rand_core 0.5.1", 1697 | "rand_hc 0.2.0", 1698 | "rand_pcg 0.2.1", 1699 | ] 1700 | 1701 | [[package]] 1702 | name = "rand_chacha" 1703 | version = "0.1.1" 1704 | source = "registry+https://github.com/rust-lang/crates.io-index" 1705 | checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" 1706 | dependencies = [ 1707 | "autocfg 0.1.7", 1708 | "rand_core 0.3.1", 1709 | ] 1710 | 1711 | [[package]] 1712 | name = "rand_chacha" 1713 | version = "0.2.2" 1714 | source = "registry+https://github.com/rust-lang/crates.io-index" 1715 | checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" 1716 | dependencies = [ 1717 | "ppv-lite86", 1718 | "rand_core 0.5.1", 1719 | ] 1720 | 1721 | [[package]] 1722 | name = "rand_core" 1723 | version = "0.3.1" 1724 | source = "registry+https://github.com/rust-lang/crates.io-index" 1725 | checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" 1726 | dependencies = [ 1727 | "rand_core 0.4.2", 1728 | ] 1729 | 1730 | [[package]] 1731 | name = "rand_core" 1732 | version = "0.4.2" 1733 | source = "registry+https://github.com/rust-lang/crates.io-index" 1734 | checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" 1735 | 1736 | [[package]] 1737 | name = "rand_core" 1738 | version = "0.5.1" 1739 | source = "registry+https://github.com/rust-lang/crates.io-index" 1740 | checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" 1741 | dependencies = [ 1742 | "getrandom", 1743 | ] 1744 | 1745 | [[package]] 1746 | name = "rand_hc" 1747 | version = "0.1.0" 1748 | source = "registry+https://github.com/rust-lang/crates.io-index" 1749 | checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" 1750 | dependencies = [ 1751 | "rand_core 0.3.1", 1752 | ] 1753 | 1754 | [[package]] 1755 | name = "rand_hc" 1756 | version = "0.2.0" 1757 | source = "registry+https://github.com/rust-lang/crates.io-index" 1758 | checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" 1759 | dependencies = [ 1760 | "rand_core 0.5.1", 1761 | ] 1762 | 1763 | [[package]] 1764 | name = "rand_isaac" 1765 | version = "0.1.1" 1766 | source = "registry+https://github.com/rust-lang/crates.io-index" 1767 | checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" 1768 | dependencies = [ 1769 | "rand_core 0.3.1", 1770 | ] 1771 | 1772 | [[package]] 1773 | name = "rand_jitter" 1774 | version = "0.1.4" 1775 | source = "registry+https://github.com/rust-lang/crates.io-index" 1776 | checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" 1777 | dependencies = [ 1778 | "libc", 1779 | "rand_core 0.4.2", 1780 | "winapi 0.3.8", 1781 | ] 1782 | 1783 | [[package]] 1784 | name = "rand_os" 1785 | version = "0.1.3" 1786 | source = "registry+https://github.com/rust-lang/crates.io-index" 1787 | checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" 1788 | dependencies = [ 1789 | "cloudabi", 1790 | "fuchsia-cprng", 1791 | "libc", 1792 | "rand_core 0.4.2", 1793 | "rdrand", 1794 | "winapi 0.3.8", 1795 | ] 1796 | 1797 | [[package]] 1798 | name = "rand_pcg" 1799 | version = "0.1.2" 1800 | source = "registry+https://github.com/rust-lang/crates.io-index" 1801 | checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" 1802 | dependencies = [ 1803 | "autocfg 0.1.7", 1804 | "rand_core 0.4.2", 1805 | ] 1806 | 1807 | [[package]] 1808 | name = "rand_pcg" 1809 | version = "0.2.1" 1810 | source = "registry+https://github.com/rust-lang/crates.io-index" 1811 | checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" 1812 | dependencies = [ 1813 | "rand_core 0.5.1", 1814 | ] 1815 | 1816 | [[package]] 1817 | name = "rand_xorshift" 1818 | version = "0.1.1" 1819 | source = "registry+https://github.com/rust-lang/crates.io-index" 1820 | checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" 1821 | dependencies = [ 1822 | "rand_core 0.3.1", 1823 | ] 1824 | 1825 | [[package]] 1826 | name = "rdrand" 1827 | version = "0.4.0" 1828 | source = "registry+https://github.com/rust-lang/crates.io-index" 1829 | checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" 1830 | dependencies = [ 1831 | "rand_core 0.3.1", 1832 | ] 1833 | 1834 | [[package]] 1835 | name = "redox_syscall" 1836 | version = "0.1.56" 1837 | source = "registry+https://github.com/rust-lang/crates.io-index" 1838 | checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84" 1839 | 1840 | [[package]] 1841 | name = "redox_termios" 1842 | version = "0.1.1" 1843 | source = "registry+https://github.com/rust-lang/crates.io-index" 1844 | checksum = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" 1845 | dependencies = [ 1846 | "redox_syscall", 1847 | ] 1848 | 1849 | [[package]] 1850 | name = "redox_users" 1851 | version = "0.3.4" 1852 | source = "registry+https://github.com/rust-lang/crates.io-index" 1853 | checksum = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431" 1854 | dependencies = [ 1855 | "getrandom", 1856 | "redox_syscall", 1857 | "rust-argon2", 1858 | ] 1859 | 1860 | [[package]] 1861 | name = "regex" 1862 | version = "1.3.6" 1863 | source = "registry+https://github.com/rust-lang/crates.io-index" 1864 | checksum = "7f6946991529684867e47d86474e3a6d0c0ab9b82d5821e314b1ede31fa3a4b3" 1865 | dependencies = [ 1866 | "aho-corasick", 1867 | "memchr", 1868 | "regex-syntax", 1869 | "thread_local", 1870 | ] 1871 | 1872 | [[package]] 1873 | name = "regex-syntax" 1874 | version = "0.6.17" 1875 | source = "registry+https://github.com/rust-lang/crates.io-index" 1876 | checksum = "7fe5bd57d1d7414c6b5ed48563a2c855d995ff777729dcd91c369ec7fea395ae" 1877 | 1878 | [[package]] 1879 | name = "remove_dir_all" 1880 | version = "0.5.2" 1881 | source = "registry+https://github.com/rust-lang/crates.io-index" 1882 | checksum = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e" 1883 | dependencies = [ 1884 | "winapi 0.3.8", 1885 | ] 1886 | 1887 | [[package]] 1888 | name = "reqwest" 1889 | version = "0.9.24" 1890 | source = "registry+https://github.com/rust-lang/crates.io-index" 1891 | checksum = "f88643aea3c1343c804950d7bf983bd2067f5ab59db6d613a08e05572f2714ab" 1892 | dependencies = [ 1893 | "base64 0.10.1", 1894 | "bytes 0.4.12", 1895 | "cookie", 1896 | "cookie_store", 1897 | "encoding_rs", 1898 | "flate2", 1899 | "futures", 1900 | "http 0.1.21", 1901 | "hyper 0.12.35", 1902 | "hyper-tls", 1903 | "log 0.4.8", 1904 | "mime 0.3.16", 1905 | "mime_guess 2.0.3", 1906 | "native-tls", 1907 | "serde", 1908 | "serde_json", 1909 | "serde_urlencoded", 1910 | "time", 1911 | "tokio 0.1.22", 1912 | "tokio-executor", 1913 | "tokio-io", 1914 | "tokio-threadpool", 1915 | "tokio-timer", 1916 | "url 1.7.2", 1917 | "uuid", 1918 | "winreg", 1919 | ] 1920 | 1921 | [[package]] 1922 | name = "rle-decode-fast" 1923 | version = "1.0.1" 1924 | source = "registry+https://github.com/rust-lang/crates.io-index" 1925 | checksum = "cabe4fa914dec5870285fa7f71f602645da47c486e68486d2b4ceb4a343e90ac" 1926 | 1927 | [[package]] 1928 | name = "rust-argon2" 1929 | version = "0.7.0" 1930 | source = "registry+https://github.com/rust-lang/crates.io-index" 1931 | checksum = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017" 1932 | dependencies = [ 1933 | "base64 0.11.0", 1934 | "blake2b_simd", 1935 | "constant_time_eq", 1936 | "crossbeam-utils", 1937 | ] 1938 | 1939 | [[package]] 1940 | name = "rustc-demangle" 1941 | version = "0.1.16" 1942 | source = "registry+https://github.com/rust-lang/crates.io-index" 1943 | checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783" 1944 | 1945 | [[package]] 1946 | name = "rustc_version" 1947 | version = "0.2.3" 1948 | source = "registry+https://github.com/rust-lang/crates.io-index" 1949 | checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" 1950 | dependencies = [ 1951 | "semver", 1952 | ] 1953 | 1954 | [[package]] 1955 | name = "ryu" 1956 | version = "1.0.3" 1957 | source = "registry+https://github.com/rust-lang/crates.io-index" 1958 | checksum = "535622e6be132bccd223f4bb2b8ac8d53cda3c7a6394944d3b2b33fb974f9d76" 1959 | 1960 | [[package]] 1961 | name = "safemem" 1962 | version = "0.3.3" 1963 | source = "registry+https://github.com/rust-lang/crates.io-index" 1964 | checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" 1965 | 1966 | [[package]] 1967 | name = "same-file" 1968 | version = "1.0.6" 1969 | source = "registry+https://github.com/rust-lang/crates.io-index" 1970 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 1971 | dependencies = [ 1972 | "winapi-util", 1973 | ] 1974 | 1975 | [[package]] 1976 | name = "schannel" 1977 | version = "0.1.18" 1978 | source = "registry+https://github.com/rust-lang/crates.io-index" 1979 | checksum = "039c25b130bd8c1321ee2d7de7fde2659fa9c2744e4bb29711cfc852ea53cd19" 1980 | dependencies = [ 1981 | "lazy_static", 1982 | "winapi 0.3.8", 1983 | ] 1984 | 1985 | [[package]] 1986 | name = "scoped-tls" 1987 | version = "0.1.2" 1988 | source = "registry+https://github.com/rust-lang/crates.io-index" 1989 | checksum = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28" 1990 | 1991 | [[package]] 1992 | name = "scopeguard" 1993 | version = "1.1.0" 1994 | source = "registry+https://github.com/rust-lang/crates.io-index" 1995 | checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" 1996 | 1997 | [[package]] 1998 | name = "security-framework" 1999 | version = "0.3.4" 2000 | source = "registry+https://github.com/rust-lang/crates.io-index" 2001 | checksum = "8ef2429d7cefe5fd28bd1d2ed41c944547d4ff84776f5935b456da44593a16df" 2002 | dependencies = [ 2003 | "core-foundation", 2004 | "core-foundation-sys", 2005 | "libc", 2006 | "security-framework-sys", 2007 | ] 2008 | 2009 | [[package]] 2010 | name = "security-framework-sys" 2011 | version = "0.3.3" 2012 | source = "registry+https://github.com/rust-lang/crates.io-index" 2013 | checksum = "e31493fc37615debb8c5090a7aeb4a9730bc61e77ab10b9af59f1a202284f895" 2014 | dependencies = [ 2015 | "core-foundation-sys", 2016 | ] 2017 | 2018 | [[package]] 2019 | name = "semver" 2020 | version = "0.9.0" 2021 | source = "registry+https://github.com/rust-lang/crates.io-index" 2022 | checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" 2023 | dependencies = [ 2024 | "semver-parser", 2025 | "serde", 2026 | ] 2027 | 2028 | [[package]] 2029 | name = "semver-parser" 2030 | version = "0.7.0" 2031 | source = "registry+https://github.com/rust-lang/crates.io-index" 2032 | checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" 2033 | 2034 | [[package]] 2035 | name = "serde" 2036 | version = "1.0.106" 2037 | source = "registry+https://github.com/rust-lang/crates.io-index" 2038 | checksum = "36df6ac6412072f67cf767ebbde4133a5b2e88e76dc6187fa7104cd16f783399" 2039 | dependencies = [ 2040 | "serde_derive", 2041 | ] 2042 | 2043 | [[package]] 2044 | name = "serde_derive" 2045 | version = "1.0.106" 2046 | source = "registry+https://github.com/rust-lang/crates.io-index" 2047 | checksum = "9e549e3abf4fb8621bd1609f11dfc9f5e50320802273b12f3811a67e6716ea6c" 2048 | dependencies = [ 2049 | "proc-macro2 1.0.10", 2050 | "quote 1.0.3", 2051 | "syn 1.0.17", 2052 | ] 2053 | 2054 | [[package]] 2055 | name = "serde_json" 2056 | version = "1.0.51" 2057 | source = "registry+https://github.com/rust-lang/crates.io-index" 2058 | checksum = "da07b57ee2623368351e9a0488bb0b261322a15a6e0ae53e243cbdc0f4208da9" 2059 | dependencies = [ 2060 | "itoa", 2061 | "ryu", 2062 | "serde", 2063 | ] 2064 | 2065 | [[package]] 2066 | name = "serde_urlencoded" 2067 | version = "0.5.5" 2068 | source = "registry+https://github.com/rust-lang/crates.io-index" 2069 | checksum = "642dd69105886af2efd227f75a520ec9b44a820d65bc133a9131f7d229fd165a" 2070 | dependencies = [ 2071 | "dtoa", 2072 | "itoa", 2073 | "serde", 2074 | "url 1.7.2", 2075 | ] 2076 | 2077 | [[package]] 2078 | name = "sha-1" 2079 | version = "0.8.2" 2080 | source = "registry+https://github.com/rust-lang/crates.io-index" 2081 | checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" 2082 | dependencies = [ 2083 | "block-buffer", 2084 | "digest", 2085 | "fake-simd", 2086 | "opaque-debug", 2087 | ] 2088 | 2089 | [[package]] 2090 | name = "sha1" 2091 | version = "0.6.0" 2092 | source = "registry+https://github.com/rust-lang/crates.io-index" 2093 | checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d" 2094 | 2095 | [[package]] 2096 | name = "sha2" 2097 | version = "0.8.1" 2098 | source = "registry+https://github.com/rust-lang/crates.io-index" 2099 | checksum = "27044adfd2e1f077f649f59deb9490d3941d674002f7d062870a60ebe9bd47a0" 2100 | dependencies = [ 2101 | "block-buffer", 2102 | "digest", 2103 | "fake-simd", 2104 | "opaque-debug", 2105 | ] 2106 | 2107 | [[package]] 2108 | name = "siphasher" 2109 | version = "0.2.3" 2110 | source = "registry+https://github.com/rust-lang/crates.io-index" 2111 | checksum = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" 2112 | 2113 | [[package]] 2114 | name = "siphasher" 2115 | version = "0.3.3" 2116 | source = "registry+https://github.com/rust-lang/crates.io-index" 2117 | checksum = "fa8f3741c7372e75519bd9346068370c9cdaabcc1f9599cbcf2a2719352286b7" 2118 | 2119 | [[package]] 2120 | name = "slab" 2121 | version = "0.4.2" 2122 | source = "registry+https://github.com/rust-lang/crates.io-index" 2123 | checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" 2124 | 2125 | [[package]] 2126 | name = "smallvec" 2127 | version = "0.6.13" 2128 | source = "registry+https://github.com/rust-lang/crates.io-index" 2129 | checksum = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6" 2130 | dependencies = [ 2131 | "maybe-uninit", 2132 | ] 2133 | 2134 | [[package]] 2135 | name = "smallvec" 2136 | version = "1.3.0" 2137 | source = "registry+https://github.com/rust-lang/crates.io-index" 2138 | checksum = "05720e22615919e4734f6a99ceae50d00226c3c5aca406e102ebc33298214e0a" 2139 | 2140 | [[package]] 2141 | name = "string" 2142 | version = "0.2.1" 2143 | source = "registry+https://github.com/rust-lang/crates.io-index" 2144 | checksum = "d24114bfcceb867ca7f71a0d3fe45d45619ec47a6fbfa98cb14e14250bfa5d6d" 2145 | dependencies = [ 2146 | "bytes 0.4.12", 2147 | ] 2148 | 2149 | [[package]] 2150 | name = "strsim" 2151 | version = "0.8.0" 2152 | source = "registry+https://github.com/rust-lang/crates.io-index" 2153 | checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" 2154 | 2155 | [[package]] 2156 | name = "structopt" 2157 | version = "0.2.18" 2158 | source = "registry+https://github.com/rust-lang/crates.io-index" 2159 | checksum = "16c2cdbf9cc375f15d1b4141bc48aeef444806655cd0e904207edc8d68d86ed7" 2160 | dependencies = [ 2161 | "clap", 2162 | "structopt-derive", 2163 | ] 2164 | 2165 | [[package]] 2166 | name = "structopt-derive" 2167 | version = "0.2.18" 2168 | source = "registry+https://github.com/rust-lang/crates.io-index" 2169 | checksum = "53010261a84b37689f9ed7d395165029f9cc7abb9f56bbfe86bee2597ed25107" 2170 | dependencies = [ 2171 | "heck", 2172 | "proc-macro2 0.4.30", 2173 | "quote 0.6.13", 2174 | "syn 0.15.44", 2175 | ] 2176 | 2177 | [[package]] 2178 | name = "syn" 2179 | version = "0.15.44" 2180 | source = "registry+https://github.com/rust-lang/crates.io-index" 2181 | checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" 2182 | dependencies = [ 2183 | "proc-macro2 0.4.30", 2184 | "quote 0.6.13", 2185 | "unicode-xid 0.1.0", 2186 | ] 2187 | 2188 | [[package]] 2189 | name = "syn" 2190 | version = "1.0.17" 2191 | source = "registry+https://github.com/rust-lang/crates.io-index" 2192 | checksum = "0df0eb663f387145cab623dea85b09c2c5b4b0aef44e945d928e682fce71bb03" 2193 | dependencies = [ 2194 | "proc-macro2 1.0.10", 2195 | "quote 1.0.3", 2196 | "unicode-xid 0.2.0", 2197 | ] 2198 | 2199 | [[package]] 2200 | name = "synstructure" 2201 | version = "0.12.3" 2202 | source = "registry+https://github.com/rust-lang/crates.io-index" 2203 | checksum = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545" 2204 | dependencies = [ 2205 | "proc-macro2 1.0.10", 2206 | "quote 1.0.3", 2207 | "syn 1.0.17", 2208 | "unicode-xid 0.2.0", 2209 | ] 2210 | 2211 | [[package]] 2212 | name = "take_mut" 2213 | version = "0.2.2" 2214 | source = "registry+https://github.com/rust-lang/crates.io-index" 2215 | checksum = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" 2216 | 2217 | [[package]] 2218 | name = "tar" 2219 | version = "0.4.26" 2220 | source = "registry+https://github.com/rust-lang/crates.io-index" 2221 | checksum = "b3196bfbffbba3e57481b6ea32249fbaf590396a52505a2615adbb79d9d826d3" 2222 | dependencies = [ 2223 | "filetime", 2224 | "libc", 2225 | "redox_syscall", 2226 | "xattr", 2227 | ] 2228 | 2229 | [[package]] 2230 | name = "tempfile" 2231 | version = "3.1.0" 2232 | source = "registry+https://github.com/rust-lang/crates.io-index" 2233 | checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" 2234 | dependencies = [ 2235 | "cfg-if", 2236 | "libc", 2237 | "rand 0.7.3", 2238 | "redox_syscall", 2239 | "remove_dir_all", 2240 | "winapi 0.3.8", 2241 | ] 2242 | 2243 | [[package]] 2244 | name = "termcolor" 2245 | version = "1.1.0" 2246 | source = "registry+https://github.com/rust-lang/crates.io-index" 2247 | checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f" 2248 | dependencies = [ 2249 | "winapi-util", 2250 | ] 2251 | 2252 | [[package]] 2253 | name = "termion" 2254 | version = "1.5.5" 2255 | source = "registry+https://github.com/rust-lang/crates.io-index" 2256 | checksum = "c22cec9d8978d906be5ac94bceb5a010d885c626c4c8855721a4dbd20e3ac905" 2257 | dependencies = [ 2258 | "libc", 2259 | "numtoa", 2260 | "redox_syscall", 2261 | "redox_termios", 2262 | ] 2263 | 2264 | [[package]] 2265 | name = "textwrap" 2266 | version = "0.11.0" 2267 | source = "registry+https://github.com/rust-lang/crates.io-index" 2268 | checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" 2269 | dependencies = [ 2270 | "unicode-width", 2271 | ] 2272 | 2273 | [[package]] 2274 | name = "thread_local" 2275 | version = "1.0.1" 2276 | source = "registry+https://github.com/rust-lang/crates.io-index" 2277 | checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14" 2278 | dependencies = [ 2279 | "lazy_static", 2280 | ] 2281 | 2282 | [[package]] 2283 | name = "time" 2284 | version = "0.1.42" 2285 | source = "registry+https://github.com/rust-lang/crates.io-index" 2286 | checksum = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" 2287 | dependencies = [ 2288 | "libc", 2289 | "redox_syscall", 2290 | "winapi 0.3.8", 2291 | ] 2292 | 2293 | [[package]] 2294 | name = "tokio" 2295 | version = "0.1.22" 2296 | source = "registry+https://github.com/rust-lang/crates.io-index" 2297 | checksum = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6" 2298 | dependencies = [ 2299 | "bytes 0.4.12", 2300 | "futures", 2301 | "mio", 2302 | "num_cpus", 2303 | "tokio-codec", 2304 | "tokio-current-thread", 2305 | "tokio-executor", 2306 | "tokio-fs", 2307 | "tokio-io", 2308 | "tokio-reactor", 2309 | "tokio-sync", 2310 | "tokio-tcp", 2311 | "tokio-threadpool", 2312 | "tokio-timer", 2313 | "tokio-udp", 2314 | "tokio-uds", 2315 | ] 2316 | 2317 | [[package]] 2318 | name = "tokio" 2319 | version = "0.2.18" 2320 | source = "registry+https://github.com/rust-lang/crates.io-index" 2321 | checksum = "34ef16d072d2b6dc8b4a56c70f5c5ced1a37752116f8e7c1e80c659aa7cb6713" 2322 | dependencies = [ 2323 | "bytes 0.5.4", 2324 | "fnv", 2325 | "futures-core", 2326 | "iovec", 2327 | "lazy_static", 2328 | "memchr", 2329 | "mio", 2330 | "pin-project-lite", 2331 | "slab", 2332 | ] 2333 | 2334 | [[package]] 2335 | name = "tokio-buf" 2336 | version = "0.1.1" 2337 | source = "registry+https://github.com/rust-lang/crates.io-index" 2338 | checksum = "8fb220f46c53859a4b7ec083e41dec9778ff0b1851c0942b211edb89e0ccdc46" 2339 | dependencies = [ 2340 | "bytes 0.4.12", 2341 | "either", 2342 | "futures", 2343 | ] 2344 | 2345 | [[package]] 2346 | name = "tokio-codec" 2347 | version = "0.1.2" 2348 | source = "registry+https://github.com/rust-lang/crates.io-index" 2349 | checksum = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b" 2350 | dependencies = [ 2351 | "bytes 0.4.12", 2352 | "futures", 2353 | "tokio-io", 2354 | ] 2355 | 2356 | [[package]] 2357 | name = "tokio-core" 2358 | version = "0.1.17" 2359 | source = "registry+https://github.com/rust-lang/crates.io-index" 2360 | checksum = "aeeffbbb94209023feaef3c196a41cbcdafa06b4a6f893f68779bb5e53796f71" 2361 | dependencies = [ 2362 | "bytes 0.4.12", 2363 | "futures", 2364 | "iovec", 2365 | "log 0.4.8", 2366 | "mio", 2367 | "scoped-tls", 2368 | "tokio 0.1.22", 2369 | "tokio-executor", 2370 | "tokio-io", 2371 | "tokio-reactor", 2372 | "tokio-timer", 2373 | ] 2374 | 2375 | [[package]] 2376 | name = "tokio-current-thread" 2377 | version = "0.1.7" 2378 | source = "registry+https://github.com/rust-lang/crates.io-index" 2379 | checksum = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e" 2380 | dependencies = [ 2381 | "futures", 2382 | "tokio-executor", 2383 | ] 2384 | 2385 | [[package]] 2386 | name = "tokio-executor" 2387 | version = "0.1.10" 2388 | source = "registry+https://github.com/rust-lang/crates.io-index" 2389 | checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671" 2390 | dependencies = [ 2391 | "crossbeam-utils", 2392 | "futures", 2393 | ] 2394 | 2395 | [[package]] 2396 | name = "tokio-fs" 2397 | version = "0.1.7" 2398 | source = "registry+https://github.com/rust-lang/crates.io-index" 2399 | checksum = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4" 2400 | dependencies = [ 2401 | "futures", 2402 | "tokio-io", 2403 | "tokio-threadpool", 2404 | ] 2405 | 2406 | [[package]] 2407 | name = "tokio-io" 2408 | version = "0.1.13" 2409 | source = "registry+https://github.com/rust-lang/crates.io-index" 2410 | checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" 2411 | dependencies = [ 2412 | "bytes 0.4.12", 2413 | "futures", 2414 | "log 0.4.8", 2415 | ] 2416 | 2417 | [[package]] 2418 | name = "tokio-reactor" 2419 | version = "0.1.12" 2420 | source = "registry+https://github.com/rust-lang/crates.io-index" 2421 | checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351" 2422 | dependencies = [ 2423 | "crossbeam-utils", 2424 | "futures", 2425 | "lazy_static", 2426 | "log 0.4.8", 2427 | "mio", 2428 | "num_cpus", 2429 | "parking_lot", 2430 | "slab", 2431 | "tokio-executor", 2432 | "tokio-io", 2433 | "tokio-sync", 2434 | ] 2435 | 2436 | [[package]] 2437 | name = "tokio-sync" 2438 | version = "0.1.8" 2439 | source = "registry+https://github.com/rust-lang/crates.io-index" 2440 | checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee" 2441 | dependencies = [ 2442 | "fnv", 2443 | "futures", 2444 | ] 2445 | 2446 | [[package]] 2447 | name = "tokio-tcp" 2448 | version = "0.1.4" 2449 | source = "registry+https://github.com/rust-lang/crates.io-index" 2450 | checksum = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72" 2451 | dependencies = [ 2452 | "bytes 0.4.12", 2453 | "futures", 2454 | "iovec", 2455 | "mio", 2456 | "tokio-io", 2457 | "tokio-reactor", 2458 | ] 2459 | 2460 | [[package]] 2461 | name = "tokio-threadpool" 2462 | version = "0.1.18" 2463 | source = "registry+https://github.com/rust-lang/crates.io-index" 2464 | checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89" 2465 | dependencies = [ 2466 | "crossbeam-deque", 2467 | "crossbeam-queue", 2468 | "crossbeam-utils", 2469 | "futures", 2470 | "lazy_static", 2471 | "log 0.4.8", 2472 | "num_cpus", 2473 | "slab", 2474 | "tokio-executor", 2475 | ] 2476 | 2477 | [[package]] 2478 | name = "tokio-timer" 2479 | version = "0.2.13" 2480 | source = "registry+https://github.com/rust-lang/crates.io-index" 2481 | checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296" 2482 | dependencies = [ 2483 | "crossbeam-utils", 2484 | "futures", 2485 | "slab", 2486 | "tokio-executor", 2487 | ] 2488 | 2489 | [[package]] 2490 | name = "tokio-tls" 2491 | version = "0.2.1" 2492 | source = "registry+https://github.com/rust-lang/crates.io-index" 2493 | checksum = "354b8cd83825b3c20217a9dc174d6a0c67441a2fae5c41bcb1ea6679f6ae0f7c" 2494 | dependencies = [ 2495 | "futures", 2496 | "native-tls", 2497 | "tokio-io", 2498 | ] 2499 | 2500 | [[package]] 2501 | name = "tokio-udp" 2502 | version = "0.1.6" 2503 | source = "registry+https://github.com/rust-lang/crates.io-index" 2504 | checksum = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82" 2505 | dependencies = [ 2506 | "bytes 0.4.12", 2507 | "futures", 2508 | "log 0.4.8", 2509 | "mio", 2510 | "tokio-codec", 2511 | "tokio-io", 2512 | "tokio-reactor", 2513 | ] 2514 | 2515 | [[package]] 2516 | name = "tokio-uds" 2517 | version = "0.2.6" 2518 | source = "registry+https://github.com/rust-lang/crates.io-index" 2519 | checksum = "5076db410d6fdc6523df7595447629099a1fdc47b3d9f896220780fa48faf798" 2520 | dependencies = [ 2521 | "bytes 0.4.12", 2522 | "futures", 2523 | "iovec", 2524 | "libc", 2525 | "log 0.4.8", 2526 | "mio", 2527 | "mio-uds", 2528 | "tokio-codec", 2529 | "tokio-io", 2530 | "tokio-reactor", 2531 | ] 2532 | 2533 | [[package]] 2534 | name = "tokio-util" 2535 | version = "0.3.1" 2536 | source = "registry+https://github.com/rust-lang/crates.io-index" 2537 | checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499" 2538 | dependencies = [ 2539 | "bytes 0.5.4", 2540 | "futures-core", 2541 | "futures-sink", 2542 | "log 0.4.8", 2543 | "pin-project-lite", 2544 | "tokio 0.2.18", 2545 | ] 2546 | 2547 | [[package]] 2548 | name = "toml" 2549 | version = "0.4.10" 2550 | source = "registry+https://github.com/rust-lang/crates.io-index" 2551 | checksum = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f" 2552 | dependencies = [ 2553 | "serde", 2554 | ] 2555 | 2556 | [[package]] 2557 | name = "tower-service" 2558 | version = "0.3.0" 2559 | source = "registry+https://github.com/rust-lang/crates.io-index" 2560 | checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860" 2561 | 2562 | [[package]] 2563 | name = "traitobject" 2564 | version = "0.1.0" 2565 | source = "registry+https://github.com/rust-lang/crates.io-index" 2566 | checksum = "efd1f82c56340fdf16f2a953d7bda4f8fdffba13d93b00844c25572110b26079" 2567 | 2568 | [[package]] 2569 | name = "try-lock" 2570 | version = "0.2.2" 2571 | source = "registry+https://github.com/rust-lang/crates.io-index" 2572 | checksum = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" 2573 | 2574 | [[package]] 2575 | name = "try_from" 2576 | version = "0.3.2" 2577 | source = "registry+https://github.com/rust-lang/crates.io-index" 2578 | checksum = "283d3b89e1368717881a9d51dad843cc435380d8109c9e47d38780a324698d8b" 2579 | dependencies = [ 2580 | "cfg-if", 2581 | ] 2582 | 2583 | [[package]] 2584 | name = "typeable" 2585 | version = "0.1.2" 2586 | source = "registry+https://github.com/rust-lang/crates.io-index" 2587 | checksum = "1410f6f91f21d1612654e7cc69193b0334f909dcf2c790c4826254fbb86f8887" 2588 | 2589 | [[package]] 2590 | name = "typenum" 2591 | version = "1.12.0" 2592 | source = "registry+https://github.com/rust-lang/crates.io-index" 2593 | checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" 2594 | 2595 | [[package]] 2596 | name = "ucd-trie" 2597 | version = "0.1.3" 2598 | source = "registry+https://github.com/rust-lang/crates.io-index" 2599 | checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" 2600 | 2601 | [[package]] 2602 | name = "unicase" 2603 | version = "1.4.2" 2604 | source = "registry+https://github.com/rust-lang/crates.io-index" 2605 | checksum = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33" 2606 | dependencies = [ 2607 | "version_check 0.1.5", 2608 | ] 2609 | 2610 | [[package]] 2611 | name = "unicase" 2612 | version = "2.6.0" 2613 | source = "registry+https://github.com/rust-lang/crates.io-index" 2614 | checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" 2615 | dependencies = [ 2616 | "version_check 0.9.1", 2617 | ] 2618 | 2619 | [[package]] 2620 | name = "unicode-bidi" 2621 | version = "0.3.4" 2622 | source = "registry+https://github.com/rust-lang/crates.io-index" 2623 | checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" 2624 | dependencies = [ 2625 | "matches", 2626 | ] 2627 | 2628 | [[package]] 2629 | name = "unicode-normalization" 2630 | version = "0.1.12" 2631 | source = "registry+https://github.com/rust-lang/crates.io-index" 2632 | checksum = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4" 2633 | dependencies = [ 2634 | "smallvec 1.3.0", 2635 | ] 2636 | 2637 | [[package]] 2638 | name = "unicode-segmentation" 2639 | version = "1.6.0" 2640 | source = "registry+https://github.com/rust-lang/crates.io-index" 2641 | checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0" 2642 | 2643 | [[package]] 2644 | name = "unicode-width" 2645 | version = "0.1.7" 2646 | source = "registry+https://github.com/rust-lang/crates.io-index" 2647 | checksum = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479" 2648 | 2649 | [[package]] 2650 | name = "unicode-xid" 2651 | version = "0.1.0" 2652 | source = "registry+https://github.com/rust-lang/crates.io-index" 2653 | checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" 2654 | 2655 | [[package]] 2656 | name = "unicode-xid" 2657 | version = "0.2.0" 2658 | source = "registry+https://github.com/rust-lang/crates.io-index" 2659 | checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" 2660 | 2661 | [[package]] 2662 | name = "unicode_categories" 2663 | version = "0.1.1" 2664 | source = "registry+https://github.com/rust-lang/crates.io-index" 2665 | checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" 2666 | 2667 | [[package]] 2668 | name = "url" 2669 | version = "1.7.2" 2670 | source = "registry+https://github.com/rust-lang/crates.io-index" 2671 | checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" 2672 | dependencies = [ 2673 | "idna 0.1.5", 2674 | "matches", 2675 | "percent-encoding 1.0.1", 2676 | ] 2677 | 2678 | [[package]] 2679 | name = "url" 2680 | version = "2.1.1" 2681 | source = "registry+https://github.com/rust-lang/crates.io-index" 2682 | checksum = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb" 2683 | dependencies = [ 2684 | "idna 0.2.0", 2685 | "matches", 2686 | "percent-encoding 2.1.0", 2687 | ] 2688 | 2689 | [[package]] 2690 | name = "uuid" 2691 | version = "0.7.4" 2692 | source = "registry+https://github.com/rust-lang/crates.io-index" 2693 | checksum = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a" 2694 | dependencies = [ 2695 | "rand 0.6.5", 2696 | ] 2697 | 2698 | [[package]] 2699 | name = "vcpkg" 2700 | version = "0.2.8" 2701 | source = "registry+https://github.com/rust-lang/crates.io-index" 2702 | checksum = "3fc439f2794e98976c88a2a2dafce96b930fe8010b0a256b3c2199a773933168" 2703 | 2704 | [[package]] 2705 | name = "vec_map" 2706 | version = "0.8.1" 2707 | source = "registry+https://github.com/rust-lang/crates.io-index" 2708 | checksum = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" 2709 | 2710 | [[package]] 2711 | name = "version_check" 2712 | version = "0.1.5" 2713 | source = "registry+https://github.com/rust-lang/crates.io-index" 2714 | checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" 2715 | 2716 | [[package]] 2717 | name = "version_check" 2718 | version = "0.9.1" 2719 | source = "registry+https://github.com/rust-lang/crates.io-index" 2720 | checksum = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce" 2721 | 2722 | [[package]] 2723 | name = "walkdir" 2724 | version = "2.3.1" 2725 | source = "registry+https://github.com/rust-lang/crates.io-index" 2726 | checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d" 2727 | dependencies = [ 2728 | "same-file", 2729 | "winapi 0.3.8", 2730 | "winapi-util", 2731 | ] 2732 | 2733 | [[package]] 2734 | name = "want" 2735 | version = "0.2.0" 2736 | source = "registry+https://github.com/rust-lang/crates.io-index" 2737 | checksum = "b6395efa4784b027708f7451087e647ec73cc74f5d9bc2e418404248d679a230" 2738 | dependencies = [ 2739 | "futures", 2740 | "log 0.4.8", 2741 | "try-lock", 2742 | ] 2743 | 2744 | [[package]] 2745 | name = "want" 2746 | version = "0.3.0" 2747 | source = "registry+https://github.com/rust-lang/crates.io-index" 2748 | checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" 2749 | dependencies = [ 2750 | "log 0.4.8", 2751 | "try-lock", 2752 | ] 2753 | 2754 | [[package]] 2755 | name = "wasi" 2756 | version = "0.9.0+wasi-snapshot-preview1" 2757 | source = "registry+https://github.com/rust-lang/crates.io-index" 2758 | checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" 2759 | 2760 | [[package]] 2761 | name = "websocket" 2762 | version = "0.21.1" 2763 | source = "registry+https://github.com/rust-lang/crates.io-index" 2764 | checksum = "8c9faed2bff8af2ea6b9f8b917d3d00b467583f6781fe3def174a9e33c879703" 2765 | dependencies = [ 2766 | "base64 0.9.3", 2767 | "bitflags 0.9.1", 2768 | "byteorder", 2769 | "bytes 0.4.12", 2770 | "futures", 2771 | "hyper 0.10.16", 2772 | "native-tls", 2773 | "rand 0.5.6", 2774 | "sha1", 2775 | "tokio-core", 2776 | "tokio-io", 2777 | "tokio-tls", 2778 | "unicase 1.4.2", 2779 | "url 1.7.2", 2780 | ] 2781 | 2782 | [[package]] 2783 | name = "winapi" 2784 | version = "0.2.8" 2785 | source = "registry+https://github.com/rust-lang/crates.io-index" 2786 | checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" 2787 | 2788 | [[package]] 2789 | name = "winapi" 2790 | version = "0.3.8" 2791 | source = "registry+https://github.com/rust-lang/crates.io-index" 2792 | checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6" 2793 | dependencies = [ 2794 | "winapi-i686-pc-windows-gnu", 2795 | "winapi-x86_64-pc-windows-gnu", 2796 | ] 2797 | 2798 | [[package]] 2799 | name = "winapi-build" 2800 | version = "0.1.1" 2801 | source = "registry+https://github.com/rust-lang/crates.io-index" 2802 | checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" 2803 | 2804 | [[package]] 2805 | name = "winapi-i686-pc-windows-gnu" 2806 | version = "0.4.0" 2807 | source = "registry+https://github.com/rust-lang/crates.io-index" 2808 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 2809 | 2810 | [[package]] 2811 | name = "winapi-util" 2812 | version = "0.1.4" 2813 | source = "registry+https://github.com/rust-lang/crates.io-index" 2814 | checksum = "fa515c5163a99cc82bab70fd3bfdd36d827be85de63737b40fcef2ce084a436e" 2815 | dependencies = [ 2816 | "winapi 0.3.8", 2817 | ] 2818 | 2819 | [[package]] 2820 | name = "winapi-x86_64-pc-windows-gnu" 2821 | version = "0.4.0" 2822 | source = "registry+https://github.com/rust-lang/crates.io-index" 2823 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 2824 | 2825 | [[package]] 2826 | name = "winreg" 2827 | version = "0.6.2" 2828 | source = "registry+https://github.com/rust-lang/crates.io-index" 2829 | checksum = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9" 2830 | dependencies = [ 2831 | "winapi 0.3.8", 2832 | ] 2833 | 2834 | [[package]] 2835 | name = "ws2_32-sys" 2836 | version = "0.2.1" 2837 | source = "registry+https://github.com/rust-lang/crates.io-index" 2838 | checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" 2839 | dependencies = [ 2840 | "winapi 0.2.8", 2841 | "winapi-build", 2842 | ] 2843 | 2844 | [[package]] 2845 | name = "xattr" 2846 | version = "0.2.2" 2847 | source = "registry+https://github.com/rust-lang/crates.io-index" 2848 | checksum = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c" 2849 | dependencies = [ 2850 | "libc", 2851 | ] 2852 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | 3 | members = [ 4 | "embed-wasm", 5 | "embed-wasm-build", 6 | ] 7 | 8 | exclude = [ 9 | "frontend/wasm", 10 | ] 11 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Inanna Malick 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 | Library designed to allow for embedding static content generated by building rust wasm code in native rust workspaces. This allows for projects with some properties that I think are neat: 2 | 3 | - wasm and native code in the same workspace, sharing common code including types 4 | - embedding wasm build output in native binaries, allowing for easily-distributable apps serving dynamic frontends 5 | - for example, a [process info visualizer](https://github.com/inanna-malick/wasm-svg-process-watcher) that renders process info using SVG and uses onclick handlers to provide for rich interactivity. 6 | 7 | If you want to clone something so you can get started prototyping, here's an [example project](https://github.com/inanna-malick/embed-wasm-example) with a rust webserver (warp) serving a rust frontend (yew). 8 | 9 | NOTE: this crate currently requires rust nightly due to a bug fix for a stable regression - no experimental features are used. 10 | 11 | TODO: 12 | - support wasm build methods other than cargo-web (doesn't seem to be under active development) 13 | - FIXED: use phf instead of lazy_static after https://github.com/rust-lang/rust/issues/70584 is resolved 14 | - mark as non-nightly after the fix to that issue hits stable 15 | -------------------------------------------------------------------------------- /embed-wasm-build/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "embed-wasm-build" 3 | version = "0.1.0-alpha" 4 | authors = ["inanna malick "] 5 | edition = "2018" 6 | description = "embed rust wasm build ouput in native binaries" 7 | license = "MIT" 8 | keywords = ["web", "webasm", "build"] 9 | 10 | [dependencies] 11 | ignore = "0.4.14" 12 | cargo-web = "=0.6.26" 13 | structopt = "0.2" 14 | phf_codegen = "0.8.0" -------------------------------------------------------------------------------- /embed-wasm-build/src/lib.rs: -------------------------------------------------------------------------------- 1 | use cargo_web::{CargoWebOpts, DeployOpts}; 2 | use ignore::Walk; 3 | use std::env; 4 | use std::fs; 5 | use std::io::{BufWriter, Write}; 6 | use std::path::{Path, PathBuf}; 7 | use structopt::StructOpt; 8 | 9 | 10 | /// Compile wasm using 11 | pub fn compile_wasm>(cargo_web_dir: X) { 12 | let profile = std::env::var("PROFILE").expect("expected env var PROFILE for build.rs"); 13 | 14 | let out_dir = env::var("OUT_DIR").unwrap(); 15 | let dest_path = Path::new(&out_dir).join("wasm_blobs_output_dir"); 16 | // TODO: maybe not this? might wipe out resources, requiring extra recompile work? 17 | let _ = fs::remove_dir_all(&dest_path); // may already exist, nuke if that is the case 18 | fs::create_dir(&dest_path).unwrap(); 19 | 20 | println!("dest path: {:?}", &dest_path); 21 | 22 | let current_dir = std::env::current_dir().unwrap(); 23 | env::set_current_dir(current_dir.join(cargo_web_dir)).unwrap(); 24 | 25 | //Build struct in DeployOpts is private so only way to create is this structopt method? 26 | let opts = if profile == "release" { 27 | DeployOpts::from_iter_safe(&[ 28 | "--release", 29 | "--target=wasm32-unknown-unknown", 30 | "--output", 31 | dest_path.to_str().unwrap(), 32 | ]) 33 | } else { 34 | DeployOpts::from_iter_safe(&[ 35 | "--target=wasm32-unknown-unknown", 36 | "--output", 37 | dest_path.to_str().unwrap(), 38 | ]) 39 | } 40 | .expect("expected hardcoded cargo-web args to be valid"); 41 | 42 | cargo_web::run(CargoWebOpts::Deploy(opts)).unwrap(); 43 | 44 | env::set_current_dir(current_dir).unwrap(); 45 | 46 | let f_dest_path = Path::new(&out_dir).join("wasm_blobs.rs"); 47 | let f = fs::File::create(&f_dest_path).unwrap(); 48 | let mut file = BufWriter::new(f); 49 | 50 | let blobs: Vec<(String, PathBuf)> = (0..) 51 | .zip(Walk::new(dest_path.clone())) 52 | .filter_map(|(idx, result)| { 53 | // Each item yielded by the iterator is either a directory entry or an 54 | // error, so either print the path or the error. 55 | match result { 56 | Ok(entry) => { 57 | if entry.metadata().unwrap().is_file() { 58 | Some((format!("ENTRY_{}", idx), entry.into_path())) 59 | } else { 60 | None 61 | } 62 | } 63 | Err(err) => { 64 | eprintln!("error traversing wasm directory: {}", err); 65 | None 66 | } 67 | } 68 | }) 69 | .collect(); 70 | 71 | for (identifier, path) in &blobs { 72 | writeln!( 73 | &mut file, 74 | "static {}: &'static [u8] = include_bytes!(\"{}\");", 75 | identifier, 76 | path.to_str().unwrap() 77 | ) 78 | .unwrap(); 79 | } 80 | 81 | 82 | let mut codegen = phf_codegen::Map::new(); 83 | 84 | let dest_path = dest_path.to_str().unwrap(); 85 | for (identifier, path) in &blobs { 86 | let key = &path.to_str().unwrap()[dest_path.len() + 1..]; 87 | codegen.entry(key, identifier); 88 | } 89 | 90 | writeln!( 91 | &mut file, 92 | "static WASM: ::phf::Map<&'static str, &'static [u8]> =\n{};\n", 93 | codegen.build() 94 | ).unwrap(); 95 | 96 | // register rerun-if-changed hooks for all wasm directory entries not in gitignore 97 | for result in Walk::new("wasm") { 98 | // Each item yielded by the iterator is either a directory entry or an 99 | // error, so either print the path or the error. 100 | match result { 101 | Ok(entry) => { 102 | println!("cargo:rerun-if-changed={}", entry.path().display()); 103 | } 104 | Err(err) => panic!("error traversing wasm directory: {}", err), 105 | } 106 | } 107 | 108 | // panic!("afaik only way to get println output from build.rs is to fail here"); 109 | } 110 | -------------------------------------------------------------------------------- /embed-wasm/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "embed-wasm" 3 | version = "0.1.0-alpha" 4 | authors = ["inanna malick "] 5 | edition = "2018" 6 | description = "embed rust wasm build ouput in native binaries" 7 | license = "MIT" 8 | keywords = ["web", "webasm"] 9 | 10 | [dependencies] 11 | phf = "0.8.0" 12 | headers = "0.3.1" 13 | mime_guess = "2.0" 14 | hyper = "0.13.2" -------------------------------------------------------------------------------- /embed-wasm/src/lib.rs: -------------------------------------------------------------------------------- 1 | use headers::HeaderMapExt; 2 | use hyper::{Body, Response}; 3 | 4 | 5 | #[derive(PartialEq, Eq)] 6 | pub enum IndexHandling { 7 | MapEmptyPathToIndex, 8 | NoIndexHandling, 9 | } 10 | 11 | 12 | /// Wraps a hashmap of static content generated at compile time and provides convenience 13 | /// functions for resolving static content given a path. 14 | pub struct StaticLookup { 15 | pub index_mode: IndexHandling, 16 | pub wasm: &'static phf::Map<&'static str, &'static [u8]>, 17 | } 18 | 19 | impl StaticLookup { 20 | /// Given a path ('/', '/css/tree.css', etc) attempt to construct a 'hyper::Response' 21 | /// using the static hashmap generated at compile time. Infers MIME type from path. 22 | /// 23 | /// path expected as `let x: http::uri::PathAndQuery = ..; x.as_str()`, omiting type to simplify interface 24 | pub fn get(&self, path: &str) -> Option> { 25 | // drop leading '/' from path 26 | let path = &path[1..]; 27 | 28 | let path = if path.len() == 0 && self.index_mode == IndexHandling::MapEmptyPathToIndex { 29 | "index.html" 30 | } else { 31 | path 32 | }; 33 | 34 | match self.wasm.get(path).map(|p| *p) { 35 | None => None, 36 | Some(blob) => { 37 | let body = hyper::Body::from(blob); 38 | let mut resp = hyper::Response::new(body); 39 | 40 | let mime_type = mime_guess::from_path(path).first_or_octet_stream(); 41 | resp.headers_mut() 42 | .typed_insert(headers::ContentType::from(mime_type)); 43 | resp.headers_mut() 44 | .typed_insert(headers::AcceptRanges::bytes()); 45 | resp.headers_mut() 46 | .typed_insert(headers::ContentLength(blob.len() as u64)); 47 | 48 | Some(resp) 49 | } 50 | } 51 | } 52 | } 53 | 54 | /// Imports the generated static wasm blobs from the build output directory as 55 | /// generated by embed_wasm_build::compile_wasm 56 | #[macro_export] 57 | macro_rules! include_wasm { 58 | () => { 59 | include!(concat!(env!("OUT_DIR"), "/wasm_blobs.rs")); 60 | 61 | // FIXME: will fail if user aliases embed_wasm 62 | pub static STATIC_LOOKUP: ::embed_wasm::StaticLookup = 63 | ::embed_wasm::StaticLookup{ 64 | index_mode: ::embed_wasm::IndexHandling::MapEmptyPathToIndex, 65 | wasm: &WASM, 66 | }; 67 | }; 68 | } 69 | --------------------------------------------------------------------------------