├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── README.md └── src ├── main.rs └── web_server.rs /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by https://www.gitignore.io/api/vim,rust 2 | 3 | ### Vim ### 4 | # swap 5 | [._]*.s[a-w][a-z] 6 | [._]s[a-w][a-z] 7 | # session 8 | Session.vim 9 | # temporary 10 | .netrwhist 11 | *~ 12 | # auto-generated tag files 13 | tags 14 | 15 | 16 | ### Rust ### 17 | # Generated by Cargo 18 | # will have compiled files and executables 19 | /target/ 20 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | [root] 2 | name = "spotifyd-http" 3 | version = "0.1.0" 4 | dependencies = [ 5 | "env_logger 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", 6 | "getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", 7 | "librespot 0.1.0 (git+https://github.com/SimonPersson/librespot.git)", 8 | "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 9 | "nickel 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", 10 | "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", 11 | ] 12 | 13 | [[package]] 14 | name = "aho-corasick" 15 | version = "0.5.2" 16 | source = "registry+https://github.com/rust-lang/crates.io-index" 17 | dependencies = [ 18 | "memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", 19 | ] 20 | 21 | [[package]] 22 | name = "aster" 23 | version = "0.20.0" 24 | source = "registry+https://github.com/rust-lang/crates.io-index" 25 | dependencies = [ 26 | "syntex_syntax 0.37.0 (registry+https://github.com/rust-lang/crates.io-index)", 27 | ] 28 | 29 | [[package]] 30 | name = "aster" 31 | version = "0.21.1" 32 | source = "registry+https://github.com/rust-lang/crates.io-index" 33 | dependencies = [ 34 | "syntex_syntax 0.38.0 (registry+https://github.com/rust-lang/crates.io-index)", 35 | ] 36 | 37 | [[package]] 38 | name = "aster" 39 | version = "0.22.1" 40 | source = "registry+https://github.com/rust-lang/crates.io-index" 41 | dependencies = [ 42 | "syntex_syntax 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", 43 | ] 44 | 45 | [[package]] 46 | name = "bit-set" 47 | version = "0.4.0" 48 | source = "registry+https://github.com/rust-lang/crates.io-index" 49 | dependencies = [ 50 | "bit-vec 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", 51 | ] 52 | 53 | [[package]] 54 | name = "bit-vec" 55 | version = "0.4.3" 56 | source = "registry+https://github.com/rust-lang/crates.io-index" 57 | 58 | [[package]] 59 | name = "bitflags" 60 | version = "0.4.0" 61 | source = "registry+https://github.com/rust-lang/crates.io-index" 62 | 63 | [[package]] 64 | name = "bitflags" 65 | version = "0.5.0" 66 | source = "registry+https://github.com/rust-lang/crates.io-index" 67 | 68 | [[package]] 69 | name = "bitflags" 70 | version = "0.7.0" 71 | source = "registry+https://github.com/rust-lang/crates.io-index" 72 | 73 | [[package]] 74 | name = "byteorder" 75 | version = "0.5.3" 76 | source = "registry+https://github.com/rust-lang/crates.io-index" 77 | 78 | [[package]] 79 | name = "bytes" 80 | version = "0.3.0" 81 | source = "registry+https://github.com/rust-lang/crates.io-index" 82 | 83 | [[package]] 84 | name = "cfg-if" 85 | version = "0.1.0" 86 | source = "registry+https://github.com/rust-lang/crates.io-index" 87 | 88 | [[package]] 89 | name = "cookie" 90 | version = "0.2.5" 91 | source = "registry+https://github.com/rust-lang/crates.io-index" 92 | dependencies = [ 93 | "time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", 94 | "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 95 | ] 96 | 97 | [[package]] 98 | name = "dns-parser" 99 | version = "0.3.2" 100 | source = "git+http://github.com/plietar/dns-parser#1dfc065504f8e18390fff988dd45d3072157e3b7" 101 | dependencies = [ 102 | "byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", 103 | "matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 104 | "quick-error 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 105 | ] 106 | 107 | [[package]] 108 | name = "env_logger" 109 | version = "0.3.4" 110 | source = "registry+https://github.com/rust-lang/crates.io-index" 111 | dependencies = [ 112 | "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 113 | "regex 0.1.73 (registry+https://github.com/rust-lang/crates.io-index)", 114 | ] 115 | 116 | [[package]] 117 | name = "eventual" 118 | version = "0.1.7" 119 | source = "registry+https://github.com/rust-lang/crates.io-index" 120 | dependencies = [ 121 | "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 122 | "syncbox 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", 123 | "time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", 124 | ] 125 | 126 | [[package]] 127 | name = "extprim" 128 | version = "1.1.1" 129 | source = "registry+https://github.com/rust-lang/crates.io-index" 130 | dependencies = [ 131 | "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", 132 | "rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", 133 | "rustc_version 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 134 | ] 135 | 136 | [[package]] 137 | name = "gcc" 138 | version = "0.3.35" 139 | source = "registry+https://github.com/rust-lang/crates.io-index" 140 | 141 | [[package]] 142 | name = "getopts" 143 | version = "0.2.14" 144 | source = "registry+https://github.com/rust-lang/crates.io-index" 145 | 146 | [[package]] 147 | name = "groupable" 148 | version = "0.2.0" 149 | source = "registry+https://github.com/rust-lang/crates.io-index" 150 | 151 | [[package]] 152 | name = "hpack" 153 | version = "0.2.0" 154 | source = "registry+https://github.com/rust-lang/crates.io-index" 155 | dependencies = [ 156 | "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 157 | ] 158 | 159 | [[package]] 160 | name = "httparse" 161 | version = "1.1.2" 162 | source = "registry+https://github.com/rust-lang/crates.io-index" 163 | 164 | [[package]] 165 | name = "hyper" 166 | version = "0.9.10" 167 | source = "registry+https://github.com/rust-lang/crates.io-index" 168 | dependencies = [ 169 | "cookie 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", 170 | "httparse 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 171 | "language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 172 | "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 173 | "mime 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 174 | "num_cpus 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", 175 | "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", 176 | "solicit 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", 177 | "time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", 178 | "traitobject 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 179 | "typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 180 | "unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 181 | "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 182 | ] 183 | 184 | [[package]] 185 | name = "idna" 186 | version = "0.1.0" 187 | source = "registry+https://github.com/rust-lang/crates.io-index" 188 | dependencies = [ 189 | "matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 190 | "unicode-bidi 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 191 | "unicode-normalization 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 192 | ] 193 | 194 | [[package]] 195 | name = "itoa" 196 | version = "0.1.1" 197 | source = "registry+https://github.com/rust-lang/crates.io-index" 198 | 199 | [[package]] 200 | name = "json_macros" 201 | version = "0.3.1" 202 | source = "git+https://github.com/plietar/json_macros#08e1b62cca42d54723a77488e71b571396e2bb98" 203 | dependencies = [ 204 | "quasi 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", 205 | "quasi_codegen 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", 206 | "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", 207 | "syntex 0.37.0 (registry+https://github.com/rust-lang/crates.io-index)", 208 | "syntex_syntax 0.37.0 (registry+https://github.com/rust-lang/crates.io-index)", 209 | ] 210 | 211 | [[package]] 212 | name = "kernel32-sys" 213 | version = "0.2.2" 214 | source = "registry+https://github.com/rust-lang/crates.io-index" 215 | dependencies = [ 216 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 217 | "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 218 | ] 219 | 220 | [[package]] 221 | name = "language-tags" 222 | version = "0.2.2" 223 | source = "registry+https://github.com/rust-lang/crates.io-index" 224 | 225 | [[package]] 226 | name = "lazy_static" 227 | version = "0.1.16" 228 | source = "registry+https://github.com/rust-lang/crates.io-index" 229 | 230 | [[package]] 231 | name = "lazy_static" 232 | version = "0.2.1" 233 | source = "registry+https://github.com/rust-lang/crates.io-index" 234 | 235 | [[package]] 236 | name = "libc" 237 | version = "0.2.15" 238 | source = "registry+https://github.com/rust-lang/crates.io-index" 239 | 240 | [[package]] 241 | name = "liblmdb-sys" 242 | version = "0.2.1" 243 | source = "registry+https://github.com/rust-lang/crates.io-index" 244 | dependencies = [ 245 | "gcc 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)", 246 | "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 247 | ] 248 | 249 | [[package]] 250 | name = "librespot" 251 | version = "0.1.0" 252 | source = "git+https://github.com/SimonPersson/librespot.git#0e0470f0b55ce60c9b708c8015ba3c098719e95c" 253 | dependencies = [ 254 | "bit-set 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 255 | "byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", 256 | "env_logger 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", 257 | "eventual 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 258 | "extprim 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 259 | "getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", 260 | "hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)", 261 | "json_macros 0.3.1 (git+https://github.com/plietar/json_macros)", 262 | "lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 263 | "librespot-protocol 0.1.0 (git+https://github.com/SimonPersson/librespot.git)", 264 | "linear-map 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 265 | "lmdb-rs 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 266 | "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 267 | "mdns 0.1.0 (git+http://github.com/plietar/rust-mdns)", 268 | "num 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", 269 | "protobuf 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)", 270 | "protobuf_macros 0.6.0 (git+https://github.com/plietar/rust-protobuf-macros)", 271 | "rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", 272 | "rpassword 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 273 | "rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)", 274 | "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", 275 | "serde 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)", 276 | "serde_codegen 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)", 277 | "serde_json 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", 278 | "shannon 0.1.1 (git+https://github.com/plietar/rust-shannon)", 279 | "tempfile 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)", 280 | "url 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", 281 | "vergen 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 282 | "vorbis 0.0.14 (registry+https://github.com/rust-lang/crates.io-index)", 283 | ] 284 | 285 | [[package]] 286 | name = "librespot-protocol" 287 | version = "0.1.0" 288 | source = "git+https://github.com/SimonPersson/librespot.git#0e0470f0b55ce60c9b708c8015ba3c098719e95c" 289 | dependencies = [ 290 | "protobuf 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)", 291 | "protobuf_build 0.1.1 (git+https://github.com/plietar/rust-protobuf-build.git)", 292 | ] 293 | 294 | [[package]] 295 | name = "linear-map" 296 | version = "1.1.0" 297 | source = "registry+https://github.com/rust-lang/crates.io-index" 298 | 299 | [[package]] 300 | name = "lmdb-rs" 301 | version = "0.7.2" 302 | source = "registry+https://github.com/rust-lang/crates.io-index" 303 | dependencies = [ 304 | "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", 305 | "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 306 | "liblmdb-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 307 | "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 308 | "regex 0.1.73 (registry+https://github.com/rust-lang/crates.io-index)", 309 | ] 310 | 311 | [[package]] 312 | name = "log" 313 | version = "0.3.6" 314 | source = "registry+https://github.com/rust-lang/crates.io-index" 315 | 316 | [[package]] 317 | name = "matches" 318 | version = "0.1.2" 319 | source = "registry+https://github.com/rust-lang/crates.io-index" 320 | 321 | [[package]] 322 | name = "mdns" 323 | version = "0.1.0" 324 | source = "git+http://github.com/plietar/rust-mdns#18df08221acdcdc8ef41af291f26afed2cdaea57" 325 | dependencies = [ 326 | "byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", 327 | "dns-parser 0.3.2 (git+http://github.com/plietar/dns-parser)", 328 | "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 329 | "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 330 | "mio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", 331 | "multimap 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 332 | "net2 0.2.26 (registry+https://github.com/rust-lang/crates.io-index)", 333 | "nix 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", 334 | "rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", 335 | "rotor 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", 336 | ] 337 | 338 | [[package]] 339 | name = "memchr" 340 | version = "0.1.11" 341 | source = "registry+https://github.com/rust-lang/crates.io-index" 342 | dependencies = [ 343 | "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 344 | ] 345 | 346 | [[package]] 347 | name = "mime" 348 | version = "0.2.2" 349 | source = "registry+https://github.com/rust-lang/crates.io-index" 350 | dependencies = [ 351 | "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 352 | ] 353 | 354 | [[package]] 355 | name = "mio" 356 | version = "0.5.1" 357 | source = "registry+https://github.com/rust-lang/crates.io-index" 358 | dependencies = [ 359 | "bytes 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 360 | "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 361 | "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 362 | "miow 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 363 | "net2 0.2.26 (registry+https://github.com/rust-lang/crates.io-index)", 364 | "nix 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", 365 | "slab 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 366 | "time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", 367 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 368 | ] 369 | 370 | [[package]] 371 | name = "miow" 372 | version = "0.1.3" 373 | source = "registry+https://github.com/rust-lang/crates.io-index" 374 | dependencies = [ 375 | "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 376 | "net2 0.2.26 (registry+https://github.com/rust-lang/crates.io-index)", 377 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 378 | "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 379 | ] 380 | 381 | [[package]] 382 | name = "modifier" 383 | version = "0.1.0" 384 | source = "registry+https://github.com/rust-lang/crates.io-index" 385 | 386 | [[package]] 387 | name = "multimap" 388 | version = "0.2.0" 389 | source = "registry+https://github.com/rust-lang/crates.io-index" 390 | 391 | [[package]] 392 | name = "mustache" 393 | version = "0.6.3" 394 | source = "registry+https://github.com/rust-lang/crates.io-index" 395 | dependencies = [ 396 | "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 397 | "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", 398 | ] 399 | 400 | [[package]] 401 | name = "net2" 402 | version = "0.2.26" 403 | source = "registry+https://github.com/rust-lang/crates.io-index" 404 | dependencies = [ 405 | "cfg-if 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 406 | "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 407 | "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 408 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 409 | "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 410 | ] 411 | 412 | [[package]] 413 | name = "nickel" 414 | version = "0.9.0" 415 | source = "registry+https://github.com/rust-lang/crates.io-index" 416 | dependencies = [ 417 | "groupable 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 418 | "hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)", 419 | "lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", 420 | "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 421 | "modifier 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 422 | "mustache 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", 423 | "plugin 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", 424 | "regex 0.1.73 (registry+https://github.com/rust-lang/crates.io-index)", 425 | "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", 426 | "time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", 427 | "typemap 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 428 | "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 429 | ] 430 | 431 | [[package]] 432 | name = "nix" 433 | version = "0.5.1" 434 | source = "registry+https://github.com/rust-lang/crates.io-index" 435 | dependencies = [ 436 | "bitflags 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 437 | "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 438 | ] 439 | 440 | [[package]] 441 | name = "num" 442 | version = "0.1.35" 443 | source = "registry+https://github.com/rust-lang/crates.io-index" 444 | dependencies = [ 445 | "num-bigint 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", 446 | "num-complex 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", 447 | "num-integer 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)", 448 | "num-iter 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)", 449 | "num-rational 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", 450 | "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", 451 | ] 452 | 453 | [[package]] 454 | name = "num-bigint" 455 | version = "0.1.35" 456 | source = "registry+https://github.com/rust-lang/crates.io-index" 457 | dependencies = [ 458 | "num-integer 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)", 459 | "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", 460 | "rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", 461 | "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", 462 | ] 463 | 464 | [[package]] 465 | name = "num-complex" 466 | version = "0.1.35" 467 | source = "registry+https://github.com/rust-lang/crates.io-index" 468 | dependencies = [ 469 | "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", 470 | "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", 471 | ] 472 | 473 | [[package]] 474 | name = "num-integer" 475 | version = "0.1.32" 476 | source = "registry+https://github.com/rust-lang/crates.io-index" 477 | dependencies = [ 478 | "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", 479 | ] 480 | 481 | [[package]] 482 | name = "num-iter" 483 | version = "0.1.32" 484 | source = "registry+https://github.com/rust-lang/crates.io-index" 485 | dependencies = [ 486 | "num-integer 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)", 487 | "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", 488 | ] 489 | 490 | [[package]] 491 | name = "num-rational" 492 | version = "0.1.35" 493 | source = "registry+https://github.com/rust-lang/crates.io-index" 494 | dependencies = [ 495 | "num-bigint 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", 496 | "num-integer 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)", 497 | "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", 498 | "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", 499 | ] 500 | 501 | [[package]] 502 | name = "num-traits" 503 | version = "0.1.35" 504 | source = "registry+https://github.com/rust-lang/crates.io-index" 505 | 506 | [[package]] 507 | name = "num_cpus" 508 | version = "0.2.13" 509 | source = "registry+https://github.com/rust-lang/crates.io-index" 510 | dependencies = [ 511 | "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 512 | ] 513 | 514 | [[package]] 515 | name = "ogg-sys" 516 | version = "0.0.9" 517 | source = "registry+https://github.com/rust-lang/crates.io-index" 518 | dependencies = [ 519 | "gcc 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)", 520 | "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 521 | "pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", 522 | ] 523 | 524 | [[package]] 525 | name = "pkg-config" 526 | version = "0.3.8" 527 | source = "registry+https://github.com/rust-lang/crates.io-index" 528 | 529 | [[package]] 530 | name = "plugin" 531 | version = "0.2.6" 532 | source = "registry+https://github.com/rust-lang/crates.io-index" 533 | dependencies = [ 534 | "typemap 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 535 | ] 536 | 537 | [[package]] 538 | name = "protobuf" 539 | version = "1.0.24" 540 | source = "registry+https://github.com/rust-lang/crates.io-index" 541 | 542 | [[package]] 543 | name = "protobuf_build" 544 | version = "0.1.1" 545 | source = "git+https://github.com/plietar/rust-protobuf-build.git#24d5a01ca035d0c00a3fae7ce5e26b6d2e68ddcb" 546 | dependencies = [ 547 | "gcc 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)", 548 | "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 549 | "pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", 550 | "protobuf 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)", 551 | ] 552 | 553 | [[package]] 554 | name = "protobuf_macros" 555 | version = "0.6.0" 556 | source = "git+https://github.com/plietar/rust-protobuf-macros#726fa2f89e3f91e3aba6a836a1a3ce6eba774079" 557 | dependencies = [ 558 | "aster 0.21.1 (registry+https://github.com/rust-lang/crates.io-index)", 559 | "syntex 0.38.0 (registry+https://github.com/rust-lang/crates.io-index)", 560 | "syntex_syntax 0.38.0 (registry+https://github.com/rust-lang/crates.io-index)", 561 | ] 562 | 563 | [[package]] 564 | name = "quasi" 565 | version = "0.14.0" 566 | source = "registry+https://github.com/rust-lang/crates.io-index" 567 | dependencies = [ 568 | "syntex_errors 0.37.0 (registry+https://github.com/rust-lang/crates.io-index)", 569 | "syntex_syntax 0.37.0 (registry+https://github.com/rust-lang/crates.io-index)", 570 | ] 571 | 572 | [[package]] 573 | name = "quasi" 574 | version = "0.16.0" 575 | source = "registry+https://github.com/rust-lang/crates.io-index" 576 | dependencies = [ 577 | "syntex_errors 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", 578 | "syntex_syntax 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", 579 | ] 580 | 581 | [[package]] 582 | name = "quasi_codegen" 583 | version = "0.14.0" 584 | source = "registry+https://github.com/rust-lang/crates.io-index" 585 | dependencies = [ 586 | "aster 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", 587 | "syntex 0.37.0 (registry+https://github.com/rust-lang/crates.io-index)", 588 | "syntex_errors 0.37.0 (registry+https://github.com/rust-lang/crates.io-index)", 589 | "syntex_syntax 0.37.0 (registry+https://github.com/rust-lang/crates.io-index)", 590 | ] 591 | 592 | [[package]] 593 | name = "quasi_codegen" 594 | version = "0.16.0" 595 | source = "registry+https://github.com/rust-lang/crates.io-index" 596 | dependencies = [ 597 | "aster 0.22.1 (registry+https://github.com/rust-lang/crates.io-index)", 598 | "syntex 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", 599 | "syntex_errors 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", 600 | "syntex_syntax 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", 601 | ] 602 | 603 | [[package]] 604 | name = "quick-error" 605 | version = "0.2.2" 606 | source = "registry+https://github.com/rust-lang/crates.io-index" 607 | 608 | [[package]] 609 | name = "quick-error" 610 | version = "1.1.0" 611 | source = "registry+https://github.com/rust-lang/crates.io-index" 612 | 613 | [[package]] 614 | name = "rand" 615 | version = "0.3.14" 616 | source = "registry+https://github.com/rust-lang/crates.io-index" 617 | dependencies = [ 618 | "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 619 | ] 620 | 621 | [[package]] 622 | name = "regex" 623 | version = "0.1.73" 624 | source = "registry+https://github.com/rust-lang/crates.io-index" 625 | dependencies = [ 626 | "aho-corasick 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", 627 | "memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", 628 | "regex-syntax 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", 629 | "thread_local 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", 630 | "utf8-ranges 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 631 | ] 632 | 633 | [[package]] 634 | name = "regex-syntax" 635 | version = "0.3.4" 636 | source = "registry+https://github.com/rust-lang/crates.io-index" 637 | 638 | [[package]] 639 | name = "rotor" 640 | version = "0.6.3" 641 | source = "registry+https://github.com/rust-lang/crates.io-index" 642 | dependencies = [ 643 | "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 644 | "mio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", 645 | "quick-error 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 646 | "time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", 647 | "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", 648 | ] 649 | 650 | [[package]] 651 | name = "rpassword" 652 | version = "0.2.3" 653 | source = "registry+https://github.com/rust-lang/crates.io-index" 654 | dependencies = [ 655 | "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 656 | "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 657 | "termios 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 658 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 659 | ] 660 | 661 | [[package]] 662 | name = "rust-crypto" 663 | version = "0.2.36" 664 | source = "registry+https://github.com/rust-lang/crates.io-index" 665 | dependencies = [ 666 | "gcc 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)", 667 | "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 668 | "rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", 669 | "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", 670 | "time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", 671 | ] 672 | 673 | [[package]] 674 | name = "rustc-serialize" 675 | version = "0.3.19" 676 | source = "registry+https://github.com/rust-lang/crates.io-index" 677 | 678 | [[package]] 679 | name = "rustc_version" 680 | version = "0.1.7" 681 | source = "registry+https://github.com/rust-lang/crates.io-index" 682 | dependencies = [ 683 | "semver 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)", 684 | ] 685 | 686 | [[package]] 687 | name = "semver" 688 | version = "0.1.20" 689 | source = "registry+https://github.com/rust-lang/crates.io-index" 690 | 691 | [[package]] 692 | name = "serde" 693 | version = "0.7.15" 694 | source = "registry+https://github.com/rust-lang/crates.io-index" 695 | 696 | [[package]] 697 | name = "serde_codegen" 698 | version = "0.7.15" 699 | source = "registry+https://github.com/rust-lang/crates.io-index" 700 | dependencies = [ 701 | "aster 0.22.1 (registry+https://github.com/rust-lang/crates.io-index)", 702 | "quasi 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)", 703 | "quasi_codegen 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)", 704 | "serde_codegen_internals 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 705 | "syntex 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", 706 | "syntex_syntax 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", 707 | ] 708 | 709 | [[package]] 710 | name = "serde_codegen_internals" 711 | version = "0.4.0" 712 | source = "registry+https://github.com/rust-lang/crates.io-index" 713 | dependencies = [ 714 | "syntex_errors 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", 715 | "syntex_syntax 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", 716 | ] 717 | 718 | [[package]] 719 | name = "serde_json" 720 | version = "0.7.4" 721 | source = "registry+https://github.com/rust-lang/crates.io-index" 722 | dependencies = [ 723 | "itoa 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 724 | "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", 725 | "serde 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)", 726 | ] 727 | 728 | [[package]] 729 | name = "shannon" 730 | version = "0.1.1" 731 | source = "git+https://github.com/plietar/rust-shannon#7000b3e49a53daaa890727ba2b2bd5a43cc4ffef" 732 | dependencies = [ 733 | "byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", 734 | "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 735 | "shannon-sys 0.1.0 (git+https://github.com/plietar/rust-shannon)", 736 | ] 737 | 738 | [[package]] 739 | name = "shannon-sys" 740 | version = "0.1.0" 741 | source = "git+https://github.com/plietar/rust-shannon#7000b3e49a53daaa890727ba2b2bd5a43cc4ffef" 742 | dependencies = [ 743 | "gcc 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)", 744 | "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 745 | ] 746 | 747 | [[package]] 748 | name = "slab" 749 | version = "0.1.3" 750 | source = "registry+https://github.com/rust-lang/crates.io-index" 751 | 752 | [[package]] 753 | name = "solicit" 754 | version = "0.4.4" 755 | source = "registry+https://github.com/rust-lang/crates.io-index" 756 | dependencies = [ 757 | "hpack 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 758 | "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 759 | ] 760 | 761 | [[package]] 762 | name = "syncbox" 763 | version = "0.2.4" 764 | source = "registry+https://github.com/rust-lang/crates.io-index" 765 | dependencies = [ 766 | "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 767 | "time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", 768 | ] 769 | 770 | [[package]] 771 | name = "syntex" 772 | version = "0.37.0" 773 | source = "registry+https://github.com/rust-lang/crates.io-index" 774 | dependencies = [ 775 | "syntex_errors 0.37.0 (registry+https://github.com/rust-lang/crates.io-index)", 776 | "syntex_syntax 0.37.0 (registry+https://github.com/rust-lang/crates.io-index)", 777 | ] 778 | 779 | [[package]] 780 | name = "syntex" 781 | version = "0.38.0" 782 | source = "registry+https://github.com/rust-lang/crates.io-index" 783 | dependencies = [ 784 | "syntex_errors 0.38.0 (registry+https://github.com/rust-lang/crates.io-index)", 785 | "syntex_syntax 0.38.0 (registry+https://github.com/rust-lang/crates.io-index)", 786 | ] 787 | 788 | [[package]] 789 | name = "syntex" 790 | version = "0.39.0" 791 | source = "registry+https://github.com/rust-lang/crates.io-index" 792 | dependencies = [ 793 | "syntex_errors 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", 794 | "syntex_syntax 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", 795 | ] 796 | 797 | [[package]] 798 | name = "syntex_errors" 799 | version = "0.37.0" 800 | source = "registry+https://github.com/rust-lang/crates.io-index" 801 | dependencies = [ 802 | "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 803 | "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 804 | "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", 805 | "syntex_pos 0.37.0 (registry+https://github.com/rust-lang/crates.io-index)", 806 | "term 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", 807 | "unicode-xid 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 808 | ] 809 | 810 | [[package]] 811 | name = "syntex_errors" 812 | version = "0.38.0" 813 | source = "registry+https://github.com/rust-lang/crates.io-index" 814 | dependencies = [ 815 | "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 816 | "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 817 | "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", 818 | "syntex_pos 0.38.0 (registry+https://github.com/rust-lang/crates.io-index)", 819 | "term 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", 820 | "unicode-xid 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 821 | ] 822 | 823 | [[package]] 824 | name = "syntex_errors" 825 | version = "0.39.0" 826 | source = "registry+https://github.com/rust-lang/crates.io-index" 827 | dependencies = [ 828 | "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 829 | "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 830 | "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", 831 | "syntex_pos 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", 832 | "term 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", 833 | "unicode-xid 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 834 | ] 835 | 836 | [[package]] 837 | name = "syntex_pos" 838 | version = "0.37.0" 839 | source = "registry+https://github.com/rust-lang/crates.io-index" 840 | dependencies = [ 841 | "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", 842 | ] 843 | 844 | [[package]] 845 | name = "syntex_pos" 846 | version = "0.38.0" 847 | source = "registry+https://github.com/rust-lang/crates.io-index" 848 | dependencies = [ 849 | "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", 850 | ] 851 | 852 | [[package]] 853 | name = "syntex_pos" 854 | version = "0.39.0" 855 | source = "registry+https://github.com/rust-lang/crates.io-index" 856 | dependencies = [ 857 | "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", 858 | ] 859 | 860 | [[package]] 861 | name = "syntex_syntax" 862 | version = "0.37.0" 863 | source = "registry+https://github.com/rust-lang/crates.io-index" 864 | dependencies = [ 865 | "bitflags 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", 866 | "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 867 | "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 868 | "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", 869 | "syntex_errors 0.37.0 (registry+https://github.com/rust-lang/crates.io-index)", 870 | "syntex_pos 0.37.0 (registry+https://github.com/rust-lang/crates.io-index)", 871 | "term 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", 872 | "unicode-xid 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 873 | ] 874 | 875 | [[package]] 876 | name = "syntex_syntax" 877 | version = "0.38.0" 878 | source = "registry+https://github.com/rust-lang/crates.io-index" 879 | dependencies = [ 880 | "bitflags 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", 881 | "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 882 | "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 883 | "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", 884 | "syntex_errors 0.38.0 (registry+https://github.com/rust-lang/crates.io-index)", 885 | "syntex_pos 0.38.0 (registry+https://github.com/rust-lang/crates.io-index)", 886 | "term 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", 887 | "unicode-xid 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 888 | ] 889 | 890 | [[package]] 891 | name = "syntex_syntax" 892 | version = "0.39.0" 893 | source = "registry+https://github.com/rust-lang/crates.io-index" 894 | dependencies = [ 895 | "bitflags 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", 896 | "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 897 | "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 898 | "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", 899 | "syntex_errors 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", 900 | "syntex_pos 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", 901 | "term 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", 902 | "unicode-xid 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 903 | ] 904 | 905 | [[package]] 906 | name = "tempfile" 907 | version = "2.1.4" 908 | source = "registry+https://github.com/rust-lang/crates.io-index" 909 | dependencies = [ 910 | "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 911 | "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 912 | "rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", 913 | "rustc_version 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 914 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 915 | ] 916 | 917 | [[package]] 918 | name = "term" 919 | version = "0.4.4" 920 | source = "registry+https://github.com/rust-lang/crates.io-index" 921 | dependencies = [ 922 | "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 923 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 924 | ] 925 | 926 | [[package]] 927 | name = "termios" 928 | version = "0.2.2" 929 | source = "registry+https://github.com/rust-lang/crates.io-index" 930 | dependencies = [ 931 | "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 932 | ] 933 | 934 | [[package]] 935 | name = "thread-id" 936 | version = "2.0.0" 937 | source = "registry+https://github.com/rust-lang/crates.io-index" 938 | dependencies = [ 939 | "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 940 | "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 941 | ] 942 | 943 | [[package]] 944 | name = "thread_local" 945 | version = "0.2.6" 946 | source = "registry+https://github.com/rust-lang/crates.io-index" 947 | dependencies = [ 948 | "thread-id 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", 949 | ] 950 | 951 | [[package]] 952 | name = "time" 953 | version = "0.1.35" 954 | source = "registry+https://github.com/rust-lang/crates.io-index" 955 | dependencies = [ 956 | "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 957 | "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 958 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 959 | ] 960 | 961 | [[package]] 962 | name = "traitobject" 963 | version = "0.0.1" 964 | source = "registry+https://github.com/rust-lang/crates.io-index" 965 | 966 | [[package]] 967 | name = "traitobject" 968 | version = "0.0.3" 969 | source = "registry+https://github.com/rust-lang/crates.io-index" 970 | 971 | [[package]] 972 | name = "typeable" 973 | version = "0.1.2" 974 | source = "registry+https://github.com/rust-lang/crates.io-index" 975 | 976 | [[package]] 977 | name = "typemap" 978 | version = "0.3.3" 979 | source = "registry+https://github.com/rust-lang/crates.io-index" 980 | dependencies = [ 981 | "unsafe-any 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", 982 | ] 983 | 984 | [[package]] 985 | name = "unicase" 986 | version = "1.4.0" 987 | source = "registry+https://github.com/rust-lang/crates.io-index" 988 | dependencies = [ 989 | "rustc_version 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 990 | ] 991 | 992 | [[package]] 993 | name = "unicode-bidi" 994 | version = "0.2.3" 995 | source = "registry+https://github.com/rust-lang/crates.io-index" 996 | dependencies = [ 997 | "matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 998 | ] 999 | 1000 | [[package]] 1001 | name = "unicode-normalization" 1002 | version = "0.1.2" 1003 | source = "registry+https://github.com/rust-lang/crates.io-index" 1004 | 1005 | [[package]] 1006 | name = "unicode-xid" 1007 | version = "0.0.3" 1008 | source = "registry+https://github.com/rust-lang/crates.io-index" 1009 | 1010 | [[package]] 1011 | name = "unsafe-any" 1012 | version = "0.4.1" 1013 | source = "registry+https://github.com/rust-lang/crates.io-index" 1014 | dependencies = [ 1015 | "traitobject 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 1016 | ] 1017 | 1018 | [[package]] 1019 | name = "url" 1020 | version = "0.5.10" 1021 | source = "registry+https://github.com/rust-lang/crates.io-index" 1022 | dependencies = [ 1023 | "matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 1024 | "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", 1025 | "unicode-bidi 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 1026 | "unicode-normalization 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 1027 | "uuid 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 1028 | ] 1029 | 1030 | [[package]] 1031 | name = "url" 1032 | version = "1.2.0" 1033 | source = "registry+https://github.com/rust-lang/crates.io-index" 1034 | dependencies = [ 1035 | "idna 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1036 | "matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 1037 | ] 1038 | 1039 | [[package]] 1040 | name = "utf8-ranges" 1041 | version = "0.1.3" 1042 | source = "registry+https://github.com/rust-lang/crates.io-index" 1043 | 1044 | [[package]] 1045 | name = "uuid" 1046 | version = "0.2.3" 1047 | source = "registry+https://github.com/rust-lang/crates.io-index" 1048 | dependencies = [ 1049 | "rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", 1050 | ] 1051 | 1052 | [[package]] 1053 | name = "vergen" 1054 | version = "0.1.1" 1055 | source = "registry+https://github.com/rust-lang/crates.io-index" 1056 | dependencies = [ 1057 | "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", 1058 | "time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", 1059 | ] 1060 | 1061 | [[package]] 1062 | name = "void" 1063 | version = "1.0.2" 1064 | source = "registry+https://github.com/rust-lang/crates.io-index" 1065 | 1066 | [[package]] 1067 | name = "vorbis" 1068 | version = "0.0.14" 1069 | source = "registry+https://github.com/rust-lang/crates.io-index" 1070 | dependencies = [ 1071 | "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 1072 | "ogg-sys 0.0.9 (registry+https://github.com/rust-lang/crates.io-index)", 1073 | "vorbis-sys 0.0.8 (registry+https://github.com/rust-lang/crates.io-index)", 1074 | "vorbisfile-sys 0.0.8 (registry+https://github.com/rust-lang/crates.io-index)", 1075 | ] 1076 | 1077 | [[package]] 1078 | name = "vorbis-sys" 1079 | version = "0.0.8" 1080 | source = "registry+https://github.com/rust-lang/crates.io-index" 1081 | dependencies = [ 1082 | "gcc 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)", 1083 | "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 1084 | "ogg-sys 0.0.9 (registry+https://github.com/rust-lang/crates.io-index)", 1085 | "pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", 1086 | ] 1087 | 1088 | [[package]] 1089 | name = "vorbisfile-sys" 1090 | version = "0.0.8" 1091 | source = "registry+https://github.com/rust-lang/crates.io-index" 1092 | dependencies = [ 1093 | "gcc 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)", 1094 | "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 1095 | "ogg-sys 0.0.9 (registry+https://github.com/rust-lang/crates.io-index)", 1096 | "pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", 1097 | "vorbis-sys 0.0.8 (registry+https://github.com/rust-lang/crates.io-index)", 1098 | ] 1099 | 1100 | [[package]] 1101 | name = "winapi" 1102 | version = "0.2.8" 1103 | source = "registry+https://github.com/rust-lang/crates.io-index" 1104 | 1105 | [[package]] 1106 | name = "winapi-build" 1107 | version = "0.1.1" 1108 | source = "registry+https://github.com/rust-lang/crates.io-index" 1109 | 1110 | [[package]] 1111 | name = "ws2_32-sys" 1112 | version = "0.2.1" 1113 | source = "registry+https://github.com/rust-lang/crates.io-index" 1114 | dependencies = [ 1115 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 1116 | "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 1117 | ] 1118 | 1119 | [metadata] 1120 | "checksum aho-corasick 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2b3fb52b09c1710b961acb35390d514be82e4ac96a9969a8e38565a29b878dc9" 1121 | "checksum aster 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e5a0ee96d6cbd535a352af5bfaa3f2ff1437220217d6028437d14144e86fdde2" 1122 | "checksum aster 0.21.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0d87f5cd2d3b78d02991c3af9ad376a6c2e860f3cdcf7cd8111b2ab9c8c19e22" 1123 | "checksum aster 0.22.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3c2e21e476ef6522e1762461ddbd1eba4d049c9a86619ccd03226b09f3d0741e" 1124 | "checksum bit-set 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d9bf6104718e80d7b26a68fdbacff3481cfc05df670821affc7e9cbc1884400c" 1125 | "checksum bit-vec 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "5b97c2c8e8bbb4251754f559df8af22fb264853c7d009084a576cdf12565089d" 1126 | "checksum bitflags 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8dead7461c1127cf637931a1e50934eb6eee8bff2f74433ac7909e9afcee04a3" 1127 | "checksum bitflags 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4f67931368edf3a9a51d29886d245f1c3db2f1ef0dcc9e35ff70341b78c10d23" 1128 | "checksum bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d" 1129 | "checksum byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0fc10e8cc6b2580fda3f36eb6dc5316657f812a3df879a44a66fc9f0fdbc4855" 1130 | "checksum bytes 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c129aff112dcc562970abb69e2508b40850dd24c274761bb50fb8a0067ba6c27" 1131 | "checksum cfg-if 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de1e760d7b6535af4241fca8bd8adf68e2e7edacc6b29f5d399050c5e48cf88c" 1132 | "checksum cookie 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0e3d6405328b6edb412158b3b7710e2634e23f3614b9bb1c412df7952489a626" 1133 | "checksum dns-parser 0.3.2 (git+http://github.com/plietar/dns-parser)" = "" 1134 | "checksum env_logger 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "82dcb9ceed3868a03b335657b85a159736c961900f7e7747d3b0b97b9ccb5ccb" 1135 | "checksum eventual 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b9bda6d089b434ca50f3d6feb5fca421309b8bac97b8be9af51cff879fa3f54b" 1136 | "checksum extprim 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e16638eb41eb5d4cd055b5e2bea4006a9001ecb0467ca81314f8be1d611522b8" 1137 | "checksum gcc 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)" = "91ecd03771effb0c968fd6950b37e89476a578aaf1c70297d8e92b6516ec3312" 1138 | "checksum getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9047cfbd08a437050b363d35ef160452c5fe8ea5187ae0a624708c91581d685" 1139 | "checksum groupable 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "32619942b8be646939eaf3db0602b39f5229b74575b67efc897811ded1db4e57" 1140 | "checksum hpack 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3d2da7d3a34cf6406d9d700111b8eafafe9a251de41ae71d8052748259343b58" 1141 | "checksum httparse 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "46534074dbb80b070d60a5cb8ecadd8963a00a438ae1a95268850a7ef73b67ae" 1142 | "checksum hyper 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bb0f4d00bb781e559b6e66ae4b5479df0fdf9ab15949f52fa2f1f5de16d4cc07" 1143 | "checksum hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)" = "eb27e8a3e8f17ac43ffa41bbda9cf5ad3f9f13ef66fa4873409d4902310275f7" 1144 | "checksum idna 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1053236e00ce4f668aeca4a769a09b3bf5a682d802abd6f3cb39374f6b162c11" 1145 | "checksum itoa 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ae3088ea4baeceb0284ee9eea42f591226e6beaecf65373e41b38d95a1b8e7a1" 1146 | "checksum json_macros 0.3.1 (git+https://github.com/plietar/json_macros)" = "" 1147 | "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" 1148 | "checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" 1149 | "checksum lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "cf186d1a8aa5f5bee5fd662bc9c1b949e0259e1bcc379d1f006847b0080c7417" 1150 | "checksum lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "49247ec2a285bb3dcb23cbd9c35193c025e7251bfce77c1d5da97e6362dffe7f" 1151 | "checksum libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)" = "23e3757828fa702a20072c37ff47938e9dd331b92fac6e223d26d4b7a55f7ee2" 1152 | "checksum liblmdb-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b56d07dcf983f9b6679f768df73c72671d0087bd66329baabb63325f4f592677" 1153 | "checksum linear-map 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8f947d2a0ca958037e42a430bc7ea4369f97b60a2002bd927b84404509cc64cf" 1154 | "checksum lmdb-rs 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f15b872c3d8567e5e8c041e317713d20fe1bdf8d9ee7b730ffa456a8ef3cedb7" 1155 | "checksum log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ab83497bf8bf4ed2a74259c1c802351fcd67a65baa86394b6ba73c36f4838054" 1156 | "checksum matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "15305656809ce5a4805b1ff2946892810992197ce1270ff79baded852187942e" 1157 | "checksum mdns 0.1.0 (git+http://github.com/plietar/rust-mdns)" = "" 1158 | "checksum memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d8b629fb514376c675b98c1421e80b151d3817ac42d7c667717d282761418d20" 1159 | "checksum mime 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b5c93a4bd787ddc6e7833c519b73a50883deb5863d76d9b71eb8216fb7f94e66" 1160 | "checksum mio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a637d1ca14eacae06296a008fa7ad955347e34efcb5891cfd8ba05491a37907e" 1161 | "checksum miow 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d5bfc6782530ac8ace97af10a540054a37126b63b0702ddaaa243b73b5745b9a" 1162 | "checksum modifier 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "41f5c9112cb662acd3b204077e0de5bc66305fa8df65c8019d5adb10e9ab6e58" 1163 | "checksum multimap 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e85cb6b79f81830421066428f1f8f47032d77843dc569040a7d056b80f95d5d4" 1164 | "checksum mustache 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f2fac05c29a9b1fe86c828ec974d6f027679576711a246711c476e548bf7d741" 1165 | "checksum net2 0.2.26 (registry+https://github.com/rust-lang/crates.io-index)" = "5edf9cb6be97212423aed9413dd4729d62b370b5e1c571750e882cebbbc1e3e2" 1166 | "checksum nickel 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e1f0a8fcf0538d013715662f571aeeaa124592eae35226f8ddf2adb98f5df98b" 1167 | "checksum nix 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bfb3ddedaa14746434a02041940495bf11325c22f6d36125d3bdd56090d50a79" 1168 | "checksum num 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)" = "5a9699207fab8b02bd0e56f8f06fee3f26d640303130de548898b4c9704f6d01" 1169 | "checksum num-bigint 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)" = "88b14378471f7c2adc5262f05b4701ef53e8da376453a8d8fee48e51db745e49" 1170 | "checksum num-complex 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)" = "f0c78e054dd19c3fd03419ade63fa661e9c49bb890ce3beb4eee5b7baf93f92f" 1171 | "checksum num-integer 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "fb24d9bfb3f222010df27995441ded1e954f8f69cd35021f6bef02ca9552fb92" 1172 | "checksum num-iter 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "287a1c9969a847055e1122ec0ea7a5c5d6f72aad97934e131c83d5c08ab4e45c" 1173 | "checksum num-rational 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)" = "54ff603b8334a72fbb27fe66948aac0abaaa40231b3cecd189e76162f6f38aaf" 1174 | "checksum num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)" = "8359ea48994f253fa958b5b90b013728b06f54872e5a58bce39540fcdd0f2527" 1175 | "checksum num_cpus 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "cee7e88156f3f9e19bdd598f8d6c9db7bf4078f99f8381f43a55b09648d1a6e3" 1176 | "checksum ogg-sys 0.0.9 (registry+https://github.com/rust-lang/crates.io-index)" = "a95b8c172e17df1a41bf8d666301d3b2c4efeb90d9d0415e2a4dc0668b35fdb2" 1177 | "checksum pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8cee804ecc7eaf201a4a207241472cc870e825206f6c031e3ee2a72fa425f2fa" 1178 | "checksum plugin 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "1a6a0dc3910bc8db877ffed8e457763b317cf880df4ae19109b9f77d277cf6e0" 1179 | "checksum protobuf 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)" = "6ec4c2fe04370298218a09ab53a534febf54c160c5554e4de987b6d73c916d5d" 1180 | "checksum protobuf_build 0.1.1 (git+https://github.com/plietar/rust-protobuf-build.git)" = "" 1181 | "checksum protobuf_macros 0.6.0 (git+https://github.com/plietar/rust-protobuf-macros)" = "" 1182 | "checksum quasi 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "621ed00c72a1279d3272b5ad7137302e8f493ba19f726dcb5a3c7c9774972a64" 1183 | "checksum quasi 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "314e56e9e59af71a5b1f09fab15e8e66ab2ccb786688f8d2e04d98b8d7cbc161" 1184 | "checksum quasi_codegen 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "16abe1f47324d977d89439e238ecc4b965a56948f2113500f45c8a46733e3536" 1185 | "checksum quasi_codegen 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1a3856abd5ec12f873eeac0837cce65ac33814ed4acba287a9e806620763d4b7" 1186 | "checksum quick-error 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7ac990ab4e038dd8481a5e3fd00641067fcfc674ad663f3222752ed5284e05d4" 1187 | "checksum quick-error 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0aad603e8d7fb67da22dbdf1f4b826ce8829e406124109e73cf1b2454b93a71c" 1188 | "checksum rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "2791d88c6defac799c3f20d74f094ca33b9332612d9aef9078519c82e4fe04a5" 1189 | "checksum regex 0.1.73 (registry+https://github.com/rust-lang/crates.io-index)" = "56b7ee9f764ecf412c6e2fff779bca4b22980517ae335a21aeaf4e32625a5df2" 1190 | "checksum regex-syntax 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "31040aad7470ad9d8c46302dcffba337bb4289ca5da2e3cd6e37b64109a85199" 1191 | "checksum rotor 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "07a6d6ac669b5c7623d7270f657e7fe60bd1d07f37d99fd5b9ea38c273834c14" 1192 | "checksum rpassword 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "320da1dfcf5c570a6c07ff60bb7cd4cdc986d2ea89caea139f2247371ab6a1df" 1193 | "checksum rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)" = "f76d05d3993fd5f4af9434e8e436db163a12a9d40e1a58a726f27a01dfd12a2a" 1194 | "checksum rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)" = "6159e4e6e559c81bd706afe9c8fd68f547d3e851ce12e76b1de7914bab61691b" 1195 | "checksum rustc_version 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "c5f5376ea5e30ce23c03eb77cbe4962b988deead10910c372b226388b594c084" 1196 | "checksum semver 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)" = "d4f410fedcf71af0345d7607d246e7ad15faaadd49d240ee3b24e5dc21a820ac" 1197 | "checksum serde 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)" = "1b0e0732aa8ec4267f61815a396a942ba3525062e3bd5520aa8419927cfc0a92" 1198 | "checksum serde_codegen 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)" = "973836af70870533bc6a332488ded6aef80a5ff507b663e8b4e1ef44580ea8fd" 1199 | "checksum serde_codegen_internals 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "eed6f11ba7400225025b44c77b4eca1655958aac6c586c5ec9c76fd5597ef849" 1200 | "checksum serde_json 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b22e8a0554f31cb0f501e027de07b253553b308124f61c57598b9678dba35c0b" 1201 | "checksum shannon 0.1.1 (git+https://github.com/plietar/rust-shannon)" = "" 1202 | "checksum shannon-sys 0.1.0 (git+https://github.com/plietar/rust-shannon)" = "" 1203 | "checksum slab 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d807fd58c4181bbabed77cb3b891ba9748241a552bcc5be698faaebefc54f46e" 1204 | "checksum solicit 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "172382bac9424588d7840732b250faeeef88942e37b6e35317dce98cafdd75b2" 1205 | "checksum syncbox 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "05bc2b72659ac27a2d0e7c4166c8596578197c4c41f767deab12c81f523b85c7" 1206 | "checksum syntex 0.37.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4642a668e6170b569781ce9415fb28713ce0ab0ebca17e967283108312c7aa5d" 1207 | "checksum syntex 0.38.0 (registry+https://github.com/rust-lang/crates.io-index)" = "896d047c8eca23493dfe203e24de056ca3fbcd2f7f9fce2ea0264759e3f827e7" 1208 | "checksum syntex 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8cdab48fb1d177756cac40894a2f12ee8e37beadb0d220855343093af7411cbd" 1209 | "checksum syntex_errors 0.37.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0f4567a63a22bba14a5cea8c74bba03c50b0fbead40fb2e54d353fef0ce513f6" 1210 | "checksum syntex_errors 0.38.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8e3c2258334fabaf5f1ab617120873b0e98c000b44922dddd87114d9624ae72e" 1211 | "checksum syntex_errors 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b2b48e32b90ebbd428cfbcb768fa2b798b6869100bd5980f433eb9c0aab14d0" 1212 | "checksum syntex_pos 0.37.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9866f36497b625c54ecd64a3a96f5f5c862e9160bcae039563754de493e211fa" 1213 | "checksum syntex_pos 0.38.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2c9e05ba6a576789f42abe0b7cf31ec7a287842f2ad108e8bc75c33ccee05841" 1214 | "checksum syntex_pos 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f0e5253631b0329f46ebcae63c2db016d4c8171eaa940610cc894f45617ebe92" 1215 | "checksum syntex_syntax 0.37.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4dfbd41e8077a4335d602d4d90e20afb331554ca179785b2ef4c1390b7523949" 1216 | "checksum syntex_syntax 0.38.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e97cfcd911a5113fd13e6b47d8dc391923752acc53c675a504f0bcbc2b8d7a42" 1217 | "checksum syntex_syntax 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0834c549cf3abdf728c0696fe097fd158951bfbb105d8cc06f6d0ceb7fa432f0" 1218 | "checksum tempfile 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "9270837a93bad1b1dac18fe67e786b3c960513af86231f6f4f57fddd594ff0c8" 1219 | "checksum term 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "3deff8a2b3b6607d6d7cc32ac25c0b33709453ca9cceac006caac51e963cf94a" 1220 | "checksum termios 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d5d9cf598a6d7ce700a4e6a9199da127e6819a61e64b68609683cc9a01b5683a" 1221 | "checksum thread-id 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a9539db560102d1cef46b8b78ce737ff0bb64e7e18d35b2a5688f7d097d0ff03" 1222 | "checksum thread_local 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "55dd963dbaeadc08aa7266bf7f91c3154a7805e32bb94b820b769d2ef3b4744d" 1223 | "checksum time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)" = "3c7ec6d62a20df54e07ab3b78b9a3932972f4b7981de295563686849eb3989af" 1224 | "checksum traitobject 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "07eaeb7689bb7fca7ce15628319635758eda769fed481ecfe6686ddef2600616" 1225 | "checksum traitobject 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "9dc23794ff47c95882da6f9d15de9a6be14987760a28cc0aafb40b7675ef09d8" 1226 | "checksum typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1410f6f91f21d1612654e7cc69193b0334f909dcf2c790c4826254fbb86f8887" 1227 | "checksum typemap 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "653be63c80a3296da5551e1bfd2cca35227e13cdd08c6668903ae2f4f77aa1f6" 1228 | "checksum unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "13a5906ca2b98c799f4b1ab4557b76367ebd6ae5ef14930ec841c74aed5f3764" 1229 | "checksum unicode-bidi 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c1f7ceb96afdfeedee42bade65a0d585a6a0106f681b6749c8ff4daa8df30b3f" 1230 | "checksum unicode-normalization 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "26643a2f83bac55f1976fb716c10234485f9202dcd65cfbdf9da49867b271172" 1231 | "checksum unicode-xid 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "36dff09cafb4ec7c8cf0023eb0b686cb6ce65499116a12201c9e11840ca01beb" 1232 | "checksum unsafe-any 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b351086021ebc264aea3ab4f94d61d889d98e5e9ec2d985d993f50133537fd3a" 1233 | "checksum url 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4a3440c1ed62af4a2aee71c6fb78ef32ddcb75cfa24bf42f45e07c02b6d6a2f6" 1234 | "checksum url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "afe9ec54bc4db14bc8744b7fed060d785ac756791450959b2248443319d5b119" 1235 | "checksum utf8-ranges 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1ca13c08c41c9c3e04224ed9ff80461d97e121589ff27c753a16cb10830ae0f" 1236 | "checksum uuid 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "885acc3b17fdef6230d1f7765dff1106dfd5e75a93c2f26459fbf600ed6dcc14" 1237 | "checksum vergen 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c3365f36c57e5df714a34be40902b27a992eeddb9996eca52d0584611cf885d" 1238 | "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" 1239 | "checksum vorbis 0.0.14 (registry+https://github.com/rust-lang/crates.io-index)" = "5e8a194457075360557b82dac78f7ca2d65bbb6679bccfabae5f7c8c706cc776" 1240 | "checksum vorbis-sys 0.0.8 (registry+https://github.com/rust-lang/crates.io-index)" = "729e1f15395850b4e6d19ca0cd1d42ef44707503a53b69d40ff49182b3c5589d" 1241 | "checksum vorbisfile-sys 0.0.8 (registry+https://github.com/rust-lang/crates.io-index)" = "4f4306d7e1ac4699b55e20de9483750b90c250913188efd7484db6bfbe9042d1" 1242 | "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" 1243 | "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" 1244 | "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" 1245 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "spotifyd-http" 3 | version = "0.1.0" 4 | authors = ["Simon Persson "] 5 | 6 | [dependencies] 7 | librespot = { git="https://github.com/SimonPersson/librespot.git", default-features = false, features=["with-syntex"]} 8 | getopts = "0.2" 9 | log = "0.3" 10 | nickel = "0.9" 11 | rustc-serialize = "0.3" 12 | env_logger = "0.3" 13 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DEPRECATED 2 | 3 | I have stopped working on this API as Spotify have released an official API with a similar use case: 4 | https://developer.spotify.com/web-api/web-api-connect-endpoint-reference/ 5 | 6 | # Spotifyd-http 7 | 8 | This web server remote controls Spotify Connect devices via HTTP requests. 9 | 10 | ## Methods 11 | 12 | These are the currently supported methods: 13 | 14 | ### GET /devices 15 | Returns a list of device ID/Name pairs. 16 | 17 | ### PUT /device_id/{play, pause, next, prev} 18 | Plays, pauses, skips, and returns to previous song. 19 | 20 | ### {GET, PUT, POST} /device_id/tracks 21 | Gets, replaces, or appends tracks to the playlist. The `PUT` and `POST` take 22 | one or more `id` parameters. Example: 23 | ```bash 24 | TRACKS="id=2BhU0Hl5OatWiCW93pE2b8&id=731OW49heGHCMrMOREHYlY&id=6zAPaRDoT99ThFtIXUJwhO" 25 | curl -X POST -d "$TRACKS" 127.0.0.1:6767/device_id/tracks 26 | ``` 27 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | #[macro_use] 2 | extern crate nickel; 3 | extern crate librespot; 4 | extern crate getopts; 5 | extern crate rustc_serialize; 6 | extern crate env_logger; 7 | 8 | #[macro_use] 9 | extern crate log; 10 | 11 | use std::process::exit; 12 | use std::thread; 13 | use std::env; 14 | 15 | use librespot::spirc::SpircManager; 16 | use librespot::main_helper; 17 | 18 | mod web_server; 19 | 20 | fn usage(program: &str, opts: &getopts::Options) -> String { 21 | let brief = format!("Usage: {} [options]", program); 22 | format!("{}", opts.usage(&brief)) 23 | } 24 | 25 | fn main() { 26 | if env::var("RUST_LOG").is_err() { 27 | env::set_var("RUST_LOG", "error") 28 | } 29 | env_logger::init().unwrap(); 30 | 31 | let mut opts = getopts::Options::new(); 32 | main_helper::add_session_arguments(&mut opts); 33 | main_helper::add_authentication_arguments(&mut opts); 34 | main_helper::add_player_arguments(&mut opts); 35 | 36 | let args: Vec = std::env::args().collect(); 37 | 38 | let matches = match opts.parse(&args[1..]) { 39 | Ok(m) => m, 40 | Err(f) => { 41 | error!("Error: {}\n{}", f.to_string(), usage(&args[0], &opts)); 42 | exit(1) 43 | } 44 | }; 45 | 46 | let session = main_helper::create_session(&matches); 47 | let credentials = main_helper::get_credentials(&session, &matches); 48 | session.login(credentials).unwrap(); 49 | 50 | let spirc_runner = SpircManager::new(session.clone(), None); 51 | let spirc_remote = spirc_runner.clone(); 52 | thread::spawn(move || spirc_runner.run()); 53 | thread::spawn(move || { 54 | web_server::run(spirc_remote); 55 | }); 56 | 57 | loop { 58 | session.poll(); 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /src/web_server.rs: -------------------------------------------------------------------------------- 1 | use nickel::{Nickel, HttpRouter, FormBody, Request, Response, MiddlewareResult}; 2 | use nickel::status::StatusCode; 3 | 4 | use librespot::spirc::SpircManager; 5 | use librespot::util::SpotifyId; 6 | 7 | use rustc_serialize::json::ToJson; 8 | 9 | fn ok(_: T) -> StatusCode { 10 | StatusCode::Ok 11 | } 12 | 13 | fn enable_cors<'mw>(_req: &mut Request, mut res: Response<'mw>) -> MiddlewareResult<'mw> { 14 | res.headers_mut() 15 | .set_raw("Access-Control-Allow-Origin", vec![b"*".to_vec()]); 16 | res.headers_mut() 17 | .set_raw("Access-Control-Allow-Headers", 18 | vec![b"Origin X-Requested-With Content-Type Accept".to_vec()]); 19 | res.next_middleware() 20 | } 21 | 22 | pub fn run(spirc: SpircManager) { 23 | let mut server = Nickel::new(); 24 | 25 | server.utilize(enable_cors); 26 | 27 | let spirc_device_list = spirc.clone(); 28 | server.get("/devices", 29 | middleware!(spirc_device_list.devices().to_json())); 30 | 31 | let spirc_get_tracks = spirc.clone(); 32 | server.get("/:device/:tracks", 33 | middleware! { |req, res| 34 | if let Some(tracks) = spirc_get_tracks.device_tracks(req.param("device").unwrap()) { 35 | return res.send(tracks.ids 36 | .iter() 37 | .map(SpotifyId::to_base62) 38 | .collect::>().to_json()); 39 | } 40 | 41 | (StatusCode::NotFound, "No tracks for that device id.") 42 | }); 43 | 44 | let spirc_put_tracks = spirc.clone(); 45 | server.put("/:device/tracks", 46 | middleware! { |req, res| 47 | let device = req.param("device").unwrap().to_owned(); 48 | let form_data = try_with!(res, req.form_body()); 49 | 50 | if let Some(id_strs) = form_data.all("id") { 51 | let tracks = id_strs.iter().map(|id| SpotifyId::from_base62(&*id)); 52 | spirc_put_tracks.clone().send_replace_queue(&*device, tracks); 53 | StatusCode::Ok 54 | } else { 55 | StatusCode::BadRequest 56 | } 57 | }); 58 | 59 | let spirc_post_tracks = spirc.clone(); 60 | server.post("/:device/tracks", 61 | middleware! { |req, res| 62 | let device = req.param("device").unwrap().to_owned(); 63 | let form_data = try_with!(res, req.form_body()); 64 | 65 | if let Some(id_strs) = form_data.all("id") { 66 | let tracks = id_strs.iter().map(|id| SpotifyId::from_base62(&*id)); 67 | spirc_post_tracks.clone().send_append_tracks(&*device, tracks); 68 | StatusCode::Ok 69 | } else { 70 | StatusCode::BadRequest 71 | } 72 | }); 73 | 74 | let spirc_cmd = spirc.clone(); 75 | server.put("/:device/:cmd", 76 | middleware!(|req| { 77 | match req.param("cmd") { 78 | Some("pause") => ok(spirc_cmd.send_pause(req.param("device").unwrap())), 79 | Some("play") => ok(spirc_cmd.send_play(req.param("device").unwrap())), 80 | Some("next") => ok(spirc_cmd.send_next(req.param("device").unwrap())), 81 | Some("prev") => ok(spirc_cmd.send_prev(req.param("device").unwrap())), 82 | _ => StatusCode::NotFound, 83 | } 84 | })); 85 | 86 | server.listen("0.0.0.0:6767"); 87 | } 88 | --------------------------------------------------------------------------------