├── .env ├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── README.md ├── diesel.toml ├── migrations ├── .gitkeep ├── 00000000000000_diesel_initial_setup │ ├── down.sql │ └── up.sql └── 2019-04-28-190706_create_messages │ ├── down.sql │ └── up.sql └── src ├── actor ├── db.rs ├── mod.rs ├── session.rs └── ws.rs ├── handler.rs ├── main.rs ├── model.rs └── schema.rs /.env: -------------------------------------------------------------------------------- 1 | DATABASE_URL=postgres://postgres:postgres@localhost/chat_app_demo 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | **/*.rs.bk 3 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | [[package]] 4 | name = "actix" 5 | version = "0.7.9" 6 | source = "registry+https://github.com/rust-lang/crates.io-index" 7 | dependencies = [ 8 | "actix_derive 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", 9 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 10 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 11 | "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", 12 | "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 13 | "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", 14 | "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", 15 | "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", 16 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 17 | "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", 18 | "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", 19 | "tokio 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", 20 | "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 21 | "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 22 | "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 23 | "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 24 | "tokio-signal 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", 25 | "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 26 | "tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", 27 | "trust-dns-proto 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", 28 | "trust-dns-resolver 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)", 29 | "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", 30 | ] 31 | 32 | [[package]] 33 | name = "actix-net" 34 | version = "0.2.6" 35 | source = "registry+https://github.com/rust-lang/crates.io-index" 36 | dependencies = [ 37 | "actix 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)", 38 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 39 | "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", 40 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 41 | "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", 42 | "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", 43 | "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", 44 | "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 45 | "tokio 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", 46 | "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 47 | "tokio-current-thread 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 48 | "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 49 | "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 50 | "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 51 | "tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", 52 | "tower-service 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 53 | "trust-dns-resolver 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)", 54 | ] 55 | 56 | [[package]] 57 | name = "actix-web" 58 | version = "0.7.19" 59 | source = "registry+https://github.com/rust-lang/crates.io-index" 60 | dependencies = [ 61 | "actix 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)", 62 | "actix-net 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", 63 | "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", 64 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 65 | "brotli2 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", 66 | "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 67 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 68 | "cookie 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", 69 | "encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", 70 | "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 71 | "flate2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", 72 | "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", 73 | "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", 74 | "h2 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", 75 | "http 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", 76 | "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 77 | "language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 78 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 79 | "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 80 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 81 | "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", 82 | "mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)", 83 | "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", 84 | "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", 85 | "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", 86 | "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", 87 | "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 88 | "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 89 | "regex 1.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 90 | "serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", 91 | "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", 92 | "serde_urlencoded 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", 93 | "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", 94 | "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 95 | "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", 96 | "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", 97 | "tokio 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", 98 | "tokio-current-thread 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 99 | "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 100 | "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 101 | "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 102 | "tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", 103 | "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 104 | "v_htmlescape 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", 105 | "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 106 | ] 107 | 108 | [[package]] 109 | name = "actix_derive" 110 | version = "0.3.2" 111 | source = "registry+https://github.com/rust-lang/crates.io-index" 112 | dependencies = [ 113 | "proc-macro2 0.4.28 (registry+https://github.com/rust-lang/crates.io-index)", 114 | "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", 115 | "syn 0.15.33 (registry+https://github.com/rust-lang/crates.io-index)", 116 | ] 117 | 118 | [[package]] 119 | name = "adler32" 120 | version = "1.0.3" 121 | source = "registry+https://github.com/rust-lang/crates.io-index" 122 | 123 | [[package]] 124 | name = "aho-corasick" 125 | version = "0.7.3" 126 | source = "registry+https://github.com/rust-lang/crates.io-index" 127 | dependencies = [ 128 | "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 129 | ] 130 | 131 | [[package]] 132 | name = "antidote" 133 | version = "1.0.0" 134 | source = "registry+https://github.com/rust-lang/crates.io-index" 135 | 136 | [[package]] 137 | name = "arc-swap" 138 | version = "0.3.11" 139 | source = "registry+https://github.com/rust-lang/crates.io-index" 140 | 141 | [[package]] 142 | name = "arrayvec" 143 | version = "0.4.10" 144 | source = "registry+https://github.com/rust-lang/crates.io-index" 145 | dependencies = [ 146 | "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", 147 | ] 148 | 149 | [[package]] 150 | name = "autocfg" 151 | version = "0.1.2" 152 | source = "registry+https://github.com/rust-lang/crates.io-index" 153 | 154 | [[package]] 155 | name = "backtrace" 156 | version = "0.3.15" 157 | source = "registry+https://github.com/rust-lang/crates.io-index" 158 | dependencies = [ 159 | "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 160 | "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", 161 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 162 | "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", 163 | "rustc-demangle 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", 164 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 165 | ] 166 | 167 | [[package]] 168 | name = "backtrace-sys" 169 | version = "0.1.28" 170 | source = "registry+https://github.com/rust-lang/crates.io-index" 171 | dependencies = [ 172 | "cc 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)", 173 | "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", 174 | ] 175 | 176 | [[package]] 177 | name = "base64" 178 | version = "0.9.3" 179 | source = "registry+https://github.com/rust-lang/crates.io-index" 180 | dependencies = [ 181 | "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 182 | "safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 183 | ] 184 | 185 | [[package]] 186 | name = "base64" 187 | version = "0.10.1" 188 | source = "registry+https://github.com/rust-lang/crates.io-index" 189 | dependencies = [ 190 | "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 191 | ] 192 | 193 | [[package]] 194 | name = "bitflags" 195 | version = "1.0.4" 196 | source = "registry+https://github.com/rust-lang/crates.io-index" 197 | 198 | [[package]] 199 | name = "brotli-sys" 200 | version = "0.3.2" 201 | source = "registry+https://github.com/rust-lang/crates.io-index" 202 | dependencies = [ 203 | "cc 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)", 204 | "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", 205 | ] 206 | 207 | [[package]] 208 | name = "brotli2" 209 | version = "0.3.2" 210 | source = "registry+https://github.com/rust-lang/crates.io-index" 211 | dependencies = [ 212 | "brotli-sys 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", 213 | "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", 214 | ] 215 | 216 | [[package]] 217 | name = "build_const" 218 | version = "0.2.1" 219 | source = "registry+https://github.com/rust-lang/crates.io-index" 220 | 221 | [[package]] 222 | name = "byteorder" 223 | version = "1.3.1" 224 | source = "registry+https://github.com/rust-lang/crates.io-index" 225 | 226 | [[package]] 227 | name = "bytes" 228 | version = "0.4.12" 229 | source = "registry+https://github.com/rust-lang/crates.io-index" 230 | dependencies = [ 231 | "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 232 | "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 233 | ] 234 | 235 | [[package]] 236 | name = "cc" 237 | version = "1.0.35" 238 | source = "registry+https://github.com/rust-lang/crates.io-index" 239 | 240 | [[package]] 241 | name = "cfg-if" 242 | version = "0.1.7" 243 | source = "registry+https://github.com/rust-lang/crates.io-index" 244 | 245 | [[package]] 246 | name = "chat_app" 247 | version = "0.1.0" 248 | dependencies = [ 249 | "actix 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)", 250 | "actix-web 0.7.19 (registry+https://github.com/rust-lang/crates.io-index)", 251 | "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 252 | "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 253 | "dotenv 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", 254 | "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 255 | "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", 256 | "r2d2 0.8.4 (registry+https://github.com/rust-lang/crates.io-index)", 257 | "serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", 258 | "serde_derive 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", 259 | "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", 260 | "uuid 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 261 | ] 262 | 263 | [[package]] 264 | name = "chrono" 265 | version = "0.4.6" 266 | source = "registry+https://github.com/rust-lang/crates.io-index" 267 | dependencies = [ 268 | "num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)", 269 | "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", 270 | "serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", 271 | "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", 272 | ] 273 | 274 | [[package]] 275 | name = "cloudabi" 276 | version = "0.0.3" 277 | source = "registry+https://github.com/rust-lang/crates.io-index" 278 | dependencies = [ 279 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 280 | ] 281 | 282 | [[package]] 283 | name = "cookie" 284 | version = "0.11.0" 285 | source = "registry+https://github.com/rust-lang/crates.io-index" 286 | dependencies = [ 287 | "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", 288 | "ring 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)", 289 | "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", 290 | "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 291 | ] 292 | 293 | [[package]] 294 | name = "crc" 295 | version = "1.8.1" 296 | source = "registry+https://github.com/rust-lang/crates.io-index" 297 | dependencies = [ 298 | "build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 299 | ] 300 | 301 | [[package]] 302 | name = "crc32fast" 303 | version = "1.2.0" 304 | source = "registry+https://github.com/rust-lang/crates.io-index" 305 | dependencies = [ 306 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 307 | ] 308 | 309 | [[package]] 310 | name = "crossbeam-channel" 311 | version = "0.3.8" 312 | source = "registry+https://github.com/rust-lang/crates.io-index" 313 | dependencies = [ 314 | "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 315 | "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", 316 | ] 317 | 318 | [[package]] 319 | name = "crossbeam-deque" 320 | version = "0.7.1" 321 | source = "registry+https://github.com/rust-lang/crates.io-index" 322 | dependencies = [ 323 | "crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", 324 | "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 325 | ] 326 | 327 | [[package]] 328 | name = "crossbeam-epoch" 329 | version = "0.7.1" 330 | source = "registry+https://github.com/rust-lang/crates.io-index" 331 | dependencies = [ 332 | "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", 333 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 334 | "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 335 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 336 | "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 337 | "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 338 | ] 339 | 340 | [[package]] 341 | name = "crossbeam-queue" 342 | version = "0.1.2" 343 | source = "registry+https://github.com/rust-lang/crates.io-index" 344 | dependencies = [ 345 | "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 346 | ] 347 | 348 | [[package]] 349 | name = "crossbeam-utils" 350 | version = "0.6.5" 351 | source = "registry+https://github.com/rust-lang/crates.io-index" 352 | dependencies = [ 353 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 354 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 355 | ] 356 | 357 | [[package]] 358 | name = "diesel" 359 | version = "1.4.2" 360 | source = "registry+https://github.com/rust-lang/crates.io-index" 361 | dependencies = [ 362 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 363 | "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 364 | "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 365 | "diesel_derives 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 366 | "pq-sys 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 367 | "r2d2 0.8.4 (registry+https://github.com/rust-lang/crates.io-index)", 368 | "uuid 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 369 | ] 370 | 371 | [[package]] 372 | name = "diesel_derives" 373 | version = "1.4.0" 374 | source = "registry+https://github.com/rust-lang/crates.io-index" 375 | dependencies = [ 376 | "proc-macro2 0.4.28 (registry+https://github.com/rust-lang/crates.io-index)", 377 | "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", 378 | "syn 0.15.33 (registry+https://github.com/rust-lang/crates.io-index)", 379 | ] 380 | 381 | [[package]] 382 | name = "dotenv" 383 | version = "0.13.0" 384 | source = "registry+https://github.com/rust-lang/crates.io-index" 385 | dependencies = [ 386 | "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 387 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 388 | "regex 1.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 389 | ] 390 | 391 | [[package]] 392 | name = "dtoa" 393 | version = "0.4.3" 394 | source = "registry+https://github.com/rust-lang/crates.io-index" 395 | 396 | [[package]] 397 | name = "encoding" 398 | version = "0.2.33" 399 | source = "registry+https://github.com/rust-lang/crates.io-index" 400 | dependencies = [ 401 | "encoding-index-japanese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)", 402 | "encoding-index-korean 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)", 403 | "encoding-index-simpchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)", 404 | "encoding-index-singlebyte 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)", 405 | "encoding-index-tradchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)", 406 | ] 407 | 408 | [[package]] 409 | name = "encoding-index-japanese" 410 | version = "1.20141219.5" 411 | source = "registry+https://github.com/rust-lang/crates.io-index" 412 | dependencies = [ 413 | "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", 414 | ] 415 | 416 | [[package]] 417 | name = "encoding-index-korean" 418 | version = "1.20141219.5" 419 | source = "registry+https://github.com/rust-lang/crates.io-index" 420 | dependencies = [ 421 | "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", 422 | ] 423 | 424 | [[package]] 425 | name = "encoding-index-simpchinese" 426 | version = "1.20141219.5" 427 | source = "registry+https://github.com/rust-lang/crates.io-index" 428 | dependencies = [ 429 | "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", 430 | ] 431 | 432 | [[package]] 433 | name = "encoding-index-singlebyte" 434 | version = "1.20141219.5" 435 | source = "registry+https://github.com/rust-lang/crates.io-index" 436 | dependencies = [ 437 | "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", 438 | ] 439 | 440 | [[package]] 441 | name = "encoding-index-tradchinese" 442 | version = "1.20141219.5" 443 | source = "registry+https://github.com/rust-lang/crates.io-index" 444 | dependencies = [ 445 | "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", 446 | ] 447 | 448 | [[package]] 449 | name = "encoding_index_tests" 450 | version = "0.1.4" 451 | source = "registry+https://github.com/rust-lang/crates.io-index" 452 | 453 | [[package]] 454 | name = "error-chain" 455 | version = "0.8.1" 456 | source = "registry+https://github.com/rust-lang/crates.io-index" 457 | dependencies = [ 458 | "backtrace 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", 459 | ] 460 | 461 | [[package]] 462 | name = "failure" 463 | version = "0.1.5" 464 | source = "registry+https://github.com/rust-lang/crates.io-index" 465 | dependencies = [ 466 | "backtrace 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", 467 | "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 468 | ] 469 | 470 | [[package]] 471 | name = "failure_derive" 472 | version = "0.1.5" 473 | source = "registry+https://github.com/rust-lang/crates.io-index" 474 | dependencies = [ 475 | "proc-macro2 0.4.28 (registry+https://github.com/rust-lang/crates.io-index)", 476 | "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", 477 | "syn 0.15.33 (registry+https://github.com/rust-lang/crates.io-index)", 478 | "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", 479 | ] 480 | 481 | [[package]] 482 | name = "flate2" 483 | version = "1.0.7" 484 | source = "registry+https://github.com/rust-lang/crates.io-index" 485 | dependencies = [ 486 | "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 487 | "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", 488 | "miniz-sys 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", 489 | "miniz_oxide_c_api 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 490 | ] 491 | 492 | [[package]] 493 | name = "fnv" 494 | version = "1.0.6" 495 | source = "registry+https://github.com/rust-lang/crates.io-index" 496 | 497 | [[package]] 498 | name = "fuchsia-cprng" 499 | version = "0.1.1" 500 | source = "registry+https://github.com/rust-lang/crates.io-index" 501 | 502 | [[package]] 503 | name = "fuchsia-zircon" 504 | version = "0.3.3" 505 | source = "registry+https://github.com/rust-lang/crates.io-index" 506 | dependencies = [ 507 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 508 | "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 509 | ] 510 | 511 | [[package]] 512 | name = "fuchsia-zircon-sys" 513 | version = "0.3.3" 514 | source = "registry+https://github.com/rust-lang/crates.io-index" 515 | 516 | [[package]] 517 | name = "futures" 518 | version = "0.1.26" 519 | source = "registry+https://github.com/rust-lang/crates.io-index" 520 | 521 | [[package]] 522 | name = "futures-cpupool" 523 | version = "0.1.8" 524 | source = "registry+https://github.com/rust-lang/crates.io-index" 525 | dependencies = [ 526 | "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", 527 | "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", 528 | ] 529 | 530 | [[package]] 531 | name = "h2" 532 | version = "0.1.18" 533 | source = "registry+https://github.com/rust-lang/crates.io-index" 534 | dependencies = [ 535 | "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 536 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 537 | "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", 538 | "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", 539 | "http 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", 540 | "indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", 541 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 542 | "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 543 | "string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 544 | "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 545 | ] 546 | 547 | [[package]] 548 | name = "hostname" 549 | version = "0.1.5" 550 | source = "registry+https://github.com/rust-lang/crates.io-index" 551 | dependencies = [ 552 | "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", 553 | "winutil 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 554 | ] 555 | 556 | [[package]] 557 | name = "http" 558 | version = "0.1.17" 559 | source = "registry+https://github.com/rust-lang/crates.io-index" 560 | dependencies = [ 561 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 562 | "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", 563 | "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", 564 | ] 565 | 566 | [[package]] 567 | name = "httparse" 568 | version = "1.3.3" 569 | source = "registry+https://github.com/rust-lang/crates.io-index" 570 | 571 | [[package]] 572 | name = "idna" 573 | version = "0.1.5" 574 | source = "registry+https://github.com/rust-lang/crates.io-index" 575 | dependencies = [ 576 | "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", 577 | "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", 578 | "unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", 579 | ] 580 | 581 | [[package]] 582 | name = "indexmap" 583 | version = "1.0.2" 584 | source = "registry+https://github.com/rust-lang/crates.io-index" 585 | 586 | [[package]] 587 | name = "iovec" 588 | version = "0.1.2" 589 | source = "registry+https://github.com/rust-lang/crates.io-index" 590 | dependencies = [ 591 | "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", 592 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 593 | ] 594 | 595 | [[package]] 596 | name = "ipconfig" 597 | version = "0.1.9" 598 | source = "registry+https://github.com/rust-lang/crates.io-index" 599 | dependencies = [ 600 | "error-chain 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", 601 | "socket2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", 602 | "widestring 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 603 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 604 | "winreg 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", 605 | ] 606 | 607 | [[package]] 608 | name = "itoa" 609 | version = "0.4.3" 610 | source = "registry+https://github.com/rust-lang/crates.io-index" 611 | 612 | [[package]] 613 | name = "kernel32-sys" 614 | version = "0.2.2" 615 | source = "registry+https://github.com/rust-lang/crates.io-index" 616 | dependencies = [ 617 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 618 | "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 619 | ] 620 | 621 | [[package]] 622 | name = "language-tags" 623 | version = "0.2.2" 624 | source = "registry+https://github.com/rust-lang/crates.io-index" 625 | 626 | [[package]] 627 | name = "lazy_static" 628 | version = "1.3.0" 629 | source = "registry+https://github.com/rust-lang/crates.io-index" 630 | 631 | [[package]] 632 | name = "lazycell" 633 | version = "1.2.1" 634 | source = "registry+https://github.com/rust-lang/crates.io-index" 635 | 636 | [[package]] 637 | name = "libc" 638 | version = "0.2.53" 639 | source = "registry+https://github.com/rust-lang/crates.io-index" 640 | 641 | [[package]] 642 | name = "linked-hash-map" 643 | version = "0.5.2" 644 | source = "registry+https://github.com/rust-lang/crates.io-index" 645 | 646 | [[package]] 647 | name = "lock_api" 648 | version = "0.1.5" 649 | source = "registry+https://github.com/rust-lang/crates.io-index" 650 | dependencies = [ 651 | "owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 652 | "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 653 | ] 654 | 655 | [[package]] 656 | name = "log" 657 | version = "0.4.6" 658 | source = "registry+https://github.com/rust-lang/crates.io-index" 659 | dependencies = [ 660 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 661 | ] 662 | 663 | [[package]] 664 | name = "lru-cache" 665 | version = "0.1.2" 666 | source = "registry+https://github.com/rust-lang/crates.io-index" 667 | dependencies = [ 668 | "linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", 669 | ] 670 | 671 | [[package]] 672 | name = "matches" 673 | version = "0.1.8" 674 | source = "registry+https://github.com/rust-lang/crates.io-index" 675 | 676 | [[package]] 677 | name = "memchr" 678 | version = "2.2.0" 679 | source = "registry+https://github.com/rust-lang/crates.io-index" 680 | 681 | [[package]] 682 | name = "memoffset" 683 | version = "0.2.1" 684 | source = "registry+https://github.com/rust-lang/crates.io-index" 685 | 686 | [[package]] 687 | name = "mime" 688 | version = "0.3.13" 689 | source = "registry+https://github.com/rust-lang/crates.io-index" 690 | dependencies = [ 691 | "unicase 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 692 | ] 693 | 694 | [[package]] 695 | name = "mime_guess" 696 | version = "2.0.0-alpha.6" 697 | source = "registry+https://github.com/rust-lang/crates.io-index" 698 | dependencies = [ 699 | "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", 700 | "phf 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", 701 | "phf_codegen 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", 702 | "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 703 | ] 704 | 705 | [[package]] 706 | name = "miniz-sys" 707 | version = "0.1.11" 708 | source = "registry+https://github.com/rust-lang/crates.io-index" 709 | dependencies = [ 710 | "cc 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)", 711 | "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", 712 | ] 713 | 714 | [[package]] 715 | name = "miniz_oxide" 716 | version = "0.2.1" 717 | source = "registry+https://github.com/rust-lang/crates.io-index" 718 | dependencies = [ 719 | "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 720 | ] 721 | 722 | [[package]] 723 | name = "miniz_oxide_c_api" 724 | version = "0.2.1" 725 | source = "registry+https://github.com/rust-lang/crates.io-index" 726 | dependencies = [ 727 | "cc 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)", 728 | "crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)", 729 | "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", 730 | "miniz_oxide 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 731 | ] 732 | 733 | [[package]] 734 | name = "mio" 735 | version = "0.6.16" 736 | source = "registry+https://github.com/rust-lang/crates.io-index" 737 | dependencies = [ 738 | "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 739 | "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 740 | "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 741 | "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 742 | "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 743 | "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", 744 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 745 | "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 746 | "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", 747 | "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 748 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 749 | ] 750 | 751 | [[package]] 752 | name = "mio-uds" 753 | version = "0.6.7" 754 | source = "registry+https://github.com/rust-lang/crates.io-index" 755 | dependencies = [ 756 | "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 757 | "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", 758 | "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", 759 | ] 760 | 761 | [[package]] 762 | name = "miow" 763 | version = "0.2.1" 764 | source = "registry+https://github.com/rust-lang/crates.io-index" 765 | dependencies = [ 766 | "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 767 | "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", 768 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 769 | "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 770 | ] 771 | 772 | [[package]] 773 | name = "net2" 774 | version = "0.2.33" 775 | source = "registry+https://github.com/rust-lang/crates.io-index" 776 | dependencies = [ 777 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 778 | "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", 779 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 780 | ] 781 | 782 | [[package]] 783 | name = "nodrop" 784 | version = "0.1.13" 785 | source = "registry+https://github.com/rust-lang/crates.io-index" 786 | 787 | [[package]] 788 | name = "nom" 789 | version = "4.2.3" 790 | source = "registry+https://github.com/rust-lang/crates.io-index" 791 | dependencies = [ 792 | "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 793 | "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 794 | ] 795 | 796 | [[package]] 797 | name = "num-integer" 798 | version = "0.1.39" 799 | source = "registry+https://github.com/rust-lang/crates.io-index" 800 | dependencies = [ 801 | "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", 802 | ] 803 | 804 | [[package]] 805 | name = "num-traits" 806 | version = "0.2.6" 807 | source = "registry+https://github.com/rust-lang/crates.io-index" 808 | 809 | [[package]] 810 | name = "num_cpus" 811 | version = "1.10.0" 812 | source = "registry+https://github.com/rust-lang/crates.io-index" 813 | dependencies = [ 814 | "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", 815 | ] 816 | 817 | [[package]] 818 | name = "owning_ref" 819 | version = "0.4.0" 820 | source = "registry+https://github.com/rust-lang/crates.io-index" 821 | dependencies = [ 822 | "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 823 | ] 824 | 825 | [[package]] 826 | name = "parking_lot" 827 | version = "0.7.1" 828 | source = "registry+https://github.com/rust-lang/crates.io-index" 829 | dependencies = [ 830 | "lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 831 | "parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 832 | ] 833 | 834 | [[package]] 835 | name = "parking_lot_core" 836 | version = "0.4.0" 837 | source = "registry+https://github.com/rust-lang/crates.io-index" 838 | dependencies = [ 839 | "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", 840 | "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 841 | "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 842 | "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", 843 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 844 | ] 845 | 846 | [[package]] 847 | name = "percent-encoding" 848 | version = "1.0.1" 849 | source = "registry+https://github.com/rust-lang/crates.io-index" 850 | 851 | [[package]] 852 | name = "phf" 853 | version = "0.7.24" 854 | source = "registry+https://github.com/rust-lang/crates.io-index" 855 | dependencies = [ 856 | "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", 857 | ] 858 | 859 | [[package]] 860 | name = "phf_codegen" 861 | version = "0.7.24" 862 | source = "registry+https://github.com/rust-lang/crates.io-index" 863 | dependencies = [ 864 | "phf_generator 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", 865 | "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", 866 | ] 867 | 868 | [[package]] 869 | name = "phf_generator" 870 | version = "0.7.24" 871 | source = "registry+https://github.com/rust-lang/crates.io-index" 872 | dependencies = [ 873 | "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", 874 | "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 875 | ] 876 | 877 | [[package]] 878 | name = "phf_shared" 879 | version = "0.7.24" 880 | source = "registry+https://github.com/rust-lang/crates.io-index" 881 | dependencies = [ 882 | "siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 883 | "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 884 | ] 885 | 886 | [[package]] 887 | name = "pq-sys" 888 | version = "0.4.6" 889 | source = "registry+https://github.com/rust-lang/crates.io-index" 890 | dependencies = [ 891 | "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", 892 | ] 893 | 894 | [[package]] 895 | name = "proc-macro2" 896 | version = "0.4.28" 897 | source = "registry+https://github.com/rust-lang/crates.io-index" 898 | dependencies = [ 899 | "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 900 | ] 901 | 902 | [[package]] 903 | name = "quick-error" 904 | version = "1.2.2" 905 | source = "registry+https://github.com/rust-lang/crates.io-index" 906 | 907 | [[package]] 908 | name = "quote" 909 | version = "0.6.12" 910 | source = "registry+https://github.com/rust-lang/crates.io-index" 911 | dependencies = [ 912 | "proc-macro2 0.4.28 (registry+https://github.com/rust-lang/crates.io-index)", 913 | ] 914 | 915 | [[package]] 916 | name = "r2d2" 917 | version = "0.8.4" 918 | source = "registry+https://github.com/rust-lang/crates.io-index" 919 | dependencies = [ 920 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 921 | "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", 922 | "scheduled-thread-pool 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 923 | ] 924 | 925 | [[package]] 926 | name = "rand" 927 | version = "0.4.6" 928 | source = "registry+https://github.com/rust-lang/crates.io-index" 929 | dependencies = [ 930 | "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 931 | "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", 932 | "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 933 | "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 934 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 935 | ] 936 | 937 | [[package]] 938 | name = "rand" 939 | version = "0.5.6" 940 | source = "registry+https://github.com/rust-lang/crates.io-index" 941 | dependencies = [ 942 | "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 943 | "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 944 | "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", 945 | "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 946 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 947 | ] 948 | 949 | [[package]] 950 | name = "rand" 951 | version = "0.6.5" 952 | source = "registry+https://github.com/rust-lang/crates.io-index" 953 | dependencies = [ 954 | "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 955 | "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", 956 | "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 957 | "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 958 | "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 959 | "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 960 | "rand_jitter 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 961 | "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 962 | "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 963 | "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 964 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 965 | ] 966 | 967 | [[package]] 968 | name = "rand_chacha" 969 | version = "0.1.1" 970 | source = "registry+https://github.com/rust-lang/crates.io-index" 971 | dependencies = [ 972 | "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 973 | "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 974 | ] 975 | 976 | [[package]] 977 | name = "rand_core" 978 | version = "0.3.1" 979 | source = "registry+https://github.com/rust-lang/crates.io-index" 980 | dependencies = [ 981 | "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 982 | ] 983 | 984 | [[package]] 985 | name = "rand_core" 986 | version = "0.4.0" 987 | source = "registry+https://github.com/rust-lang/crates.io-index" 988 | 989 | [[package]] 990 | name = "rand_hc" 991 | version = "0.1.0" 992 | source = "registry+https://github.com/rust-lang/crates.io-index" 993 | dependencies = [ 994 | "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 995 | ] 996 | 997 | [[package]] 998 | name = "rand_isaac" 999 | version = "0.1.1" 1000 | source = "registry+https://github.com/rust-lang/crates.io-index" 1001 | dependencies = [ 1002 | "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 1003 | ] 1004 | 1005 | [[package]] 1006 | name = "rand_jitter" 1007 | version = "0.1.3" 1008 | source = "registry+https://github.com/rust-lang/crates.io-index" 1009 | dependencies = [ 1010 | "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", 1011 | "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 1012 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 1013 | ] 1014 | 1015 | [[package]] 1016 | name = "rand_os" 1017 | version = "0.1.3" 1018 | source = "registry+https://github.com/rust-lang/crates.io-index" 1019 | dependencies = [ 1020 | "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 1021 | "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 1022 | "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", 1023 | "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 1024 | "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 1025 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 1026 | ] 1027 | 1028 | [[package]] 1029 | name = "rand_pcg" 1030 | version = "0.1.2" 1031 | source = "registry+https://github.com/rust-lang/crates.io-index" 1032 | dependencies = [ 1033 | "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 1034 | "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 1035 | ] 1036 | 1037 | [[package]] 1038 | name = "rand_xorshift" 1039 | version = "0.1.1" 1040 | source = "registry+https://github.com/rust-lang/crates.io-index" 1041 | dependencies = [ 1042 | "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 1043 | ] 1044 | 1045 | [[package]] 1046 | name = "rdrand" 1047 | version = "0.4.0" 1048 | source = "registry+https://github.com/rust-lang/crates.io-index" 1049 | dependencies = [ 1050 | "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 1051 | ] 1052 | 1053 | [[package]] 1054 | name = "redox_syscall" 1055 | version = "0.1.54" 1056 | source = "registry+https://github.com/rust-lang/crates.io-index" 1057 | 1058 | [[package]] 1059 | name = "regex" 1060 | version = "1.1.6" 1061 | source = "registry+https://github.com/rust-lang/crates.io-index" 1062 | dependencies = [ 1063 | "aho-corasick 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", 1064 | "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 1065 | "regex-syntax 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", 1066 | "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 1067 | "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", 1068 | ] 1069 | 1070 | [[package]] 1071 | name = "regex-syntax" 1072 | version = "0.6.6" 1073 | source = "registry+https://github.com/rust-lang/crates.io-index" 1074 | dependencies = [ 1075 | "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 1076 | ] 1077 | 1078 | [[package]] 1079 | name = "resolv-conf" 1080 | version = "0.6.2" 1081 | source = "registry+https://github.com/rust-lang/crates.io-index" 1082 | dependencies = [ 1083 | "hostname 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1084 | "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 1085 | ] 1086 | 1087 | [[package]] 1088 | name = "ring" 1089 | version = "0.13.5" 1090 | source = "registry+https://github.com/rust-lang/crates.io-index" 1091 | dependencies = [ 1092 | "cc 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)", 1093 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 1094 | "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", 1095 | "untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", 1096 | ] 1097 | 1098 | [[package]] 1099 | name = "rustc-demangle" 1100 | version = "0.1.14" 1101 | source = "registry+https://github.com/rust-lang/crates.io-index" 1102 | 1103 | [[package]] 1104 | name = "rustc_version" 1105 | version = "0.2.3" 1106 | source = "registry+https://github.com/rust-lang/crates.io-index" 1107 | dependencies = [ 1108 | "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", 1109 | ] 1110 | 1111 | [[package]] 1112 | name = "ryu" 1113 | version = "0.2.7" 1114 | source = "registry+https://github.com/rust-lang/crates.io-index" 1115 | 1116 | [[package]] 1117 | name = "safemem" 1118 | version = "0.3.0" 1119 | source = "registry+https://github.com/rust-lang/crates.io-index" 1120 | 1121 | [[package]] 1122 | name = "scheduled-thread-pool" 1123 | version = "0.2.0" 1124 | source = "registry+https://github.com/rust-lang/crates.io-index" 1125 | dependencies = [ 1126 | "antidote 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", 1127 | ] 1128 | 1129 | [[package]] 1130 | name = "scopeguard" 1131 | version = "0.3.3" 1132 | source = "registry+https://github.com/rust-lang/crates.io-index" 1133 | 1134 | [[package]] 1135 | name = "semver" 1136 | version = "0.9.0" 1137 | source = "registry+https://github.com/rust-lang/crates.io-index" 1138 | dependencies = [ 1139 | "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", 1140 | ] 1141 | 1142 | [[package]] 1143 | name = "semver-parser" 1144 | version = "0.7.0" 1145 | source = "registry+https://github.com/rust-lang/crates.io-index" 1146 | 1147 | [[package]] 1148 | name = "serde" 1149 | version = "1.0.90" 1150 | source = "registry+https://github.com/rust-lang/crates.io-index" 1151 | 1152 | [[package]] 1153 | name = "serde_derive" 1154 | version = "1.0.90" 1155 | source = "registry+https://github.com/rust-lang/crates.io-index" 1156 | dependencies = [ 1157 | "proc-macro2 0.4.28 (registry+https://github.com/rust-lang/crates.io-index)", 1158 | "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", 1159 | "syn 0.15.33 (registry+https://github.com/rust-lang/crates.io-index)", 1160 | ] 1161 | 1162 | [[package]] 1163 | name = "serde_json" 1164 | version = "1.0.39" 1165 | source = "registry+https://github.com/rust-lang/crates.io-index" 1166 | dependencies = [ 1167 | "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", 1168 | "ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", 1169 | "serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", 1170 | ] 1171 | 1172 | [[package]] 1173 | name = "serde_urlencoded" 1174 | version = "0.5.5" 1175 | source = "registry+https://github.com/rust-lang/crates.io-index" 1176 | dependencies = [ 1177 | "dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", 1178 | "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", 1179 | "serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", 1180 | "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 1181 | ] 1182 | 1183 | [[package]] 1184 | name = "sha1" 1185 | version = "0.6.0" 1186 | source = "registry+https://github.com/rust-lang/crates.io-index" 1187 | 1188 | [[package]] 1189 | name = "signal-hook" 1190 | version = "0.1.8" 1191 | source = "registry+https://github.com/rust-lang/crates.io-index" 1192 | dependencies = [ 1193 | "arc-swap 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)", 1194 | "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", 1195 | ] 1196 | 1197 | [[package]] 1198 | name = "siphasher" 1199 | version = "0.2.3" 1200 | source = "registry+https://github.com/rust-lang/crates.io-index" 1201 | 1202 | [[package]] 1203 | name = "slab" 1204 | version = "0.4.2" 1205 | source = "registry+https://github.com/rust-lang/crates.io-index" 1206 | 1207 | [[package]] 1208 | name = "smallvec" 1209 | version = "0.6.9" 1210 | source = "registry+https://github.com/rust-lang/crates.io-index" 1211 | 1212 | [[package]] 1213 | name = "socket2" 1214 | version = "0.3.8" 1215 | source = "registry+https://github.com/rust-lang/crates.io-index" 1216 | dependencies = [ 1217 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1218 | "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", 1219 | "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)", 1220 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 1221 | ] 1222 | 1223 | [[package]] 1224 | name = "stable_deref_trait" 1225 | version = "1.1.1" 1226 | source = "registry+https://github.com/rust-lang/crates.io-index" 1227 | 1228 | [[package]] 1229 | name = "string" 1230 | version = "0.1.3" 1231 | source = "registry+https://github.com/rust-lang/crates.io-index" 1232 | 1233 | [[package]] 1234 | name = "syn" 1235 | version = "0.15.33" 1236 | source = "registry+https://github.com/rust-lang/crates.io-index" 1237 | dependencies = [ 1238 | "proc-macro2 0.4.28 (registry+https://github.com/rust-lang/crates.io-index)", 1239 | "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", 1240 | "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1241 | ] 1242 | 1243 | [[package]] 1244 | name = "synstructure" 1245 | version = "0.10.1" 1246 | source = "registry+https://github.com/rust-lang/crates.io-index" 1247 | dependencies = [ 1248 | "proc-macro2 0.4.28 (registry+https://github.com/rust-lang/crates.io-index)", 1249 | "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", 1250 | "syn 0.15.33 (registry+https://github.com/rust-lang/crates.io-index)", 1251 | "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1252 | ] 1253 | 1254 | [[package]] 1255 | name = "thread_local" 1256 | version = "0.3.6" 1257 | source = "registry+https://github.com/rust-lang/crates.io-index" 1258 | dependencies = [ 1259 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 1260 | ] 1261 | 1262 | [[package]] 1263 | name = "time" 1264 | version = "0.1.42" 1265 | source = "registry+https://github.com/rust-lang/crates.io-index" 1266 | dependencies = [ 1267 | "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", 1268 | "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)", 1269 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 1270 | ] 1271 | 1272 | [[package]] 1273 | name = "tokio" 1274 | version = "0.1.19" 1275 | source = "registry+https://github.com/rust-lang/crates.io-index" 1276 | dependencies = [ 1277 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 1278 | "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", 1279 | "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", 1280 | "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", 1281 | "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 1282 | "tokio-current-thread 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 1283 | "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1284 | "tokio-fs 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 1285 | "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 1286 | "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 1287 | "tokio-sync 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1288 | "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 1289 | "tokio-threadpool 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", 1290 | "tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", 1291 | "tokio-trace-core 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1292 | "tokio-udp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 1293 | "tokio-uds 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", 1294 | ] 1295 | 1296 | [[package]] 1297 | name = "tokio-codec" 1298 | version = "0.1.1" 1299 | source = "registry+https://github.com/rust-lang/crates.io-index" 1300 | dependencies = [ 1301 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 1302 | "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", 1303 | "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 1304 | ] 1305 | 1306 | [[package]] 1307 | name = "tokio-current-thread" 1308 | version = "0.1.6" 1309 | source = "registry+https://github.com/rust-lang/crates.io-index" 1310 | dependencies = [ 1311 | "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", 1312 | "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1313 | ] 1314 | 1315 | [[package]] 1316 | name = "tokio-executor" 1317 | version = "0.1.7" 1318 | source = "registry+https://github.com/rust-lang/crates.io-index" 1319 | dependencies = [ 1320 | "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 1321 | "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", 1322 | ] 1323 | 1324 | [[package]] 1325 | name = "tokio-fs" 1326 | version = "0.1.6" 1327 | source = "registry+https://github.com/rust-lang/crates.io-index" 1328 | dependencies = [ 1329 | "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", 1330 | "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 1331 | "tokio-threadpool 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", 1332 | ] 1333 | 1334 | [[package]] 1335 | name = "tokio-io" 1336 | version = "0.1.12" 1337 | source = "registry+https://github.com/rust-lang/crates.io-index" 1338 | dependencies = [ 1339 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 1340 | "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", 1341 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1342 | ] 1343 | 1344 | [[package]] 1345 | name = "tokio-reactor" 1346 | version = "0.1.9" 1347 | source = "registry+https://github.com/rust-lang/crates.io-index" 1348 | dependencies = [ 1349 | "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 1350 | "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", 1351 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 1352 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1353 | "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", 1354 | "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", 1355 | "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", 1356 | "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 1357 | "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1358 | "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 1359 | "tokio-sync 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1360 | ] 1361 | 1362 | [[package]] 1363 | name = "tokio-signal" 1364 | version = "0.2.7" 1365 | source = "registry+https://github.com/rust-lang/crates.io-index" 1366 | dependencies = [ 1367 | "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", 1368 | "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", 1369 | "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", 1370 | "mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", 1371 | "signal-hook 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", 1372 | "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1373 | "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 1374 | "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 1375 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 1376 | ] 1377 | 1378 | [[package]] 1379 | name = "tokio-sync" 1380 | version = "0.1.5" 1381 | source = "registry+https://github.com/rust-lang/crates.io-index" 1382 | dependencies = [ 1383 | "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", 1384 | "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", 1385 | ] 1386 | 1387 | [[package]] 1388 | name = "tokio-tcp" 1389 | version = "0.1.3" 1390 | source = "registry+https://github.com/rust-lang/crates.io-index" 1391 | dependencies = [ 1392 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 1393 | "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", 1394 | "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 1395 | "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", 1396 | "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 1397 | "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 1398 | ] 1399 | 1400 | [[package]] 1401 | name = "tokio-threadpool" 1402 | version = "0.1.14" 1403 | source = "registry+https://github.com/rust-lang/crates.io-index" 1404 | dependencies = [ 1405 | "crossbeam-deque 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", 1406 | "crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 1407 | "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 1408 | "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", 1409 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1410 | "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", 1411 | "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 1412 | "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 1413 | "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1414 | ] 1415 | 1416 | [[package]] 1417 | name = "tokio-timer" 1418 | version = "0.2.10" 1419 | source = "registry+https://github.com/rust-lang/crates.io-index" 1420 | dependencies = [ 1421 | "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 1422 | "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", 1423 | "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 1424 | "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1425 | ] 1426 | 1427 | [[package]] 1428 | name = "tokio-trace-core" 1429 | version = "0.1.0" 1430 | source = "registry+https://github.com/rust-lang/crates.io-index" 1431 | dependencies = [ 1432 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 1433 | ] 1434 | 1435 | [[package]] 1436 | name = "tokio-udp" 1437 | version = "0.1.3" 1438 | source = "registry+https://github.com/rust-lang/crates.io-index" 1439 | dependencies = [ 1440 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 1441 | "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", 1442 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1443 | "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", 1444 | "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 1445 | "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 1446 | "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 1447 | ] 1448 | 1449 | [[package]] 1450 | name = "tokio-uds" 1451 | version = "0.2.5" 1452 | source = "registry+https://github.com/rust-lang/crates.io-index" 1453 | dependencies = [ 1454 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 1455 | "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", 1456 | "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 1457 | "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", 1458 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1459 | "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", 1460 | "mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", 1461 | "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 1462 | "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 1463 | "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 1464 | ] 1465 | 1466 | [[package]] 1467 | name = "tower-service" 1468 | version = "0.1.0" 1469 | source = "registry+https://github.com/rust-lang/crates.io-index" 1470 | dependencies = [ 1471 | "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", 1472 | ] 1473 | 1474 | [[package]] 1475 | name = "trust-dns-proto" 1476 | version = "0.5.0" 1477 | source = "registry+https://github.com/rust-lang/crates.io-index" 1478 | dependencies = [ 1479 | "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 1480 | "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1481 | "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", 1482 | "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1483 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 1484 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1485 | "rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", 1486 | "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", 1487 | "socket2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", 1488 | "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1489 | "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 1490 | "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 1491 | "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 1492 | "tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", 1493 | "tokio-udp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 1494 | "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 1495 | ] 1496 | 1497 | [[package]] 1498 | name = "trust-dns-proto" 1499 | version = "0.6.3" 1500 | source = "registry+https://github.com/rust-lang/crates.io-index" 1501 | dependencies = [ 1502 | "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 1503 | "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1504 | "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", 1505 | "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1506 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 1507 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1508 | "rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", 1509 | "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", 1510 | "socket2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", 1511 | "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1512 | "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 1513 | "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 1514 | "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 1515 | "tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", 1516 | "tokio-udp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 1517 | "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 1518 | ] 1519 | 1520 | [[package]] 1521 | name = "trust-dns-resolver" 1522 | version = "0.10.3" 1523 | source = "registry+https://github.com/rust-lang/crates.io-index" 1524 | dependencies = [ 1525 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1526 | "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1527 | "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", 1528 | "ipconfig 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 1529 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 1530 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1531 | "lru-cache 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 1532 | "resolv-conf 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", 1533 | "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", 1534 | "tokio 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", 1535 | "trust-dns-proto 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", 1536 | ] 1537 | 1538 | [[package]] 1539 | name = "ucd-util" 1540 | version = "0.1.3" 1541 | source = "registry+https://github.com/rust-lang/crates.io-index" 1542 | 1543 | [[package]] 1544 | name = "unicase" 1545 | version = "1.4.2" 1546 | source = "registry+https://github.com/rust-lang/crates.io-index" 1547 | dependencies = [ 1548 | "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1549 | ] 1550 | 1551 | [[package]] 1552 | name = "unicase" 1553 | version = "2.3.0" 1554 | source = "registry+https://github.com/rust-lang/crates.io-index" 1555 | dependencies = [ 1556 | "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1557 | ] 1558 | 1559 | [[package]] 1560 | name = "unicode-bidi" 1561 | version = "0.3.4" 1562 | source = "registry+https://github.com/rust-lang/crates.io-index" 1563 | dependencies = [ 1564 | "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", 1565 | ] 1566 | 1567 | [[package]] 1568 | name = "unicode-normalization" 1569 | version = "0.1.8" 1570 | source = "registry+https://github.com/rust-lang/crates.io-index" 1571 | dependencies = [ 1572 | "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", 1573 | ] 1574 | 1575 | [[package]] 1576 | name = "unicode-xid" 1577 | version = "0.1.0" 1578 | source = "registry+https://github.com/rust-lang/crates.io-index" 1579 | 1580 | [[package]] 1581 | name = "untrusted" 1582 | version = "0.6.2" 1583 | source = "registry+https://github.com/rust-lang/crates.io-index" 1584 | 1585 | [[package]] 1586 | name = "url" 1587 | version = "1.7.2" 1588 | source = "registry+https://github.com/rust-lang/crates.io-index" 1589 | dependencies = [ 1590 | "encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", 1591 | "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1592 | "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", 1593 | "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 1594 | ] 1595 | 1596 | [[package]] 1597 | name = "utf8-ranges" 1598 | version = "1.0.2" 1599 | source = "registry+https://github.com/rust-lang/crates.io-index" 1600 | 1601 | [[package]] 1602 | name = "uuid" 1603 | version = "0.6.5" 1604 | source = "registry+https://github.com/rust-lang/crates.io-index" 1605 | dependencies = [ 1606 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1607 | "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1608 | "serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", 1609 | ] 1610 | 1611 | [[package]] 1612 | name = "uuid" 1613 | version = "0.7.4" 1614 | source = "registry+https://github.com/rust-lang/crates.io-index" 1615 | dependencies = [ 1616 | "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 1617 | ] 1618 | 1619 | [[package]] 1620 | name = "v_escape" 1621 | version = "0.7.2" 1622 | source = "registry+https://github.com/rust-lang/crates.io-index" 1623 | dependencies = [ 1624 | "v_escape_derive 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", 1625 | "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1626 | ] 1627 | 1628 | [[package]] 1629 | name = "v_escape_derive" 1630 | version = "0.5.3" 1631 | source = "registry+https://github.com/rust-lang/crates.io-index" 1632 | dependencies = [ 1633 | "nom 4.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 1634 | "proc-macro2 0.4.28 (registry+https://github.com/rust-lang/crates.io-index)", 1635 | "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", 1636 | "syn 0.15.33 (registry+https://github.com/rust-lang/crates.io-index)", 1637 | ] 1638 | 1639 | [[package]] 1640 | name = "v_htmlescape" 1641 | version = "0.4.3" 1642 | source = "registry+https://github.com/rust-lang/crates.io-index" 1643 | dependencies = [ 1644 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1645 | "v_escape 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 1646 | ] 1647 | 1648 | [[package]] 1649 | name = "vcpkg" 1650 | version = "0.2.6" 1651 | source = "registry+https://github.com/rust-lang/crates.io-index" 1652 | 1653 | [[package]] 1654 | name = "version_check" 1655 | version = "0.1.5" 1656 | source = "registry+https://github.com/rust-lang/crates.io-index" 1657 | 1658 | [[package]] 1659 | name = "widestring" 1660 | version = "0.2.2" 1661 | source = "registry+https://github.com/rust-lang/crates.io-index" 1662 | 1663 | [[package]] 1664 | name = "winapi" 1665 | version = "0.2.8" 1666 | source = "registry+https://github.com/rust-lang/crates.io-index" 1667 | 1668 | [[package]] 1669 | name = "winapi" 1670 | version = "0.3.7" 1671 | source = "registry+https://github.com/rust-lang/crates.io-index" 1672 | dependencies = [ 1673 | "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 1674 | "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 1675 | ] 1676 | 1677 | [[package]] 1678 | name = "winapi-build" 1679 | version = "0.1.1" 1680 | source = "registry+https://github.com/rust-lang/crates.io-index" 1681 | 1682 | [[package]] 1683 | name = "winapi-i686-pc-windows-gnu" 1684 | version = "0.4.0" 1685 | source = "registry+https://github.com/rust-lang/crates.io-index" 1686 | 1687 | [[package]] 1688 | name = "winapi-x86_64-pc-windows-gnu" 1689 | version = "0.4.0" 1690 | source = "registry+https://github.com/rust-lang/crates.io-index" 1691 | 1692 | [[package]] 1693 | name = "winreg" 1694 | version = "0.5.1" 1695 | source = "registry+https://github.com/rust-lang/crates.io-index" 1696 | dependencies = [ 1697 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 1698 | ] 1699 | 1700 | [[package]] 1701 | name = "winutil" 1702 | version = "0.1.1" 1703 | source = "registry+https://github.com/rust-lang/crates.io-index" 1704 | dependencies = [ 1705 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 1706 | ] 1707 | 1708 | [[package]] 1709 | name = "ws2_32-sys" 1710 | version = "0.2.1" 1711 | source = "registry+https://github.com/rust-lang/crates.io-index" 1712 | dependencies = [ 1713 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 1714 | "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 1715 | ] 1716 | 1717 | [metadata] 1718 | "checksum actix 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)" = "6c616db5fa4b0c40702fb75201c2af7f8aa8f3a2e2c1dda3b0655772aa949666" 1719 | "checksum actix-net 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "8bebfbe6629e0131730746718c9e032b58f02c6ce06ed7c982b9fef6c8545acd" 1720 | "checksum actix-web 0.7.19 (registry+https://github.com/rust-lang/crates.io-index)" = "b0ac60f86c65a50b140139f499f4f7c6e49e4b5d88fbfba08e4e3975991f7bf4" 1721 | "checksum actix_derive 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4300e9431455322ae393d43a2ba1ef96b8080573c0fc23b196219efedfb6ba69" 1722 | "checksum adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c" 1723 | "checksum aho-corasick 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e6f484ae0c99fec2e858eb6134949117399f222608d84cadb3f58c1f97c2364c" 1724 | "checksum antidote 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "34fde25430d87a9388dadbe6e34d7f72a462c8b43ac8d309b42b0a8505d7e2a5" 1725 | "checksum arc-swap 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)" = "bc4662175ead9cd84451d5c35070517777949a2ed84551764129cedb88384841" 1726 | "checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71" 1727 | "checksum autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a6d640bee2da49f60a4068a7fae53acde8982514ab7bae8b8cea9e88cbcfd799" 1728 | "checksum backtrace 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "f106c02a3604afcdc0df5d36cc47b44b55917dbaf3d808f71c163a0ddba64637" 1729 | "checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6" 1730 | "checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" 1731 | "checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" 1732 | "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" 1733 | "checksum brotli-sys 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4445dea95f4c2b41cde57cc9fee236ae4dbae88d8fcbdb4750fc1bb5d86aaecd" 1734 | "checksum brotli2 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0cb036c3eade309815c15ddbacec5b22c4d1f3983a774ab2eac2e3e9ea85568e" 1735 | "checksum build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39" 1736 | "checksum byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a019b10a2a7cdeb292db131fc8113e57ea2a908f6e7894b0c3c671893b65dbeb" 1737 | "checksum bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" 1738 | "checksum cc 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)" = "5e5f3fee5eeb60324c2781f1e41286bdee933850fff9b3c672587fed5ec58c83" 1739 | "checksum cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "11d43355396e872eefb45ce6342e4374ed7bc2b3a502d1b28e36d6e23c05d1f4" 1740 | "checksum chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878" 1741 | "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" 1742 | "checksum cookie 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1465f8134efa296b4c19db34d909637cb2bf0f7aaf21299e23e18fa29ac557cf" 1743 | "checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb" 1744 | "checksum crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1" 1745 | "checksum crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "0f0ed1a4de2235cabda8558ff5840bffb97fcb64c97827f354a451307df5f72b" 1746 | "checksum crossbeam-deque 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b18cd2e169ad86297e6bc0ad9aa679aee9daa4f19e8163860faf7c164e4f5a71" 1747 | "checksum crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "04c9e3102cc2d69cd681412141b390abd55a362afc1540965dad0ad4d34280b4" 1748 | "checksum crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b" 1749 | "checksum crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f8306fcef4a7b563b76b7dd949ca48f52bc1141aa067d2ea09565f3e2652aa5c" 1750 | "checksum diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8d24935ba50c4a8dc375a0fd1f8a2ba6bdbdc4125713126a74b965d6a01a06d7" 1751 | "checksum diesel_derives 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "62a27666098617d52c487a41f70de23d44a1dc1f3aa5877ceba2790fb1f1cab4" 1752 | "checksum dotenv 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c0d0a1279c96732bc6800ce6337b6a614697b0e74ae058dc03c62ebeb78b4d86" 1753 | "checksum dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6d301140eb411af13d3115f9a562c85cc6b541ade9dfa314132244aaee7489dd" 1754 | "checksum encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec" 1755 | "checksum encoding-index-japanese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91" 1756 | "checksum encoding-index-korean 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81" 1757 | "checksum encoding-index-simpchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7" 1758 | "checksum encoding-index-singlebyte 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a" 1759 | "checksum encoding-index-tradchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18" 1760 | "checksum encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569" 1761 | "checksum error-chain 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6930e04918388a9a2e41d518c25cf679ccafe26733fb4127dbf21993f2575d46" 1762 | "checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2" 1763 | "checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1" 1764 | "checksum flate2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f87e68aa82b2de08a6e037f1385455759df6e445a8df5e005b4297191dbf18aa" 1765 | "checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" 1766 | "checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" 1767 | "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" 1768 | "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" 1769 | "checksum futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)" = "62941eff9507c8177d448bd83a44d9b9760856e184081d8cd79ba9f03dd24981" 1770 | "checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" 1771 | "checksum h2 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "85ab6286db06040ddefb71641b50017c06874614001a134b423783e2db2920bd" 1772 | "checksum hostname 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "21ceb46a83a85e824ef93669c8b390009623863b5c195d1ba747292c0c72f94e" 1773 | "checksum http 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "eed324f0f0daf6ec10c474f150505af2c143f251722bf9dbd1261bd1f2ee2c1a" 1774 | "checksum httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83" 1775 | "checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" 1776 | "checksum indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7e81a7c05f79578dbc15793d8b619db9ba32b4577003ef3af1a91c416798c58d" 1777 | "checksum iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08" 1778 | "checksum ipconfig 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "08f7eadeaf4b52700de180d147c4805f199854600b36faa963d91114827b2ffc" 1779 | "checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b" 1780 | "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" 1781 | "checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" 1782 | "checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14" 1783 | "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" 1784 | "checksum libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)" = "ec350a9417dfd244dc9a6c4a71e13895a4db6b92f0b106f07ebbc3f3bc580cee" 1785 | "checksum linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ae91b68aebc4ddb91978b11a1b02ddd8602a05ec19002801c5666000e05e0f83" 1786 | "checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" 1787 | "checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" 1788 | "checksum lru-cache 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" 1789 | "checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" 1790 | "checksum memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39" 1791 | "checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3" 1792 | "checksum mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "3e27ca21f40a310bd06d9031785f4801710d566c184a6e15bad4f1d9b65f9425" 1793 | "checksum mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)" = "30de2e4613efcba1ec63d8133f344076952090c122992a903359be5a4f99c3ed" 1794 | "checksum miniz-sys 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "0300eafb20369952951699b68243ab4334f4b10a88f411c221d444b36c40e649" 1795 | "checksum miniz_oxide 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c468f2369f07d651a5d0bb2c9079f8488a66d5466efe42d0c5c6466edcb7f71e" 1796 | "checksum miniz_oxide_c_api 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b7fe927a42e3807ef71defb191dc87d4e24479b221e67015fe38ae2b7b447bab" 1797 | "checksum mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)" = "71646331f2619b1026cc302f87a2b8b648d5c6dd6937846a16cc8ce0f347f432" 1798 | "checksum mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125" 1799 | "checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" 1800 | "checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" 1801 | "checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945" 1802 | "checksum nom 4.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6" 1803 | "checksum num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)" = "e83d528d2677f0518c570baf2b7abdcf0cd2d248860b68507bdcb3e91d4c0cea" 1804 | "checksum num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1" 1805 | "checksum num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1a23f0ed30a54abaa0c7e83b1d2d87ada7c3c23078d1d87815af3e3b6385fbba" 1806 | "checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13" 1807 | "checksum parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab41b4aed082705d1056416ae4468b6ea99d52599ecf3169b00088d43113e337" 1808 | "checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" 1809 | "checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" 1810 | "checksum phf 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18" 1811 | "checksum phf_codegen 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e" 1812 | "checksum phf_generator 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662" 1813 | "checksum phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0" 1814 | "checksum pq-sys 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "6ac25eee5a0582f45a67e837e350d784e7003bd29a5f460796772061ca49ffda" 1815 | "checksum proc-macro2 0.4.28 (registry+https://github.com/rust-lang/crates.io-index)" = "ba92c84f814b3f9a44c5cfca7d2ad77fa10710867d2bbb1b3d175ab5f47daa12" 1816 | "checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" 1817 | "checksum quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "faf4799c5d274f3868a4aae320a0a182cbd2baee377b378f080e16a23e9d80db" 1818 | "checksum r2d2 0.8.4 (registry+https://github.com/rust-lang/crates.io-index)" = "9dd8a293251281a4d02848925fcdbbc9f466ddb4965981bb06680359b3d12091" 1819 | "checksum rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" 1820 | "checksum rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9" 1821 | "checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" 1822 | "checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" 1823 | "checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" 1824 | "checksum rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d0e7a549d590831370895ab7ba4ea0c1b6b011d106b5ff2da6eee112615e6dc0" 1825 | "checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" 1826 | "checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" 1827 | "checksum rand_jitter 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b9ea758282efe12823e0d952ddb269d2e1897227e464919a554f2a03ef1b832" 1828 | "checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" 1829 | "checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" 1830 | "checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" 1831 | "checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" 1832 | "checksum redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)" = "12229c14a0f65c4f1cb046a3b52047cdd9da1f4b30f8a39c5063c8bae515e252" 1833 | "checksum regex 1.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "8f0a0bcab2fd7d1d7c54fa9eae6f43eddeb9ce2e7352f8518a814a4f65d60c58" 1834 | "checksum regex-syntax 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "dcfd8681eebe297b81d98498869d4aae052137651ad7b96822f09ceb690d0a96" 1835 | "checksum resolv-conf 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b263b4aa1b5de9ffc0054a2386f96992058bb6870aab516f8cdeb8a667d56dcb" 1836 | "checksum ring 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2c4db68a2e35f3497146b7e4563df7d4773a2433230c5e4b448328e31740458a" 1837 | "checksum rustc-demangle 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "ccc78bfd5acd7bf3e89cffcf899e5cb1a52d6fafa8dec2739ad70c9577a57288" 1838 | "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" 1839 | "checksum ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "eb9e9b8cde282a9fe6a42dd4681319bfb63f121b8a8ee9439c6f4107e58a46f7" 1840 | "checksum safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8dca453248a96cb0749e36ccdfe2b0b4e54a61bfef89fb97ec621eb8e0a93dd9" 1841 | "checksum scheduled-thread-pool 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1a2ff3fc5223829be817806c6441279c676e454cc7da608faf03b0ccc09d3889" 1842 | "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" 1843 | "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" 1844 | "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" 1845 | "checksum serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)" = "aa5f7c20820475babd2c077c3ab5f8c77a31c15e16ea38687b4c02d3e48680f4" 1846 | "checksum serde_derive 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)" = "58fc82bec244f168b23d1963b45c8bf5726e9a15a9d146a067f9081aeed2de79" 1847 | "checksum serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)" = "5a23aa71d4a4d43fdbfaac00eff68ba8a06a51759a89ac3304323e800c4dd40d" 1848 | "checksum serde_urlencoded 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "642dd69105886af2efd227f75a520ec9b44a820d65bc133a9131f7d229fd165a" 1849 | "checksum sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d" 1850 | "checksum signal-hook 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "97a47ae722318beceb0294e6f3d601205a1e6abaa4437d9d33e3a212233e3021" 1851 | "checksum siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" 1852 | "checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" 1853 | "checksum smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c4488ae950c49d403731982257768f48fada354a5203fe81f9bb6f43ca9002be" 1854 | "checksum socket2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "c4d11a52082057d87cb5caa31ad812f4504b97ab44732cd8359df2e9ff9f48e7" 1855 | "checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" 1856 | "checksum string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b639411d0b9c738748b5397d5ceba08e648f4f1992231aa859af1a017f31f60b" 1857 | "checksum syn 0.15.33 (registry+https://github.com/rust-lang/crates.io-index)" = "ec52cd796e5f01d0067225a5392e70084acc4c0013fa71d55166d38a8b307836" 1858 | "checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" 1859 | "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" 1860 | "checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" 1861 | "checksum tokio 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)" = "cec6c34409089be085de9403ba2010b80e36938c9ca992c4f67f407bb13db0b1" 1862 | "checksum tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5c501eceaf96f0e1793cf26beb63da3d11c738c4a943fdf3746d81d64684c39f" 1863 | "checksum tokio-current-thread 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d16217cad7f1b840c5a97dfb3c43b0c871fef423a6e8d2118c604e843662a443" 1864 | "checksum tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "83ea44c6c0773cc034771693711c35c677b4b5a4b21b9e7071704c54de7d555e" 1865 | "checksum tokio-fs 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "3fe6dc22b08d6993916647d108a1a7d15b9cd29c4f4496c62b92c45b5041b7af" 1866 | "checksum tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "5090db468dad16e1a7a54c8c67280c5e4b544f3d3e018f0b913b400261f85926" 1867 | "checksum tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "6af16bfac7e112bea8b0442542161bfc41cbfa4466b580bdda7d18cb88b911ce" 1868 | "checksum tokio-signal 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "dd6dc5276ea05ce379a16de90083ec80836440d5ef8a6a39545a3207373b8296" 1869 | "checksum tokio-sync 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "5b2f843ffdf8d6e1f90bddd48da43f99ab071660cd92b7ec560ef3cdfd7a409a" 1870 | "checksum tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1d14b10654be682ac43efee27401d792507e30fd8d26389e1da3b185de2e4119" 1871 | "checksum tokio-threadpool 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "72558af20be886ea124595ea0f806dd5703b8958e4705429dd58b3d8231f72f2" 1872 | "checksum tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "2910970404ba6fa78c5539126a9ae2045d62e3713041e447f695f41405a120c6" 1873 | "checksum tokio-trace-core 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "350c9edade9830dc185ae48ba45667a445ab59f6167ef6d0254ec9d2430d9dd3" 1874 | "checksum tokio-udp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "66268575b80f4a4a710ef83d087fdfeeabdce9b74c797535fbac18a2cb906e92" 1875 | "checksum tokio-uds 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "037ffc3ba0e12a0ab4aca92e5234e0dedeb48fddf6ccd260f1f150a36a9f2445" 1876 | "checksum tower-service 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b32f72af77f1bfe3d3d4da8516a238ebe7039b51dd8637a09841ac7f16d2c987" 1877 | "checksum trust-dns-proto 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0838272e89f1c693b4df38dc353412e389cf548ceed6f9fd1af5a8d6e0e7cf74" 1878 | "checksum trust-dns-proto 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "09144f0992b0870fa8d2972cc069cbf1e3c0fda64d1f3d45c4d68d0e0b52ad4e" 1879 | "checksum trust-dns-resolver 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8a9f877f7a1ad821ab350505e1f1b146a4960402991787191d6d8cab2ce2de2c" 1880 | "checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86" 1881 | "checksum unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33" 1882 | "checksum unicase 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "41d17211f887da8e4a70a45b9536f26fc5de166b81e2d5d80de4a17fd22553bd" 1883 | "checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" 1884 | "checksum unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "141339a08b982d942be2ca06ff8b076563cbe223d1befd5450716790d44e2426" 1885 | "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" 1886 | "checksum untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "55cd1f4b4e96b46aeb8d4855db4a7a9bd96eeeb5c6a1ab54593328761642ce2f" 1887 | "checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" 1888 | "checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737" 1889 | "checksum uuid 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e1436e58182935dcd9ce0add9ea0b558e8a87befe01c1a301e6020aeb0876363" 1890 | "checksum uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a" 1891 | "checksum v_escape 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8865501b78eef9193c1b45486acf18ba889e5662eba98854d6fc59d8ecf3542d" 1892 | "checksum v_escape_derive 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "306896ff4b75998501263a1dc000456de442e21d68fe8c8bdf75c66a33a58e23" 1893 | "checksum v_htmlescape 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7fbbe0fa88dd36f9c8cf61a218d4b953ba669de4d0785832f33cc72bd081e1be" 1894 | "checksum vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "def296d3eb3b12371b2c7d0e83bfe1403e4db2d7a0bba324a12b21c4ee13143d" 1895 | "checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" 1896 | "checksum widestring 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7157704c2e12e3d2189c507b7482c52820a16dfa4465ba91add92f266667cadb" 1897 | "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" 1898 | "checksum winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770" 1899 | "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" 1900 | "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 1901 | "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 1902 | "checksum winreg 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a27a759395c1195c4cc5cda607ef6f8f6498f64e78f7900f5de0a127a424704a" 1903 | "checksum winutil 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7daf138b6b14196e3830a588acf1e86966c694d3e8fb026fb105b8b5dca07e6e" 1904 | "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" 1905 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "chat_app" 3 | version = "0.1.0" 4 | authors = ["tensor-programming "] 5 | edition = "2018" 6 | 7 | [dependencies] 8 | actix = "0.7.4" 9 | actix-web = "0.7.8" 10 | chrono = { version = "0.4.6", features = ["serde"] } 11 | diesel = { version = "1.3.3", features = ["postgres", "uuid", "r2d2", "chrono"] } 12 | dotenv = "0.13.0" 13 | failure = "0.1.2" 14 | futures = "0.1" 15 | r2d2 = "0.8.2" 16 | serde_derive = "1.0.79" 17 | serde_json = "1.0" 18 | serde = "1.0" 19 | uuid = { version = "0.6.5", features = ["serde", "v4"] } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # rust_actix_live_stream -------------------------------------------------------------------------------- /diesel.toml: -------------------------------------------------------------------------------- 1 | # For documentation on how to configure this file, 2 | # see diesel.rs/guides/configuring-diesel-cli 3 | 4 | [print_schema] 5 | file = "src/schema.rs" 6 | -------------------------------------------------------------------------------- /migrations/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tensor-programming/rust_actix_live_stream/6df960d8d6a0f79a67e1fb2d3dd3d2ccf2d455d9/migrations/.gitkeep -------------------------------------------------------------------------------- /migrations/00000000000000_diesel_initial_setup/down.sql: -------------------------------------------------------------------------------- 1 | -- This file was automatically created by Diesel to setup helper functions 2 | -- and other internal bookkeeping. This file is safe to edit, any future 3 | -- changes will be added to existing projects as new migrations. 4 | 5 | DROP FUNCTION IF EXISTS diesel_manage_updated_at(_tbl regclass); 6 | DROP FUNCTION IF EXISTS diesel_set_updated_at(); 7 | -------------------------------------------------------------------------------- /migrations/00000000000000_diesel_initial_setup/up.sql: -------------------------------------------------------------------------------- 1 | -- This file was automatically created by Diesel to setup helper functions 2 | -- and other internal bookkeeping. This file is safe to edit, any future 3 | -- changes will be added to existing projects as new migrations. 4 | 5 | 6 | 7 | 8 | -- Sets up a trigger for the given table to automatically set a column called 9 | -- `updated_at` whenever the row is modified (unless `updated_at` was included 10 | -- in the modified columns) 11 | -- 12 | -- # Example 13 | -- 14 | -- ```sql 15 | -- CREATE TABLE users (id SERIAL PRIMARY KEY, updated_at TIMESTAMP NOT NULL DEFAULT NOW()); 16 | -- 17 | -- SELECT diesel_manage_updated_at('users'); 18 | -- ``` 19 | CREATE OR REPLACE FUNCTION diesel_manage_updated_at(_tbl regclass) RETURNS VOID AS $$ 20 | BEGIN 21 | EXECUTE format('CREATE TRIGGER set_updated_at BEFORE UPDATE ON %s 22 | FOR EACH ROW EXECUTE PROCEDURE diesel_set_updated_at()', _tbl); 23 | END; 24 | $$ LANGUAGE plpgsql; 25 | 26 | CREATE OR REPLACE FUNCTION diesel_set_updated_at() RETURNS trigger AS $$ 27 | BEGIN 28 | IF ( 29 | NEW IS DISTINCT FROM OLD AND 30 | NEW.updated_at IS NOT DISTINCT FROM OLD.updated_at 31 | ) THEN 32 | NEW.updated_at := current_timestamp; 33 | END IF; 34 | RETURN NEW; 35 | END; 36 | $$ LANGUAGE plpgsql; 37 | -------------------------------------------------------------------------------- /migrations/2019-04-28-190706_create_messages/down.sql: -------------------------------------------------------------------------------- 1 | -- This file should undo anything in `up.sql` -------------------------------------------------------------------------------- /migrations/2019-04-28-190706_create_messages/up.sql: -------------------------------------------------------------------------------- 1 | -- Your SQL goes here 2 | CREATE TABLE messages ( 3 | id UUID PRIMARY KEY NOT NULL, 4 | username VARCHAR(10) NOT NULL, 5 | body TEXT NOT NULL, 6 | ts TIMESTAMP NOT NULL 7 | ); -------------------------------------------------------------------------------- /src/actor/db.rs: -------------------------------------------------------------------------------- 1 | use crate::actix::{Actor, Handler, Message, SyncContext}; 2 | use crate::model::Msg; 3 | use crate::schema; 4 | 5 | use actix_web::error::Error; 6 | use chrono::Local; 7 | use diesel::prelude::*; 8 | use diesel::r2d2::{ConnectionManager, Pool}; 9 | use diesel::PgConnection; 10 | use serde_derive::Deserialize; 11 | use uuid::Uuid; 12 | 13 | pub struct DbActor(pub Pool>); 14 | 15 | #[derive(Debug, Deserialize)] 16 | pub struct User { 17 | pub username: String, 18 | } 19 | 20 | #[derive(Debug, Deserialize)] 21 | pub struct Form { 22 | pub username: String, 23 | pub body: String, 24 | } 25 | 26 | 27 | impl Actor for DbActor { 28 | type Context = SyncContext; 29 | } 30 | 31 | impl Message for Form { 32 | type Result = Result; 33 | } 34 | 35 | impl Message for User { 36 | type Result = Result, Error>; 37 | } 38 | 39 | impl Handler for DbActor { 40 | type Result = Result, Error>; 41 | 42 | fn handle(&mut self, _msg: User, _: &mut Self::Context) -> Self::Result { 43 | 44 | let conn: &PgConnection = &self.0.get().unwrap(); 45 | 46 | let msgs = schema::messages::table 47 | .order(schema::messages::ts.desc()) 48 | .limit(20) 49 | .load::(conn) 50 | .unwrap(); 51 | 52 | Ok(msgs) 53 | } 54 | } 55 | 56 | impl Handler
for DbActor { 57 | type Result = Result; 58 | 59 | fn handle(&mut self, msg: Form, _: &mut Self::Context) -> Self::Result { 60 | 61 | let conn: &PgConnection = &self.0.get().unwrap(); 62 | 63 | let new_msg = Msg { 64 | id: Uuid::new_v4(), 65 | username: msg.username, 66 | body: msg.body, 67 | ts: Local::now().naive_local() 68 | }; 69 | 70 | let result = diesel::insert_into(schema::messages::table) 71 | .values(&new_msg) 72 | .get_result(conn) 73 | .unwrap(); 74 | 75 | Ok(result) 76 | } 77 | } -------------------------------------------------------------------------------- /src/actor/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod db; 2 | pub mod ws; 3 | pub mod session; -------------------------------------------------------------------------------- /src/actor/session.rs: -------------------------------------------------------------------------------- 1 | use crate::actix::prelude::*; 2 | use crate::actix::{Actor, Handler, Running, StreamHandler}; 3 | use crate::actor::ws::{Connect, Disconnect}; 4 | use crate::model::{AppState, Msg}; 5 | use actix_web::ws::{Message, ProtocolError, WebsocketContext}; 6 | use std::time::{Duration, Instant}; 7 | use uuid::Uuid; 8 | 9 | pub struct Session(pub Uuid, pub Instant); 10 | 11 | impl Actor for Session { 12 | type Context = WebsocketContext; 13 | 14 | fn started(&mut self, ctx: &mut Self::Context) { 15 | self.heartbeat(ctx); 16 | 17 | let id = Uuid::new_v4(); 18 | self.0 = id; 19 | 20 | let addr = ctx.address().recipient(); 21 | 22 | ctx.state().ws.do_send(Connect { id, addr }); 23 | } 24 | 25 | fn stopping(&mut self, ctx: &mut Self::Context) -> Running { 26 | ctx.state().ws.do_send(Disconnect { id: self.0 }); 27 | Running::Stop 28 | } 29 | } 30 | 31 | impl Session { 32 | fn heartbeat(&self, ctx: &mut WebsocketContext) { 33 | ctx.run_interval(Duration::from_secs(5), |actor, ctx| { 34 | if Instant::now().duration_since(actor.1) > Duration::from_secs(10) { 35 | println!("Heartbeat failed"); 36 | 37 | ctx.state().ws.do_send(Disconnect { id: actor.0 }); 38 | 39 | ctx.stop(); 40 | } 41 | }); 42 | 43 | ctx.ping(""); 44 | } 45 | } 46 | 47 | impl Handler for Session { 48 | type Result = (); 49 | 50 | fn handle(&mut self, msg: Msg, ctx: &mut Self::Context) { 51 | ctx.text(serde_json::to_string(&msg).unwrap()); 52 | } 53 | } 54 | 55 | impl StreamHandler for Session { 56 | fn handle(&mut self, msg: Message, ctx: &mut Self::Context) { 57 | match msg { 58 | Message::Ping(msg) => { 59 | self.1 = Instant::now(); 60 | ctx.pong(&msg); 61 | } 62 | Message::Pong(_) => { 63 | self.1 = Instant::now(); 64 | } 65 | Message::Text(_) => {} 66 | Message::Binary(_) => {} 67 | Message::Close(_) => { 68 | ctx.stop(); 69 | } 70 | } 71 | } 72 | } -------------------------------------------------------------------------------- /src/actor/ws.rs: -------------------------------------------------------------------------------- 1 | use crate::actix::{Actor, Context, Handler, Message, Recipient}; 2 | use crate::model::Msg; 3 | 4 | use std::collections::HashMap; 5 | use uuid::Uuid; 6 | 7 | pub struct WsActor(pub HashMap>); 8 | 9 | #[derive(Message)] 10 | pub struct Connect { 11 | pub id: Uuid, 12 | pub addr: Recipient, 13 | } 14 | 15 | #[derive(Message)] 16 | pub struct Disconnect { 17 | pub id: Uuid, 18 | } 19 | 20 | impl Actor for WsActor { 21 | type Context = Context; 22 | } 23 | 24 | impl Handler for WsActor { 25 | type Result = (); 26 | 27 | fn handle(&mut self, msg: Connect, _: &mut Self::Context) { 28 | self.0.insert(msg.id, msg.addr); 29 | } 30 | } 31 | 32 | impl Handler for WsActor { 33 | type Result = (); 34 | 35 | fn handle(&mut self, msg: Disconnect, _: &mut Self::Context) { 36 | self.0.remove(&msg.id); 37 | } 38 | } 39 | 40 | impl Handler for WsActor { 41 | type Result = (); 42 | 43 | fn handle(&mut self, msg: Msg, _: &mut Self::Context) { 44 | for ws in self.0.values() { 45 | ws.do_send(msg.clone()); 46 | } 47 | } 48 | } -------------------------------------------------------------------------------- /src/handler.rs: -------------------------------------------------------------------------------- 1 | use crate::actor::db::{Form, User}; 2 | use crate::actor::session::Session; 3 | use crate::model::AppState; 4 | use actix_web::{ 5 | error, ws, AsyncResponder, FutureResponse, HttpRequest, HttpResponse, Json, State, 6 | }; 7 | use futures::Future; 8 | use uuid::Uuid; 9 | 10 | pub fn login((user, state): (Json, State)) -> FutureResponse { 11 | state 12 | .db 13 | .send(user.into_inner()) 14 | .from_err() 15 | .and_then(|response| match response { 16 | Ok(msgs) => Ok(HttpResponse::Ok().json(msgs)), 17 | Err(_) => Ok(HttpResponse::InternalServerError().json("Internal Server Error")), 18 | }) 19 | .responder() 20 | } 21 | 22 | pub fn send_msg((form, state): (Json, State)) -> FutureResponse { 23 | let ws = state.ws.clone(); 24 | 25 | state 26 | .db 27 | .send(form.into_inner()) 28 | .from_err() 29 | .and_then(move |response| match response { 30 | Ok(result) => { 31 | ws.do_send(result.clone()); 32 | Ok(HttpResponse::Ok().json(result.clone())) 33 | } 34 | Err(_) => Ok(HttpResponse::InternalServerError().json("Internal Server Error")), 35 | }) 36 | .responder() 37 | } 38 | 39 | pub fn get_ws(req: &HttpRequest) -> Result { 40 | ws::start(req, Session(Uuid::nil(), std::time::Instant::now())) 41 | } -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | extern crate actix; 2 | #[macro_use] 3 | extern crate diesel; 4 | 5 | mod actor; 6 | mod handler; 7 | mod model; 8 | mod schema; 9 | 10 | use crate::actor::{db::DbActor, ws::WsActor}; 11 | 12 | use crate::handler::{get_ws, login, send_msg}; 13 | use crate::model::AppState; 14 | use actix::prelude::*; 15 | use actix_web::{http::Method, server, App}; 16 | use diesel::{r2d2::ConnectionManager, PgConnection}; 17 | use dotenv::dotenv; 18 | 19 | use std::collections::HashMap; 20 | use std::env; 21 | 22 | 23 | fn main() { 24 | dotenv().ok(); 25 | 26 | let db_url = env::var("DATABASE_URL").expect("DATABASE_URL is not set!"); 27 | 28 | let sys = actix::System::new("chat_system"); 29 | 30 | let manager = ConnectionManager::::new(db_url); 31 | 32 | let pool = r2d2::Pool::builder() 33 | .build(manager) 34 | .expect("Failed to build the Pool"); 35 | 36 | let db_addr: Addr = SyncArbiter::start(5, move || DbActor(pool.clone())); 37 | let ws_addr: Addr = Arbiter::start(|_| WsActor(HashMap::new())); 38 | 39 | server::new(move || { 40 | App::with_state(AppState { 41 | db: db_addr.clone(), 42 | ws: ws_addr.clone(), 43 | }) 44 | .resource("/login", |r| r.method(Method::POST).with(login)) 45 | .resource("/get_ws", |r| r.method(Method::GET).f(get_ws)) 46 | .resource("/send", |r| r.method(Method::POST).with(send_msg)) 47 | }) 48 | .bind("localhost:8080") 49 | .unwrap() 50 | .start(); 51 | 52 | let _ = sys.run(); 53 | } 54 | -------------------------------------------------------------------------------- /src/model.rs: -------------------------------------------------------------------------------- 1 | use crate::actix::prelude::{Addr, Message}; 2 | use crate::schema::messages; 3 | use crate::actor::{db::DbActor, ws::WsActor}; 4 | 5 | use chrono::NaiveDateTime; 6 | use serde_derive::{Deserialize, Serialize}; 7 | use uuid::Uuid; 8 | 9 | pub struct AppState { 10 | pub db: Addr, 11 | pub ws: Addr, 12 | } 13 | 14 | 15 | #[derive(Debug, Clone, Serialize, Deserialize, Queryable, Insertable, Message)] 16 | #[table_name= "messages" ] 17 | pub struct Msg { 18 | pub id: Uuid, 19 | pub username: String, 20 | pub body: String, 21 | pub ts: NaiveDateTime, 22 | } -------------------------------------------------------------------------------- /src/schema.rs: -------------------------------------------------------------------------------- 1 | table! { 2 | messages (id) { 3 | id -> Uuid, 4 | username -> Varchar, 5 | body -> Text, 6 | ts -> Timestamp, 7 | } 8 | } 9 | --------------------------------------------------------------------------------