diff --git a/.gitignore b/.gitignore index 46dff00229..038ad02a35 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ node_modules package-lock.json **/*.rs.bk *.log +*.cassette net_ipc/tests/node-p2p-ipc build_docs_key *.orig diff --git a/Cargo.lock b/Cargo.lock index 81407a3f69..4639b84465 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10,7 +10,7 @@ name = "aho-corasick" version = "0.6.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -67,6 +67,11 @@ name = "autocfg" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "autocfg" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "backtrace" version = "0.3.27" @@ -84,7 +89,7 @@ name = "backtrace-sys" version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.49 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -158,7 +163,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "constant_time_eq 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -196,11 +201,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "bstr" -version = "0.2.8" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "regex-automata 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -231,7 +236,7 @@ dependencies = [ [[package]] name = "bytes" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -248,7 +253,7 @@ name = "bzip2-sys" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.49 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -270,7 +275,7 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.49" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -338,7 +343,7 @@ name = "cmake" version = "0.1.42" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.49 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -351,7 +356,7 @@ dependencies = [ [[package]] name = "constant_time_eq" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -387,9 +392,9 @@ dependencies = [ "cranelift-codegen-shared 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)", "cranelift-entity 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "target-lexicon 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -506,7 +511,7 @@ name = "crypto-mac" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "constant_time_eq 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "generic-array 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -521,12 +526,12 @@ dependencies = [ [[package]] name = "csv" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bstr 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "bstr 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", "csv-core 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", + "itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -536,7 +541,7 @@ name = "csv-core" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -545,7 +550,7 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -610,7 +615,7 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_users 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_users 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -630,7 +635,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_users 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_users 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -646,7 +651,7 @@ dependencies = [ [[package]] name = "dtoa" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -670,9 +675,9 @@ name = "dynomite-derive" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -702,7 +707,7 @@ dependencies = [ "humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "termcolor 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -714,7 +719,7 @@ dependencies = [ "humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "termcolor 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -768,9 +773,9 @@ name = "failure_derive" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", "synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -803,7 +808,7 @@ dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "miniz_oxide 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "miniz_oxide 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -960,9 +965,9 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro-hack 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1015,7 +1020,7 @@ dependencies = [ "futures-macro 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "futures-sink 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "futures-task 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "pin-utils 0.1.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro-hack 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro-nested 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1031,7 +1036,7 @@ dependencies = [ "futures-core-preview 0.3.0-alpha.17 (registry+https://github.com/rust-lang/crates.io-index)", "futures-io-preview 0.3.0-alpha.17 (registry+https://github.com/rust-lang/crates.io-index)", "futures-sink-preview 0.3.0-alpha.17 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "pin-utils 0.1.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1059,13 +1064,12 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.1.3" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1086,7 +1090,7 @@ dependencies = [ "aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1105,7 +1109,7 @@ dependencies = [ "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", - "indexmap 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "string 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1166,6 +1170,7 @@ dependencies = [ "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", "sim2h 0.0.42-alpha5", + "sim2h_client 0.0.42-alpha5", "structopt 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "tar 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", "tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1554,7 +1559,7 @@ version = "0.0.42-alpha5" dependencies = [ "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", - "csv 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "csv 1.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "holochain_common 0.0.42-alpha5", "holochain_locksmith 0.0.42-alpha5", @@ -1778,6 +1783,19 @@ dependencies = [ "shrinkwraprs 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "holochain_tracing_macros" +version = "0.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "holochain_tracing 0.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "newrelic 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "holochain_tracing_macros" version = "0.0.14" @@ -1789,7 +1807,38 @@ dependencies = [ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "newrelic 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "holochain_walkman" +version = "0.0.42-alpha5" +dependencies = [ + "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "holochain_walkman_types 0.0.42-alpha5", + "in_stream 0.0.42-alpha5", + "lib3h_protocol 0.0.31 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_millis 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "sim2h 0.0.42-alpha5", + "sim2h_client 0.0.42-alpha5", + "snap 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "structopt 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "url 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "url2 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "holochain_walkman_types" +version = "0.0.42-alpha5" +dependencies = [ + "regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_millis 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "url 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1825,7 +1874,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", + "itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1884,7 +1933,7 @@ dependencies = [ "http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", "httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", + "itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1918,7 +1967,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-normalization 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-normalization 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1928,7 +1977,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-normalization 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-normalization 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1940,12 +1989,12 @@ dependencies = [ "globset 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "same-file 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", - "walkdir 2.2.9 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1982,10 +2031,10 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2023,7 +2072,7 @@ dependencies = [ [[package]] name = "itoa" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -2034,7 +2083,7 @@ dependencies = [ "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", - "treediff 3.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "treediff 3.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2279,7 +2328,7 @@ name = "lmdb-rkv-sys" version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.49 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2366,7 +2415,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "memchr" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2418,7 +2467,7 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2545,7 +2594,7 @@ dependencies = [ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "openssl 0.10.25 (registry+https://github.com/rust-lang/crates.io-index)", "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl-sys 0.9.53 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl-sys 0.9.54 (registry+https://github.com/rust-lang/crates.io-index)", "schannel 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", "security-framework 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "security-framework-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2603,7 +2652,7 @@ version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cc 1.0.49 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2615,7 +2664,7 @@ version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cc 1.0.49 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2745,7 +2794,7 @@ dependencies = [ "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl-sys 0.9.53 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl-sys 0.9.54 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2758,16 +2807,16 @@ name = "openssl-src" version = "111.6.1+1.1.1d" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.49 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "openssl-sys" -version = "0.9.53" +version = "0.9.54" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "cc 1.0.49 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", "openssl-src 111.6.1+1.1.1d (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2962,9 +3011,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "pest 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "pest_meta 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3074,7 +3123,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", - "csv 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "csv 1.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "encode_unicode 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "term 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3086,9 +3135,9 @@ name = "proc-macro-error" version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3104,9 +3153,9 @@ name = "proc-macro-hack" version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3137,7 +3186,7 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3169,7 +3218,7 @@ name = "quote" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3228,7 +3277,7 @@ name = "rand" version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "getrandom 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", "rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3271,7 +3320,7 @@ name = "rand_core" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "getrandom 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3352,7 +3401,7 @@ version = "7.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cc 1.0.49 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3393,13 +3442,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "redox_users" -version = "0.3.1" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", - "rust-argon2 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rust-argon2 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3413,8 +3461,8 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "regex-syntax 0.6.14 (registry+https://github.com/rust-lang/crates.io-index)", "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "utf8-ranges 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3429,7 +3477,7 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.12" +version = "0.6.14" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -3565,7 +3613,7 @@ dependencies = [ "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", "shlex 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-process 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-process 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3610,12 +3658,13 @@ dependencies = [ [[package]] name = "rust-argon2" -version = "0.5.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "blake2b_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", + "constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3643,7 +3692,7 @@ name = "rust_sodium_holochain_fork-sys" version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.49 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", "flate2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", "http_req 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3702,7 +3751,7 @@ dependencies = [ "dirs 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3727,10 +3776,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "same-file" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3843,12 +3892,20 @@ name = "serde_json" version = "1.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "indexmap 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", + "indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "ryu 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "serde_millis" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "serde_regex" version = "0.3.1" @@ -3871,8 +3928,8 @@ name = "serde_urlencoded" version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", - "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", + "dtoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", + "itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3882,7 +3939,7 @@ name = "serde_yaml" version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", + "dtoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "yaml-rust 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4008,6 +4065,7 @@ dependencies = [ "holochain_persistence_api 0.0.13 (registry+https://github.com/rust-lang/crates.io-index)", "holochain_tracing 0.0.13 (registry+https://github.com/rust-lang/crates.io-index)", "holochain_tracing_macros 0.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "holochain_walkman_types 0.0.42-alpha5", "in_stream 0.0.42-alpha5", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "lib3h 0.0.31 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4026,6 +4084,7 @@ dependencies = [ "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", + "sim2h_client 0.0.42-alpha5", "snowflake 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "threadpool 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4035,6 +4094,46 @@ dependencies = [ "uuid 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "sim2h_client" +version = "0.0.42-alpha5" +dependencies = [ + "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "colored 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "dns-lookup 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "flate2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", + "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hcid 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "holochain_json_api 0.0.17 (registry+https://github.com/rust-lang/crates.io-index)", + "holochain_persistence_api 0.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "holochain_persistence_file 0.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "holochain_tracing_macros 0.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "holochain_wasm_utils 0.0.42-alpha5", + "ignore 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "in_stream 0.0.42-alpha5", + "json-patch 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "lib3h_crypto_api 0.0.31 (registry+https://github.com/rust-lang/crates.io-index)", + "lib3h_protocol 0.0.31 (registry+https://github.com/rust-lang/crates.io-index)", + "lib3h_sodium 0.0.31 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "newrelic 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "reqwest 0.9.11 (registry+https://github.com/rust-lang/crates.io-index)", + "rpassword 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rustyline 5.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", + "sim2h 0.0.42-alpha5", + "structopt 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "tar 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", + "tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tera 0.11.20 (registry+https://github.com/rust-lang/crates.io-index)", + "toml 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "url2 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "sim2h_server" version = "0.0.42-alpha5" @@ -4086,8 +4185,17 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.1.0" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "snap" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "snowflake" @@ -4179,9 +4287,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro-error 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4211,10 +4319,10 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4235,9 +4343,9 @@ name = "synstructure" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4307,10 +4415,10 @@ dependencies = [ [[package]] name = "termcolor" -version = "1.0.5" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "wincolor 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4352,20 +4460,20 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "thiserror-impl 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror-impl 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "thiserror-impl" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4451,13 +4559,13 @@ name = "tokio" version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)", "mio-named-pipes 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4522,18 +4630,21 @@ name = "tokio-macros" version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-process" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ + "crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)", "mio-named-pipes 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4688,7 +4799,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "treediff" -version = "3.0.1" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4834,10 +4945,10 @@ dependencies = [ [[package]] name = "unicode-normalization" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "smallvec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4997,19 +5108,19 @@ name = "wabt-sys" version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.49 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", "cmake 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", "glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "walkdir" -version = "2.2.9" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "same-file 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -5022,6 +5133,11 @@ dependencies = [ "try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "wasm-bindgen" version = "0.2.32" @@ -5101,7 +5217,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cranelift-codegen 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "target-lexicon 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -5113,7 +5229,7 @@ dependencies = [ "cranelift-codegen 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)", "cranelift-entity 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)", "wasmer-clif-fork-frontend 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)", "wasmparser 0.45.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -5138,11 +5254,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bincode 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "blake2b_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", - "cc 1.0.49 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", "digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "errno 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "indexmap 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -5209,7 +5325,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "winapi-util" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -5220,15 +5336,6 @@ name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "wincolor" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "winutil" version = "0.1.1" @@ -5351,6 +5458,7 @@ dependencies = [ "checksum assert_cmd 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b7ac5c260f75e4e4ba87b7342be6edcecbcb3eb6741a0507fda7ad115845cc65" "checksum atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" "checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" +"checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" "checksum backtrace 0.3.27 (registry+https://github.com/rust-lang/crates.io-index)" = "60ef64f0896c6f4bd4f788de337c099b83de8c8129279c0084558af33f45ee19" "checksum backtrace-sys 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6575f128516de27e3ce99689419835fce9643a9b215a14d2b5b685be018491" "checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" @@ -5366,17 +5474,17 @@ dependencies = [ "checksum block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" "checksum block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" "checksum boolinator 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cfa8873f51c92e232f9bac4065cddef41b714152812bfc5f7672ba16d6ef8cd9" -"checksum bstr 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8d6c2c5b58ab920a4f5aeaaca34b4488074e8cc7596af94e6f8c6ff247c60245" +"checksum bstr 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "fe8a65814ca90dfc9705af76bb6ba3c6e2534489a72270e797e603783bb4990b" "checksum byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "560c32574a12a89ecd91f5e742165893f86e3ab98d21f8ea548658eb9eef5f40" "checksum byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" "checksum byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5" "checksum bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" -"checksum bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "10004c15deb332055f7a4a208190aed362cf9a7c2f6ab70a305fba50e1105f38" +"checksum bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "130aac562c0dd69c56b3b1cc8ffd2e17be31d0b6c25b61c96b76231aa23e39e1" "checksum bzip2 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "42b7c3cbf0fa9c1b82308d57191728ca0256cb821220f4e2fd410a72ade26e3b" "checksum bzip2-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6584aa36f5ad4c9247f5323b0a42f37802b37a836f0ad87084d7a33961abe25f" "checksum c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "214238caa1bf3a496ec3392968969cab8549f96ff30652c9e56885329315f6bb" "checksum capnp 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fadfee1d1134072232d629291d39205fa74cde71d2c645c09b7aa321c3dd6f4f" -"checksum cc 1.0.49 (registry+https://github.com/rust-lang/crates.io-index)" = "e450b8da92aa6f274e7c6437692f9f2ce6d701fb73bacfcf87897b3f89a4c20e" +"checksum cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)" = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd" "checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" "checksum chashmap 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ff41a3c2c1e39921b9003de14bf0439c7b63a9039637c291e1a64925d8ddfa45" "checksum chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878" @@ -5386,7 +5494,7 @@ dependencies = [ "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" "checksum cmake 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "81fb25b677f8bf1eb325017cb6bb8452f87969db0fedb4f757b297bee78a7c62" "checksum colored 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6e9a455e156a4271e12fd0246238c380b1e223e3736663c7a18ed8b6362028a9" -"checksum constant_time_eq 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "995a44c877f9212528ccc74b21a232f66ad69001e40ede5bcee2ac9ef2657120" +"checksum constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" "checksum core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "25b9e03f145fd4f2bf705e07b900cd41fc636598fe5dc452fd0db1441c3f496d" "checksum core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b" "checksum cranelift-bforest 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)" = "56aa72ef104c5d634f2f9e84ef2c47e116c1d185fae13f196b97ca84b0a514f1" @@ -5406,7 +5514,7 @@ dependencies = [ "checksum crunchy 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" "checksum crypto-mac 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0999b4ff4d3446d4ddb19a63e9e00c1876e75cd7000d20e57a693b4b3f08d958" "checksum crypto-mac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" -"checksum csv 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "11f8cbd084b9a431d52dfac0b8428a26b68f1061138a7bea18aa56b9cdf55266" +"checksum csv 1.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "00affe7f6ab566df61b4be3ce8cf16bc2576bca0963ceb0955e45d514bf9a279" "checksum csv-core 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "9b5cadb6b25c77aeff80ba701712494213f4a8418fcda2ee11b6560c3ad0bf4c" "checksum ctor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "cd8ce37ad4184ab2ce004c33bf6379185d3b1c95801cab51026bd271bf68eedc" "checksum derive_more 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6d944ac6003ed268757ef1ee686753b57efc5fcf0ebe7b64c9fc81e7e32ff839" @@ -5421,7 +5529,7 @@ dependencies = [ "checksum dirs 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3" "checksum dirs-sys 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "afa0b23de8fd801745c471deffa6e12d248f962c9fd4b4c33787b055599bde7b" "checksum dns-lookup 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "13988670860b076248c74e1b54444efc4f1dec70c8bb25da4b7c0024396b72bf" -"checksum dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ea57b42383d091c85abcc2706240b94ab2a8fa1fc81c10ff23c4de06e2a90b5e" +"checksum dtoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "4358a9e11b9a09cf52383b451b49a169e8d797b68aa02301ff586d70d9661ea3" "checksum dynomite 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9c576fb311131fa07a83bd6609ae2a239e15a22f413742c3d983a491c5e0f68f" "checksum dynomite-derive 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bffe7d062538a8b3fef5f25de87ddd32537da778294dac2350b943c11dff37e2" "checksum either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3" @@ -5470,7 +5578,7 @@ dependencies = [ "checksum gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)" = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" "checksum generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec" "checksum generic-array 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ef25c5683767570c2bbd7deba372926a55eaae9982d7726ee2a1050239d45b9d" -"checksum getrandom 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8d1dffef07351aafe6ef177e4dd2b8dcf503e6bc765dea3b0de9ed149a3db1ec" +"checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" "checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb" "checksum glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" "checksum globset 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4743617a7464bbda3c8aec8558ff2f9429047e025771037df561d383337ff865" @@ -5493,6 +5601,7 @@ dependencies = [ "checksum holochain_persistence_mem 0.0.13 (registry+https://github.com/rust-lang/crates.io-index)" = "60d1482cf3a513b0a7a88a1dd6fe7b04b80a102872e7e6abc01b93c418104194" "checksum holochain_persistence_pickle 0.0.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6b057fe1440e68a14582899785ed255b47931f250957f6900afe7982e9fdaa50" "checksum holochain_tracing 0.0.13 (registry+https://github.com/rust-lang/crates.io-index)" = "e278c08f37341b8d8e09019b6209340e8adc764d1d503dce44da421d29189c6a" +"checksum holochain_tracing_macros 0.0.13 (registry+https://github.com/rust-lang/crates.io-index)" = "65a8c8c78b8311d2c9d4982f248f7739be74543c0f7777f6883a29fe657b2301" "checksum holochain_tracing_macros 0.0.14 (registry+https://github.com/rust-lang/crates.io-index)" = "5006aa447809213b1b60ad40d275c5d1470677a7de9dc60634d350d7f25d3b14" "checksum hostname 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "21ceb46a83a85e824ef93669c8b390009623863b5c195d1ba747292c0c72f94e" "checksum http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)" = "d6ccf5ede3a895d8856620237b2f02972c1bbc78d2965ad7fe8838d4a0ed41f0" @@ -5507,12 +5616,12 @@ dependencies = [ "checksum idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9" "checksum ignore 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ad03ca67dc12474ecd91fdb94d758cbd20cb4e7a78ebe831df26a9b7511e1162" "checksum im 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a1f9b6540e530defef7f2df4ed330d45b739b10450548c74a9913f63ea1acc6b" -"checksum indexmap 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712d7b3ea5827fcb9d4fda14bf4da5f136f0db2ae9c8f4bd4e2d1c6fde4e6db2" +"checksum indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b54058f0a6ff80b6803da8faf8997cde53872b38f4023728f6830b06cd3c0dc" "checksum input_buffer 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8e1b822cc844905551931d6f81608ed5f50a79c1078a4e2b4d42dbc7c1eedfbf" "checksum iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" "checksum itertools 0.7.11 (registry+https://github.com/rust-lang/crates.io-index)" = "0d47946d458e94a1b7bcabbf6521ea7c037062c81f534615abcad76e84d4970d" "checksum itertools 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" -"checksum itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f" +"checksum itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e" "checksum json-patch 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3bde23771b4f5b9900635b0415485323b6d39afa979dcd5541218d67bb9107b4" "checksum jsonrpc-core 14.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9b392c9e8e43a12e6b21160903f473b1066e57fe18477394a93a1efd25654003" "checksum jsonrpc-http-server 14.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2d83d348120edee487c560b7cdd2565055d61cda053aa0d0ef0f8b6a18429048" @@ -5546,14 +5655,14 @@ dependencies = [ "checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" "checksum maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" "checksum md5 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "79c56d6a0b07f9e19282511c83fc5b086364cbae4ba8c7d5f190c3d9b0425a48" -"checksum memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e" +"checksum memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3197e20c7edb283f87c071ddfc7a2cca8f8e0b888c242959846a6fce03c72223" "checksum memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b" "checksum memoffset 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "75189eb85871ea5c2e2c15abbdd541185f63b408415e5051f5cac122d8c774b9" "checksum memory_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "71d96e3f3c0b6325d8ccd83c33b28acb183edcb6c67938ba104ec546854b0882" "checksum mime 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ba626b8a6de5da682e1caa06bdb42a335aee5a84db8e5046a3e8ab17ba0a3ae0" "checksum mime 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)" = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" "checksum mime_guess 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1a0ed03949aef72dbdf3116a383d7b38b4768e6f960528cd6a6044aa9ed68599" -"checksum miniz_oxide 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6f3f74f726ae935c3f514300cc6773a0c9492abc5e972d42ba0c0ebb88757625" +"checksum miniz_oxide 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "aa679ff6578b1cddee93d7e82e263b94a575e0bfced07284eb0c037c1d2416a5" "checksum mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)" = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f" "checksum mio-extras 2.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" "checksum mio-named-pipes 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "f5e374eff525ce1c5b7687c4cef63943e7686524a387933ad27ca7ec43779cb3" @@ -5589,7 +5698,7 @@ dependencies = [ "checksum openssl 0.10.25 (registry+https://github.com/rust-lang/crates.io-index)" = "2f372b2b53ce10fb823a337aaa674e3a7d072b957c6264d0f4ff0bd86e657449" "checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" "checksum openssl-src 111.6.1+1.1.1d (registry+https://github.com/rust-lang/crates.io-index)" = "c91b04cb43c1a8a90e934e0cd612e2a5715d976d2d6cff4490278a0cddf35005" -"checksum openssl-sys 0.9.53 (registry+https://github.com/rust-lang/crates.io-index)" = "465d16ae7fc0e313318f7de5cecf57b2fbe7511fd213978b457e1c96ff46736f" +"checksum openssl-sys 0.9.54 (registry+https://github.com/rust-lang/crates.io-index)" = "1024c0a59774200a555087a6da3f253a9095a5f344e353b212ac4c8b8e450986" "checksum ordered-float 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "18869315e81473c951eb56ad5558bbc56978562d3ecfb87abb7a1e944cea4518" "checksum ordermap 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "a86ed3f5f244b372d6b1a00b72ef7f8876d0bc6a78a4c9985c53614041512063" "checksum output_vt100 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53cdc5b785b7a58c5aad8216b3dfa114df64b0b06ae6e1501cef91df2fbdf8f9" @@ -5632,7 +5741,7 @@ dependencies = [ "checksum proc-macro-nested 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "369a6ed065f249a159e06c45752c780bda2fb53c995718f9e484d08daa9eb42e" "checksum proc-macro2 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cd07deb3c6d1d9ff827999c7f9b04cdfd66b1b17ae508e14fe47b620f2282ae0" "checksum proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)" = "4d317f9caece796be1980837fd5cb3dfec5613ebdb04ad0956deea83ce168915" -"checksum proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "0319972dcae462681daf4da1adeeaa066e3ebd29c69be96c6abb1259d2ee2bcc" +"checksum proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3acb317c6ff86a4e579dfa00fc5e6cca91ecbb4e7eb2df0468805b674eb88548" "checksum quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" "checksum quote 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1eca14c727ad12702eb4b6bfb5a232287dcf8385cb8ca83a3eeaf6519c44c408" "checksum quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)" = "cdd8e04bd9c52e0342b406469d494fcb033be4bdbe5c606016defbb1681411e1" @@ -5660,11 +5769,11 @@ dependencies = [ "checksum rayon-core 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "08a89b46efaf957e52b18062fb2f4660f8b8a4dde1807ca002690868ef2c85a9" "checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" "checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84" -"checksum redox_users 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ecedbca3bf205f8d8f5c2b44d83cd0690e39ee84b951ed649e9f1841132b66d" +"checksum redox_users 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431" "checksum reed-solomon 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "13de68c877a77f35885442ac72c8beb7c2f0b09380c43b734b9d63d1db69ee54" "checksum regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53ee8cfdddb2e0291adfb9f13d31d3bbe0a03c9a402c01b1e24188d86c35b24f" "checksum regex-automata 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "92b73c2a1770c255c240eaa4ee600df1704a38dc3feaa6e949e7fcd4f8dc09f9" -"checksum regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "11a7e20d1cce64ef2fed88b66d347f88bd9babb82845b2b858f3edbf59a4f716" +"checksum regex-syntax 0.6.14 (registry+https://github.com/rust-lang/crates.io-index)" = "b28dfe3fe9badec5dbf0a79a9cccad2cfc2ab5484bdb3e44cbd1ae8b3ba2be06" "checksum remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e" "checksum reqwest 0.9.11 (registry+https://github.com/rust-lang/crates.io-index)" = "e542d9f077c126af32536b6aacc75bb7325400eab8cd0743543be5d91660780d" "checksum rkv 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9aab7c645d32e977e186448b0a5c2c3139a91a7f630cfd8a8c314d1d145e78bf" @@ -5677,7 +5786,7 @@ dependencies = [ "checksum rusoto_dynamodb 0.40.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea354d7f60689a0034d511471bbd12b5c517726ce0951c9455db4f6549331f6" "checksum rusoto_logs 0.40.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8d56342b29248525b62f48118088ac5090a84fa11cec8b159699e1b12607c5ae" "checksum rusoto_sts 0.40.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fade8b78050ebb531fc72abe57eb76a70d8c61cf98a63d3dd81d73b1f2f41c81" -"checksum rust-argon2 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ca4eaef519b494d1f2848fc602d18816fed808a981aedf4f1f00ceb7c9d32cf" +"checksum rust-argon2 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017" "checksum rust-base58 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b313b91fcdc6719ad41fa2dad2b7e810b03833fae4bf911950e15529a5f04439" "checksum rust_sodium_holochain_fork 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3cc07775ce81cac87bfbcc0685102b3ccf65f0f21b2cadd0a5c2e09c9d849996" "checksum rust_sodium_holochain_fork-sys 0.10.4 (registry+https://github.com/rust-lang/crates.io-index)" = "c82dd57067b5c141ee2291e5e4e5e51b98dc485ca446c2cd7c889b507b2fd124" @@ -5689,7 +5798,7 @@ dependencies = [ "checksum ryu 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "b96a9549dc8d48f2c283938303c4b5a77aa29bfbc5b54b084fb1630408899a8f" "checksum ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bfa8506c1de11c9c4e4c38863ccbe02a305c8188e85a05a784c9e11e1c3910c8" "checksum safemem 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" -"checksum same-file 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "585e8ddcedc187886a30fa705c47985c3fa88d06624095856b36ca0b82ff4421" +"checksum same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" "checksum schannel 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "87f550b06b6cba9c8b8be3ee73f391990116bf527450d2556e9b9ce263b9a021" "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" "checksum scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b42e15e59b18a828bbf5c58ea01debb36b9b096346de35d941dcb89009f24a0d" @@ -5704,6 +5813,7 @@ dependencies = [ "checksum serde_cbor 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "45cd6d95391b16cd57e88b68be41d504183b7faae22030c0cc3b3f73dd57b2fd" "checksum serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6eabf4b5914e88e24eea240bb7c9f9a2cbc1bbbe8d961d381975ec3c6b806c" "checksum serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)" = "5a23aa71d4a4d43fdbfaac00eff68ba8a06a51759a89ac3304323e800c4dd40d" +"checksum serde_millis 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e6e2dc780ca5ee2c369d1d01d100270203c4ff923d2a4264812d723766434d00" "checksum serde_regex 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d1385699a81f2d1b18b55cba1e2544d3ed8776db058e62865c0416e861f5ec6" "checksum serde_test 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)" = "70807e147558b5253cb70f55d343db1d07204d773087c96d0f35fced295dba82" "checksum serde_urlencoded 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "642dd69105886af2efd227f75a520ec9b44a820d65bc133a9131f7d229fd165a" @@ -5721,7 +5831,8 @@ dependencies = [ "checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" "checksum slug 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b3bc762e6a4b6c6fcaade73e77f9ebc6991b676f88bb2358bddb56560f073373" "checksum smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6" -"checksum smallvec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "44e59e0c9fa00817912ae6e4e6e3c4fe04455e75699d06eedc7d85917ed8e8f4" +"checksum smallvec 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5c2fb2ec9bcd216a5b0d0ccf31ab17b5ed1d627960edff65bbe95d3ce221cefc" +"checksum snap 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "95d697d63d44ad8b78b8d235bf85b34022a78af292c8918527c5f0cffdde7f43" "checksum snowflake 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "27207bb65232eda1f588cf46db2fee75c0808d557f6b3cf19a75f5d6d7c94df1" "checksum socket2 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)" = "e8b74de517221a2cb01a53349cf54182acdc31a074727d3079068448c0676d85" "checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" @@ -5736,7 +5847,7 @@ dependencies = [ "checksum subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" "checksum syn 0.12.15 (registry+https://github.com/rust-lang/crates.io-index)" = "c97c05b8ebc34ddd6b967994d5c6e9852fa92f8b82b3858c39451f97346dcce5" "checksum syn 0.15.31 (registry+https://github.com/rust-lang/crates.io-index)" = "d2b4cfac95805274c6afdb12d8f770fa2d27c045953e7b630a81801953699a9a" -"checksum syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)" = "1e4ff033220a41d1a57d8125eab57bf5263783dfdcc18688b1dacc6ce9651ef8" +"checksum syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)" = "af6f3550d8dff9ef7dc34d384ac6f107e5d31c8f57d9f28e0081503f547ac8f5" "checksum synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "02353edf96d6e4dc81aea2d8490a7e9db177bf8acb0e951c24940bf866cb313f" "checksum synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545" "checksum take_mut 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" @@ -5745,10 +5856,10 @@ dependencies = [ "checksum tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b86c784c88d98c801132806dadd3819ed29d8600836c4088e855cdf3e178ed8a" "checksum tera 0.11.20 (registry+https://github.com/rust-lang/crates.io-index)" = "4b505279e19d8f7d24b1a9dc58327c9c36174b1a2c7ebdeac70792d017cb64f3" "checksum term 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "edd106a334b7657c10b7c540a0106114feadeb4dc314513e97df481d5d966f42" -"checksum termcolor 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "96d6098003bde162e4277c70665bd87c326f5a0c3f3fbfb285787fa482d54e6e" +"checksum termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f" "checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" -"checksum thiserror 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)" = "6f357d1814b33bc2dc221243f8424104bfe72dbe911d5b71b3816a2dff1c977e" -"checksum thiserror-impl 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)" = "eb2e25d25307eb8436894f727aba8f65d07adf02e5b35a13cebed48bd282bfef" +"checksum thiserror 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)" = "205684fd018ca14432b12cce6ea3d46763311a571c3d294e71ba3f01adcf1aad" +"checksum thiserror-impl 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)" = "57e4d2e50ca050ed44fb58309bdce3efa79948f84f9993ad1978de5eebdce5a7" "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" "checksum threadpool 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e2f0c90a5f3459330ac8bc0d2f879c693bb7a2f59689c1083fc4ef83834da865" "checksum thrift_codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8fb61fb3d0a0af14949f3a6949b2639112e13226647112824f4d081533f9b1a8" @@ -5763,7 +5874,7 @@ dependencies = [ "checksum tokio-fs 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "3fe6dc22b08d6993916647d108a1a7d15b9cd29c4f4496c62b92c45b5041b7af" "checksum tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "5090db468dad16e1a7a54c8c67280c5e4b544f3d3e018f0b913b400261f85926" "checksum tokio-macros 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f4b1e7ed7d5d4c2af3d999904b0eebe76544897cdbfb2b9684bed2174ab20f7c" -"checksum tokio-process 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "88e1281e412013f1ff5787def044a9577a0bed059f451e835f1643201f8b777d" +"checksum tokio-process 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "afbd6ef1b8cc2bd2c2b580d882774d443ebb1c6ceefe35ba9ea4ab586c89dbe8" "checksum tokio-reactor 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "6732fe6b53c8d11178dcb77ac6d9682af27fc6d4cb87789449152e5377377146" "checksum tokio-signal 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "dd6dc5276ea05ce379a16de90083ec80836440d5ef8a6a39545a3207373b8296" "checksum tokio-sync 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "d06554cce1ae4a50f42fba8023918afa931413aded705b560e29600ccf7c6d76" @@ -5776,7 +5887,7 @@ dependencies = [ "checksum trackable 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)" = "11475c3c53b075360eac9794965822cb053996046545f91cf61d90e00b72efa5" "checksum trackable_derive 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0f4062d54dd240bde289717d6b4af18048c3dd552f01a0fd93824f5fc4d2d084" "checksum traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "efd1f82c56340fdf16f2a953d7bda4f8fdffba13d93b00844c25572110b26079" -"checksum treediff 3.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "654d26443bc9632b5e6fa042e1b197abc314760b25524372c5fd9f48a3b1c79f" +"checksum treediff 3.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "761e8d5ad7ce14bb82b7e61ccc0ca961005a275a060b9644a2431aa11553c2ff" "checksum treeline 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41" "checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" "checksum tungstenite 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8a0c2bd5aeb7dcd2bb32e472c8872759308495e5eccc942e929a513cd8d36110" @@ -5793,7 +5904,7 @@ dependencies = [ "checksum unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33" "checksum unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" "checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" -"checksum unicode-normalization 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "b561e267b2326bb4cebfc0ef9e68355c7abe6c6f522aeac2f5bf95d56c59bdcf" +"checksum unicode-normalization 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4" "checksum unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0" "checksum unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479" "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" @@ -5818,8 +5929,9 @@ dependencies = [ "checksum vte 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4f42f536e22f7fcbb407639765c8fd78707a33109301f834a594758bedd6e8cf" "checksum wabt 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "74e463a508e390cc7447e70f640fbf44ad52e1bd095314ace1fdf99516d32add" "checksum wabt-sys 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a6265b25719e82598d104b3717375e37661d41753e2c84cde3f51050c7ed7e3c" -"checksum walkdir 2.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "9658c94fa8b940eab2250bd5a457f9c48b748420d71293b165c8cdbe2f55f71e" +"checksum walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d" "checksum want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "797464475f30ddb8830cc529aaaae648d581f99e2036a928877dfde027ddf6b3" +"checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" "checksum wasm-bindgen 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)" = "710152b9cc4b688f91a23ad1574d0f3d6334ccb883896f6886531dc536944330" "checksum wasm-bindgen-backend 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)" = "1f425d1c38c61c25d6ce5a07411cc9f859fbb1bac0eccdf812d7e7e521d4214a" "checksum wasm-bindgen-macro 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)" = "8541976809a58d1f08c3689c8ec3d98c9a7910794b1642f96dea56beb527aa1e" @@ -5837,9 +5949,8 @@ dependencies = [ "checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6" "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" -"checksum winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9" +"checksum winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4ccfbf554c6ad11084fb7517daca16cfdcaccbdadba4fc336f032a8b12c2ad80" "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -"checksum wincolor 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "96f5016b18804d24db43cebf3c77269e7569b8954a8464501c216cc5e070eaa9" "checksum winutil 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7daf138b6b14196e3830a588acf1e86966c694d3e8fb026fb105b8b5dca07e6e" "checksum ws 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcacc3ba9c1ee43e3fd0846a25489ff22f8906e90775d51b6edbae4b95d71f4" "checksum ws 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a2c47b5798ccc774ffb93ff536aec7c4275d722fd9c740c83cdd1af1f2d94" diff --git a/Cargo.toml b/Cargo.toml index 3929353a8d..3d77ce5fa1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,7 +20,10 @@ members = [ "crates/trycp_server", "crates/sim1h", "crates/sim2h", + "crates/sim2h_client", "crates/sim2h_server", + "crates/walkman_cli", + "crates/walkman_types", "crates/wasm_utils" ] exclude = [ diff --git a/crates/cli/Cargo.toml b/crates/cli/Cargo.toml index 5ab3089e56..beb803a0e0 100644 --- a/crates/cli/Cargo.toml +++ b/crates/cli/Cargo.toml @@ -18,6 +18,7 @@ holochain_locksmith = { version = "=0.0.42-alpha5", path = "../locksmith" } holochain_tracing_macros = "0.0.14" newrelic="0.2" sim2h = { version = "=0.0.42-alpha5", path = "../sim2h" } +sim2h_client = { version = "=0.0.42-alpha5", path = "../sim2h_client" } lib3h_crypto_api = "=0.0.31" in_stream = { version = "=0.0.42-alpha5", path = "../in_stream" } url2 = "=0.0.4" diff --git a/crates/cli/src/cli/mod.rs b/crates/cli/src/cli/mod.rs index f606459e65..1e63b69f32 100644 --- a/crates/cli/src/cli/mod.rs +++ b/crates/cli/src/cli/mod.rs @@ -7,6 +7,7 @@ pub mod package; pub mod run; mod sim2h_client; pub mod test; +mod walkman; pub use self::{ chain_log::{chain_list, chain_log}, @@ -18,4 +19,5 @@ pub use self::{ run::{get_interface_type_string, hc_run_bundle_configuration, hc_run_configuration, run}, sim2h_client::sim2h_client, test::{test, TEST_DIR_NAME}, + walkman::walkman, }; diff --git a/crates/cli/src/cli/sim2h_client.rs b/crates/cli/src/cli/sim2h_client.rs index d3e38da575..71569d0672 100644 --- a/crates/cli/src/cli/sim2h_client.rs +++ b/crates/cli/src/cli/sim2h_client.rs @@ -2,13 +2,9 @@ use crate::NEW_RELIC_LICENSE_KEY; use dns_lookup::lookup_host; use in_stream::*; use lib3h_crypto_api::CryptoSystem; -use lib3h_protocol::data_types::*; use lib3h_sodium::SodiumCryptoSystem; -use sim2h::{ - crypto::{Provenance, SignedWireMessage}, - WireMessage, WIRE_VERSION, -}; -use std::sync::{Arc, Mutex}; +use sim2h::{WireMessage, WIRE_VERSION}; +use sim2h_client::Sim2hClient; use url2::prelude::*; #[holochain_tracing_macros::newrelic_autotrace(HOLOCHAIN_CLI)] @@ -36,8 +32,8 @@ pub fn sim2h_client(url_string: String, message_string: String) -> Result<(), St let url = Url2::parse(format!("{}://{}:{}", url.scheme(), ip, maybe_port.unwrap())); println!("connecting to: {}", url); - let mut job = Job::new(&url)?; - job.send_wire(match message_string.as_ref() { + let mut client = Sim2hClient::new(&url)?; + client.send_wire(match message_string.as_ref() { "ping" => WireMessage::Ping, "hello" => WireMessage::Hello(WIRE_VERSION), "status" => WireMessage::Status, @@ -54,7 +50,7 @@ pub fn sim2h_client(url_string: String, message_string: String) -> Result<(), St loop { std::thread::sleep(std::time::Duration::from_millis(10)); let mut frame = WsFrame::default(); - match job.connection.read(&mut frame) { + match client.connection().read(&mut frame) { Ok(_) => { if let WsFrame::Binary(b) = frame { let msg: WireMessage = serde_json::from_slice(&b).unwrap(); @@ -78,102 +74,3 @@ pub fn sim2h_client(url_string: String, message_string: String) -> Result<(), St thread_local! { pub static CRYPTO: Box = Box::new(SodiumCryptoSystem::new()); } -struct Job { - agent_id: String, - #[allow(dead_code)] - pub_key: Arc>>, - sec_key: Arc>>, - connection: InStreamWss, - // wss_connection: InStreamWss>, -} - -#[holochain_tracing_macros::newrelic_autotrace(HOLOCHAIN_CLI)] -impl Job { - pub fn new(connect_uri: &Url2) -> Result { - let (pub_key, sec_key) = CRYPTO.with(|crypto| { - let mut pub_key = crypto.buf_new_insecure(crypto.sign_public_key_bytes()); - let mut sec_key = crypto.buf_new_secure(crypto.sign_secret_key_bytes()); - crypto.sign_keypair(&mut pub_key, &mut sec_key).unwrap(); - (pub_key, sec_key) - }); - let enc = hcid::HcidEncoding::with_kind("hcs0").map_err(|e| format!("{}", e))?; - let agent_id = enc.encode(&*pub_key).unwrap(); - println!("Generated agent id: {}", agent_id); - let connection = await_in_stream_connect(connect_uri) - .map_err(|e| format!("Error awaiting connection: {}", e))?; - println!("Await successfull"); - let out = Self { - agent_id, - pub_key: Arc::new(Mutex::new(pub_key)), - sec_key: Arc::new(Mutex::new(sec_key)), - connection, - }; - - Ok(out) - } - - /// sign a message and send it to sim2h - pub fn send_wire(&mut self, message: WireMessage) { - println!("Sending wire message to sim2h: {:?}", message); - let payload: Opaque = message.into(); - let payload_buf: Box = Box::new(payload.clone().as_bytes()); - let sig = base64::encode( - &*CRYPTO - .with(|crypto| { - let mut sig = crypto.buf_new_insecure(crypto.sign_bytes()); - crypto - .sign(&mut sig, &payload_buf, &*self.sec_key.lock().unwrap()) - .unwrap(); - sig - }) - .read_lock(), - ); - let signed_message = SignedWireMessage { - provenance: Provenance::new(self.agent_id.clone().into(), sig.into()), - payload, - }; - let to_send: Opaque = signed_message.into(); - self.connection.write(to_send.as_bytes().into()).unwrap(); - } -} - -#[holochain_tracing_macros::newrelic_autotrace(HOLOCHAIN_CLI)] -fn await_in_stream_connect(connect_uri: &Url2) -> Result, String> { - let timeout = std::time::Instant::now() - .checked_add(std::time::Duration::from_millis(60000)) - .unwrap(); - - let mut read_frame = WsFrame::default(); - - // keep trying to connect - loop { - // let config = WssConnectConfig::new(TlsConnectConfig::new(TcpConnectConfig::default())); - let config = WssConnectConfig::new(TcpConnectConfig::default()); - let mut connection = - InStreamWss::connect(connect_uri, config).map_err(|e| format!("{}", e))?; - connection.write(WsFrame::Ping(b"".to_vec())).unwrap(); - - loop { - let mut err = false; - match connection.read(&mut read_frame) { - Ok(_) => return Ok(connection), - Err(e) if e.would_block() => (), - Err(_) => { - err = true; - } - } - - if std::time::Instant::now() >= timeout { - Err("could not connect within timeout".to_string())? - } - - if err { - break; - } - - std::thread::sleep(std::time::Duration::from_millis(10)); - } - - std::thread::sleep(std::time::Duration::from_millis(500)); - } -} diff --git a/crates/cli/src/cli/walkman.rs b/crates/cli/src/cli/walkman.rs new file mode 100644 index 0000000000..ddfa0ed15d --- /dev/null +++ b/crates/cli/src/cli/walkman.rs @@ -0,0 +1,6 @@ +use std::path::PathBuf; +// use crate::cli::sim2h_client::Sim2hClient; + +pub fn walkman(_cassette: PathBuf) { + println!("run walkman"); +} diff --git a/crates/cli/src/main.rs b/crates/cli/src/main.rs index 8c9f7836ba..d635a48d9a 100755 --- a/crates/cli/src/main.rs +++ b/crates/cli/src/main.rs @@ -11,9 +11,9 @@ extern crate holochain_persistence_api; extern crate holochain_persistence_file; extern crate json_patch; extern crate lib3h_crypto_api; -extern crate lib3h_protocol; extern crate lib3h_sodium; extern crate sim2h; +extern crate sim2h_client; extern crate structopt; #[macro_use] extern crate failure; @@ -164,6 +164,11 @@ enum Cli { /// message to send to the sim2h server ('ping' or 'status') message: String, }, + Walkman { + #[structopt()] + /// Path to walkman cassette file for playback + cassette: PathBuf, + }, } arg_enum! { #[derive(Debug)] @@ -330,10 +335,12 @@ fn run() -> HolochainResult<()> { } Cli::Sim2hClient { url, message } => { - println!("url: {}", &url); - println!("message: {}", &message); cli::sim2h_client(url, message)?; } + + Cli::Walkman { cassette } => { + cli::walkman(cassette); + } } Ok(()) diff --git a/crates/metrics/src/logger.rs b/crates/metrics/src/logger.rs index 3f15d18b1b..0acd021eea 100644 --- a/crates/metrics/src/logger.rs +++ b/crates/metrics/src/logger.rs @@ -21,7 +21,7 @@ impl LoggerMetricPublisher { impl MetricPublisher for LoggerMetricPublisher { fn publish(&mut self, metric: &Metric) { let log_line: LogLine = metric.into(); - debug!("{}", log_line); + trace!("{}", log_line); } } diff --git a/crates/sim1h/Cargo.toml b/crates/sim1h/Cargo.toml index 36918c559c..31a846fb0a 100644 --- a/crates/sim1h/Cargo.toml +++ b/crates/sim1h/Cargo.toml @@ -21,7 +21,7 @@ holochain_tracing = "=0.0.13" uuid = { version = "0.4", features = ["v4"] } log = "0.4.8" env_logger = "=0.6.1" -lazy_static = "1.2.0" +lazy_static = "=1.4.0" holochain_persistence_api = "=0.0.13" holochain_json_api = "=0.0.17" url = "=2.1.0" diff --git a/crates/sim2h/Cargo.toml b/crates/sim2h/Cargo.toml index 8055bb2002..963f8b2d8d 100644 --- a/crates/sim2h/Cargo.toml +++ b/crates/sim2h/Cargo.toml @@ -26,6 +26,7 @@ holochain_tracing = "=0.0.13" holochain_core_types = { version = "=0.0.42-alpha5", path = "../core_types" } holochain_locksmith = { version = "=0.0.42-alpha5", path = "../locksmith" } holochain_metrics = { version = "=0.0.42-alpha5", path = "../metrics" } +holochain_walkman_types = { version = "=0.0.42-alpha5", path = "../walkman_types" } holochain_common = { version = "=0.0.42-alpha5", path = "../common" } holochain_tracing_macros = "0.0.14" in_stream = { version = "=0.0.42-alpha5", path = "../in_stream" } @@ -52,5 +53,8 @@ native-tls = "=0.2.3" openssl = "=0.10.25" tungstenite = "=0.9.2" threadpool = "=1.7.1" -chashmap = "=2.2.2" newrelic="0.2" + +[dev-dependencies] +sim2h_client = { version = "=0.0.42-alpha5", path = "../sim2h_client" } +chashmap = "=2.2.2" diff --git a/crates/sim2h/src/debug.rs b/crates/sim2h/src/debug.rs new file mode 100644 index 0000000000..7052ff952f --- /dev/null +++ b/crates/sim2h/src/debug.rs @@ -0,0 +1,13 @@ +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +pub struct DebugData { + pub limbo: DebugLimboData, + pub msg_queue_size: usize, + pub wss_queue_size: usize, +} + +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +pub struct DebugLimboData { + pub total_connections: usize, + pub total_messages: usize, + pub max_messages: usize, +} diff --git a/crates/sim2h/src/lib.rs b/crates/sim2h/src/lib.rs index a1b0df01dc..b0c9563a1b 100644 --- a/crates/sim2h/src/lib.rs +++ b/crates/sim2h/src/lib.rs @@ -10,6 +10,7 @@ extern crate num_cpus; extern crate serde; #[macro_use] extern crate lazy_static; +extern crate holochain_walkman_types; extern crate newrelic; #[macro_use] @@ -21,6 +22,7 @@ mod naive_sharding; pub mod cache; pub mod connection_state; pub mod crypto; +pub mod debug; pub mod error; use lib3h_protocol::types::{AgentPubKey, AspectHash, EntryHash}; mod message_log; @@ -31,6 +33,11 @@ pub use crate::message_log::MESSAGE_LOGGER; use crate::{crypto::*, error::*, naive_sharding::entry_location}; use cache::*; use connection_state::*; +use holochain_locksmith::Mutex; +use holochain_metrics::{config::MetricPublisherConfig, Metric}; +use holochain_walkman_types::{walkman_log_sim2h, WalkmanSim2hEvent}; +use in_stream::*; +use lib3h::rrdht_util::*; use lib3h_crypto_api::CryptoSystem; use lib3h_protocol::{ data_types::{ @@ -50,21 +57,29 @@ use futures::{ future::{BoxFuture, FutureExt}, stream::StreamExt, }; -use in_stream::*; use log::*; use rand::{seq::SliceRandom, thread_rng}; use std::{ collections::{HashMap, HashSet}, convert::TryFrom, sync::Arc, + time::Instant, }; - -use holochain_locksmith::Mutex; -use holochain_metrics::{config::MetricPublisherConfig, Metric}; +lazy_static! { + static ref HOLOCHAIN_WALKMAN_SIM2H: bool = std::env::var("HOLOCHAIN_WALKMAN_SIM2H").is_ok(); +} /// if we can't acquire a lock in 20 seconds, panic! const MAX_LOCK_TIMEOUT: u64 = 20000; +fn walkman_log WalkmanSim2hEvent>(event: F) { + if *HOLOCHAIN_WALKMAN_SIM2H { + let log_item = event(); + let json = + serde_json::to_string(&walkman_log_sim2h(log_item)).expect("Serialized walkman event"); + println!("{}", json); + } +} //set up license_key new_relic_setup!("NEW_RELIC_LICENSE_KEY"); @@ -99,7 +114,6 @@ impl SendExt for crossbeam_channel::Sender { } } } - const RETRY_FETCH_MISSING_ASPECTS_INTERVAL_MS: u64 = 30000; // 30 seconds fn conn_lifecycle(desc: &str, uuid: &str, obj: &ConnectionState, uri: &Lib3hUri) { @@ -405,7 +419,7 @@ pub struct Sim2h { connection_mgr_evt_recv: ConnectionMgrEventRecv, num_ticks: u64, /// when should we try to resync nodes that are still missing aspect data - missing_aspects_resync: std::time::Instant, + missing_aspects_resync: Instant, dht_algorithm: DhtAlgorithm, recv_com: tokio::sync::mpsc::UnboundedReceiver, sim2h_handle: Sim2hHandle, @@ -502,6 +516,7 @@ impl Sim2h { .connection_states .insert(url.clone(), (nanoid::simple(), ConnectionState::new())); + walkman_log(|| WalkmanSim2hEvent::Connect(url.to_string())); state.connection_mgr.connect(url, wss); } }); @@ -806,6 +821,12 @@ impl Sim2h { Ok((signed_message.provenance.source().into(), wire_message)) })() { Ok((source, wire_message)) => { + walkman_log(|| { + let signed_message = SignedWireMessage::try_from(payload.clone()).unwrap(); + let msg_serialized = serde_json::to_string(&signed_message) + .expect("SignedWireMessage serialized"); + WalkmanSim2hEvent::Message(url.to_string(), msg_serialized) + }); sim2h_handle.handle_message(url, wire_message, source) } Err(error) => { diff --git a/crates/sim2h/src/sim2h_state.rs b/crates/sim2h/src/sim2h_state.rs index e454ccb05f..c9e12ff709 100644 --- a/crates/sim2h/src/sim2h_state.rs +++ b/crates/sim2h/src/sim2h_state.rs @@ -1,5 +1,4 @@ use crate::*; -use lib3h::rrdht_util::*; pub(crate) struct Sim2hState { pub(crate) crypto: Box, @@ -86,6 +85,7 @@ impl Sim2hState { } } } + walkman_log(|| WalkmanSim2hEvent::Disconnect(uri.0.to_string())); trace!("disconnect done"); } diff --git a/crates/sim2h_client/Cargo.toml b/crates/sim2h_client/Cargo.toml new file mode 100644 index 0000000000..bc32ceb3cd --- /dev/null +++ b/crates/sim2h_client/Cargo.toml @@ -0,0 +1,48 @@ +[package] +name = "sim2h_client" +version = "0.0.42-alpha5" +authors = ["Holochain Core Dev Team "] +edition = "2018" +description = "A simulation of lib3h - server executable" +keywords = ["holochain", "holo", "p2p", "network", "simulation"] +categories = ["network-programming"] +license = "GPL-3.0-only" +readme = "README.md" +documentation = "https://github.com/holochain/sim2h" +repository = "https://github.com/holochain/sim2h" + +[dependencies] +sim2h = { version = "=0.0.42-alpha5", path = "../sim2h" } +lib3h_crypto_api = "=0.0.31" +in_stream = { version = "=0.0.42-alpha5", path = "../in_stream" } +url2 = "=0.0.4" +lib3h_sodium = "=0.0.31" +holochain_json_api = "=0.0.17" +holochain_persistence_api = "=0.0.13" +holochain_persistence_file = "=0.0.13" +holochain_tracing_macros = "0.0.13" +newrelic="0.2" +holochain_wasm_utils = { path = "../wasm_utils" } +structopt = "=0.3.3" +failure = "=0.1.5" +serde = "=1.0.89" +serde_derive = "=1.0.89" +serde_json = { version = "=1.0.39", features = ["preserve_order"] } +toml = "=0.5.0" +semver = { version = "0.9.0", features = ["serde"] } +base64 = "=0.10.1" +colored = "=1.7.0" +ignore = "=0.4.6" +rpassword = "=2.1.0" +tera = "=0.11.20" +glob = "=0.3.0" +rustyline = "=5.0.0" +json-patch = "=0.2.2" +reqwest = "=0.9.11" +tempfile = "=3.0.7" +lib3h_protocol = "=0.0.31" +tar = "=0.4.26" +flate2 = "=1.0.12" +dns-lookup = "=1.0.1" +hcid = "=0.0.6" +log = "=0.4.8" diff --git a/crates/sim2h_client/src/lib.rs b/crates/sim2h_client/src/lib.rs new file mode 100644 index 0000000000..a503457486 --- /dev/null +++ b/crates/sim2h_client/src/lib.rs @@ -0,0 +1,205 @@ +#[macro_use] +extern crate log; + +use holochain_persistence_api::hash::HashString; +use in_stream::*; +use lib3h_crypto_api::CryptoSystem; +use lib3h_protocol::{data_types::*, types::AgentPubKey}; +use lib3h_sodium::SodiumCryptoSystem; +use sim2h::{ + crypto::{Provenance, SignedWireMessage}, + WireMessage, +}; +use std::sync::{Arc, Mutex}; +use url2::prelude::*; + +thread_local! { + pub static CRYPTO: Box = Box::new(SodiumCryptoSystem::new()); +} + +type Connection = InStreamWss; + +pub struct Sim2hClient { + agent_pubkey: HashString, + #[allow(dead_code)] + pub_key: Arc>>, + sec_key: Arc>>, + connection: Connection, + // wss_connection: InStreamWss>, +} + +impl Sim2hClient { + #[holochain_tracing_macros::newrelic_autotrace(HOLOCHAIN_CLI)] + pub fn new(connect_uri: &Url2) -> Result { + let (pub_key, sec_key) = CRYPTO.with(|crypto| { + let mut pub_key = crypto.buf_new_insecure(crypto.sign_public_key_bytes()); + let mut sec_key = crypto.buf_new_secure(crypto.sign_secret_key_bytes()); + crypto.sign_keypair(&mut pub_key, &mut sec_key).unwrap(); + (pub_key, sec_key) + }); + let enc = hcid::HcidEncoding::with_kind("hcs0").map_err(|e| format!("{}", e))?; + let agent_pubkey = HashString::from(enc.encode(&*pub_key).unwrap()); + info!("Generated agent id: {}", agent_pubkey); + let connection = await_in_stream_connect(connect_uri) + .map_err(|e| format!("Error awaiting connection: {:?}", e))?; + + let out = Self { + agent_pubkey, + pub_key: Arc::new(Mutex::new(pub_key)), + sec_key: Arc::new(Mutex::new(sec_key)), + connection, + }; + + Ok(out) + } + + pub fn connection(&mut self) -> &mut Connection { + &mut self.connection + } + + pub fn agent_pubkey(&self) -> AgentPubKey { + AgentPubKey::from(self.agent_pubkey.clone()) + } + + pub fn await_msg(&mut self, predicate: F) -> Result + where + F: Fn(&WireMessage) -> bool, + { + let timeout = std::time::Instant::now() + .checked_add(std::time::Duration::from_millis(10000)) + .unwrap(); + + loop { + if let Some(msg) = pull_message_from_stream(&mut self.connection)? { + if predicate(&msg) { + return Ok(msg); + } else { + println!("await_msg skipping message: {:?}", msg); + } + } + + if std::time::Instant::now() >= timeout { + Err(ClientError::Timeout("Timed out during await_msg".into()))? + } + + std::thread::sleep(std::time::Duration::from_millis(10)); + } + } + + pub fn try_blocking_reconnect( + &mut self, + url: &Url2, + ) -> Result<(), ClientError> { + let timeout = std::time::Instant::now() + .checked_add(std::time::Duration::from_millis(60000)) + .unwrap(); + loop { + if let Ok(connection) = await_in_stream_connect(url) { + self.connection = connection; + return Ok(()); + } + if std::time::Instant::now() >= timeout { + return Err(ClientError::Timeout( + "Failed to reconnect to sim2h_sever".to_string(), + )); + } + } + } + + /// sign a message and send it to sim2h + pub fn send_wire(&mut self, message: WireMessage) { + let payload: Opaque = message.into(); + let payload_buf: Box = Box::new(payload.clone().as_bytes()); + let sig = base64::encode( + &*CRYPTO + .with(|crypto| { + let mut sig = crypto.buf_new_insecure(crypto.sign_bytes()); + crypto + .sign(&mut sig, &payload_buf, &*self.sec_key.lock().unwrap()) + .unwrap(); + sig + }) + .read_lock(), + ); + let signed_message = SignedWireMessage { + provenance: Provenance::new(self.agent_pubkey.clone(), sig.into()), + payload, + }; + let to_send: Opaque = signed_message.into(); + self.connection.write(to_send.as_bytes().into()).unwrap(); + } +} + +#[derive(Debug)] +pub enum ClientError { + Disconnected, + Timeout(String), + Unknown(String), +} + +fn pull_message_from_stream( + connection: &mut Connection, +) -> Result, ClientError> { + let mut frame = WsFrame::default(); + match connection.read(&mut frame) { + Ok(_) => { + if let WsFrame::Binary(b) = frame { + let msg: WireMessage = serde_json::from_slice(&b).unwrap(); + Ok(Some(msg)) + } else { + Err(ClientError::Unknown(format!("unexpected {:?}", frame))) + } + } + Err(e) if e.would_block() => Ok(None), + Err(_e) => { + // let's just assume this meant we were disconnected + // TODO: actually match on the Ws error + Err(ClientError::Disconnected) + } + } +} + +#[holochain_tracing_macros::newrelic_autotrace(HOLOCHAIN_CLI)] +fn await_in_stream_connect(connect_uri: &Url2) -> Result { + let timeout = std::time::Instant::now() + .checked_add(std::time::Duration::from_millis(60000)) + .unwrap(); + + let mut read_frame = WsFrame::default(); + + // keep trying to connect + loop { + // let config = WssConnectConfig::new(TlsConnectConfig::new(TcpConnectConfig::default())); + let config = WssConnectConfig::new(TcpConnectConfig::default()); + let mut connection = InStreamWss::connect(connect_uri, config) + .map_err(|e| ClientError::Unknown(format!("{}", e)))?; + connection.write(WsFrame::Ping(b"".to_vec())).unwrap(); + + loop { + let mut err = false; + let frame = connection.read(&mut read_frame); + println!("read: {:?}", frame); + match frame { + Ok(_) => return Ok(connection), + Err(e) if e.would_block() => (), + Err(_) => { + err = true; + } + } + + if std::time::Instant::now() >= timeout { + Err(ClientError::Timeout( + "could not connect within timeout".to_string(), + ))? + } + + if err { + break; + } + + std::thread::sleep(std::time::Duration::from_millis(10)); + } + + std::thread::sleep(std::time::Duration::from_millis(500)); + } +} diff --git a/crates/walkman_cli/Cargo.toml b/crates/walkman_cli/Cargo.toml new file mode 100644 index 0000000000..2a69babbc3 --- /dev/null +++ b/crates/walkman_cli/Cargo.toml @@ -0,0 +1,25 @@ +[package] +name = "holochain_walkman" +version = "0.0.42-alpha5" +authors = ["Holochain Core Dev Team "] +edition = "2018" + +[dependencies] +in_stream = { version = "=0.0.42-alpha5", path = "../in_stream" } +lib3h_protocol = "=0.0.31" +structopt = "0.3.3" +serde_derive = "=1.0.89" +serde_millis = "0.1.1" +serde_json = { version = "=1.0.39", features = ["preserve_order"] } +sim2h = { version = "=0.0.42-alpha5", path = "../sim2h" } +sim2h_client = { version = "=0.0.42-alpha5", path = "../sim2h_client" } +holochain_walkman_types = { version = "=0.0.42-alpha5", path = "../walkman_types" } +url = "=2.1.0" +url2 = "=0.0.4" +chrono = "=0.4.6" +snap = "0.2" + + +[[bin]] +name = "walkman" +path = "src/main.rs" diff --git a/crates/walkman_cli/README.md b/crates/walkman_cli/README.md new file mode 100644 index 0000000000..693c53ff2c --- /dev/null +++ b/crates/walkman_cli/README.md @@ -0,0 +1,47 @@ +# walkman + +For recording and playing back sim2h sessions: + +```bash +# 0. Build walkman CLI (no nix command for this yet) +cargo install -f --path crates/walkman_cli + +# 1. Run a sim2h server with walkman logging turned on +HOLOCHAIN_WALKMAN_SIM2H=1 sim2h_server -p 9000 |& tee sim2h.log + +# 2. Run a test which hits the sim2h_server with a lot of traffic +./run-a-real-e2e-test.sh + +# 3. You can kill the sim2h server when the stress test is over + +# 4. Condense the potentially huge log down into a minimal set of messages to replay +walkman cassette compile --path sim2h.log > sim2h.cassette + +# 5. You can view the cassette in a slightly more readable form like so: +walkman cassette show --path sim2h.cassette + +# 6. Start up the sim2h server again (no need to use the env var) +sim2h_server -p 9000 |& tee sim2h-playback.log + +# 7. Playback the cassette with the server you just started up as a target +walkman playback sim2h --path sim2h.cassette --url ws://localhost:9000 |& tee cassette-playback.log +``` + +Steps 1-4 are the recording process, which only has to happen once. When iteratively testing, you can repeat the playback by running steps 6 and 7 (the last two steps) with the same cassette over and over. + +## Installation + +``` +cargo install --force --path crates/walkman_cli +``` +## Editing +If you would like to edit the cassette manually (e.g. change a timestamp) you will need to convert it to and from raw format. +```bash +# 1. Convert to raw +walkman cassette raw --path sim2h.cassette > sim2h.txt + +# 2. Edit the text file. + +# 3. Compile the raw text file. +walkman cassette compile-raw --path sim2h.txt > sim2h.cassette +``` diff --git a/crates/walkman_cli/src/main.rs b/crates/walkman_cli/src/main.rs new file mode 100644 index 0000000000..43096349b5 --- /dev/null +++ b/crates/walkman_cli/src/main.rs @@ -0,0 +1,124 @@ +mod player; + +use crate::player::{deserialize_message_data, get_wire_message, Sim2hCassettePlayer}; +use holochain_walkman_types::{Cassette, WalkmanEvent, WalkmanSim2hEvent}; +use std::{fs::File, path::PathBuf}; +use structopt::StructOpt; + +pub fn main() { + match Opt::from_args() { + Opt::Cassette(opt_cassette) => match opt_cassette { + OptCassette::Compile(OptPath { path }) => { + let cassette = read_cassette_from_log(path); + let stdout = std::io::stdout(); + let wtr = snap::Writer::new(stdout.lock()); + serde_json::to_writer(wtr, &cassette).expect("Could not serialize cassette data"); + } + OptCassette::Show(OptPath { path }) => { + let cassette = read_cassette(path); + for item in cassette.logs() { + let time: chrono::DateTime = item.time.into(); + let WalkmanEvent::Sim2hEvent(event) = &item.event; + let line = match event { + WalkmanSim2hEvent::Connect(url) => format!("{} CONNECT", url), + WalkmanSim2hEvent::Disconnect(url) => format!("{} DISCONNECT", url), + WalkmanSim2hEvent::Message(url, data) => { + let signed = deserialize_message_data(&data); + let wire_msg = get_wire_message(&signed); + format!("{} MSG : {:?}", url, wire_msg) + } + }; + println!("{:?} {}", time.timestamp(), line); + } + } + OptCassette::Raw(OptPath { path }) => { + let cassette = read_cassette(path); + let stdout = std::io::stdout(); + serde_json::to_writer(stdout, &cassette) + .expect("Could not serialize cassette data"); + } + OptCassette::CompileRaw(OptPath { path }) => { + let cassette = read_raw(path); + let stdout = std::io::stdout(); + let wtr = snap::Writer::new(stdout.lock()); + serde_json::to_writer(wtr, &cassette).expect("Could not serialize cassette data"); + } + }, + Opt::Playback(opt_sim2h) => match opt_sim2h { + OptPlayback::Sim2h(playback) => { + let sim2h_url = url2::Url2::try_parse(playback.url).expect("Invalid sim2h url"); + println!( + "Walkman: playback from {:?} on {}", + playback.path, sim2h_url + ); + let cassette = if playback.raw { + read_cassette_from_log(playback.path) + } else { + read_cassette(playback.path) + }; + Sim2hCassettePlayer::new().playback(&sim2h_url, cassette); + } + }, + } +} + +fn read_cassette(path: PathBuf) -> Cassette { + let file = File::open(path).expect("Couldn't open file for walkman"); + let reader = std::io::BufReader::new(file); + let reader = snap::Reader::new(reader); + serde_json::from_reader(reader).expect("Invalid cassette file") +} + +fn read_raw(path: PathBuf) -> Cassette { + let file = File::open(path).expect("Couldn't open file for walkman"); + let reader = std::io::BufReader::new(file); + serde_json::from_reader(reader).expect("Invalid cassette file") +} + +fn read_cassette_from_log(path: PathBuf) -> Cassette { + let file = File::open(path).expect("Couldn't open file for walkman"); + let reader = std::io::BufReader::new(file); + Cassette::from_log_data(reader) +} + +#[derive(StructOpt)] +enum Opt { + Cassette(OptCassette), + Playback(OptPlayback), +} + +#[derive(StructOpt)] +enum OptCassette { + Compile(OptCompile), + Show(OptShow), + Raw(OptRaw), + CompileRaw(OptCompileRaw), +} + +#[derive(StructOpt)] +enum OptPlayback { + Sim2h(OptSim2hPlayback), +} + +#[derive(StructOpt)] +struct OptPath { + #[structopt(short, long)] + path: PathBuf, +} + +type OptCompile = OptPath; +type OptShow = OptPath; +type OptRaw = OptPath; +type OptCompileRaw = OptPath; + +#[derive(StructOpt)] +struct OptSim2hPlayback { + #[structopt(short, long)] + path: PathBuf, + + #[structopt(short, long)] + url: String, + + #[structopt(short, long)] + raw: bool, +} diff --git a/crates/walkman_cli/src/player.rs b/crates/walkman_cli/src/player.rs new file mode 100644 index 0000000000..748676feb8 --- /dev/null +++ b/crates/walkman_cli/src/player.rs @@ -0,0 +1,123 @@ +use holochain_walkman_types::{Cassette, WalkmanEvent, WalkmanLogItem, WalkmanSim2hEvent}; +use in_stream::InStream; +use lib3h_protocol::{data_types::Opaque, protocol::*}; +use sim2h::{crypto::SignedWireMessage, wire_message::WireMessage}; +use sim2h_client::{ClientError, Sim2hClient}; +use std::{ + collections::{hash_map::Entry, HashMap}, + convert::TryInto, + thread, + time::SystemTime, +}; +use url2::Url2; + +#[derive(Default)] +pub struct Sim2hCassettePlayer { + clients: HashMap, + last_event: Option, +} + +impl Sim2hCassettePlayer { + pub fn new() -> Self { + Self::default() + } + + pub fn playback(mut self, sim2h_url: &Url2, cassette: Cassette) { + for log in cassette.logs().clone() { + match log { + WalkmanLogItem { time, event } => { + match self.last_event { + Some(t) => match time.duration_since(t).ok() { + Some(duration) => { + println!("sleeping for {:?}", duration); + thread::sleep(duration); + self.last_event = Some(time); + } + None => { + println!("no delay"); + } + }, + None => { + self.last_event = Some(time); + } + } + self.playback_event(sim2h_url, event); + } + } + } + } + + fn playback_event(&mut self, sim2h_url: &Url2, event: WalkmanEvent) { + let WalkmanEvent::Sim2hEvent(event) = event; + match event { + WalkmanSim2hEvent::Connect(client_url) => match self.clients.entry(client_url.clone()) { + Entry::Vacant(e) => { + e.insert( + Sim2hClient::new(sim2h_url).expect("Couldn't create sim2h client"), + ); + } + Entry::Occupied(_) => { + panic!(format!("Tried to connect from url twice: {}", client_url)) + } + }, + WalkmanSim2hEvent::Disconnect(client_url) => { + match self.clients.entry(client_url.clone()) { + Entry::Occupied(e) => { + e.remove_entry(); + } + Entry::Vacant(_) => panic!(format!( + "Tried to disconnect from url without being connected: {}", + client_url + )), + } + } + WalkmanSim2hEvent::Message(client_url, message_str) => self.clients + .get_mut(&client_url) + .map(|client| { + // The Sim2hClient was created with a random keypair, but we are going to bypass that agent here + // and directly send a saved signed message from a different prior Agent + let msg: SignedWireMessage = deserialize_message_data(&message_str); + let wire_msg: WireMessage = get_wire_message(&msg); + println!("Playback WireMessage from {} : {:?}", client_url, wire_msg); + let to_send: Opaque = msg.into(); + client + .connection() + .write(to_send.as_bytes().into()) + .unwrap(); + + if let WireMessage::ClientToLib3h(ClientToLib3h::JoinSpace(_)) = wire_msg { + // We need to wait for the JoinSpace to complete on the sim2h side, + // but JoinSpaceResult is never sent by sim2h, so we do this hacky waiting + println!("Awaiting Lib3hToClient::HandleGetGossipingEntryListResult after JoinSpace"); + while let Err(e) = client.await_msg(|msg| { + if let WireMessage::Lib3hToClient(Lib3hToClient::HandleGetGossipingEntryList(_)) = msg { + true + } else { + false + } + }) { + match e { + ClientError::Disconnected => { + client.try_blocking_reconnect(sim2h_url).expect("Failed to reconnect"); + }, + _ => panic!(format!("client error: {:?}", e)), + } + }; + println!("Now waiting 100ms because we don't know when the Join is actually done..."); + std::thread::sleep(std::time::Duration::from_millis(100)); + } + }) + .unwrap_or_else(|| { + panic!("Trying to send message without a client connection") + }), + } + } +} + +pub fn deserialize_message_data(data: &str) -> SignedWireMessage { + serde_json::from_str(data).expect("Couldn't parse serialized SignedWireMessage") +} + +pub fn get_wire_message(signed: &SignedWireMessage) -> WireMessage { + signed.clone().payload.try_into().unwrap() +} diff --git a/crates/walkman_types/Cargo.toml b/crates/walkman_types/Cargo.toml new file mode 100644 index 0000000000..9475c570ae --- /dev/null +++ b/crates/walkman_types/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "holochain_walkman_types" +version = "0.0.42-alpha5" +authors = ["Holochain Core Dev Team "] +edition = "2018" + +[dependencies] +serde = "=1.0.89" +serde_derive = "=1.0.89" +serde_millis = "=0.1.1" +serde_json = "=1.0.39" +url = "=2.1.0" +regex = "1.1.2" diff --git a/crates/walkman_types/src/cassette.rs b/crates/walkman_types/src/cassette.rs new file mode 100644 index 0000000000..1622d314a8 --- /dev/null +++ b/crates/walkman_types/src/cassette.rs @@ -0,0 +1,33 @@ +use crate::event::WalkmanLogItem; +use regex::Regex; +use std::io::{BufRead, Read}; + +#[derive(Serialize, Deserialize)] +pub struct Cassette { + logs: Vec, +} + +impl Cassette { + pub fn logs(&self) -> &Vec { + self.logs.as_ref() + } + + pub fn from_log_data(reader: std::io::BufReader) -> Cassette { + Cassette { + logs: reader + .lines() + .map(|line| line.expect("IO error while parsing log for walkman")) + .filter_map(parse_line) + .collect(), + } + } +} + +fn parse_line(line: String) -> Option { + let re_tag = Regex::new(r"(.*?)").unwrap(); + re_tag.captures(&line).and_then(|caps| { + caps.get(1).and_then(|m| { + serde_json::from_str(m.as_str()).expect("Couldn't parse serialized walkman log item") + }) + }) +} diff --git a/crates/walkman_types/src/event.rs b/crates/walkman_types/src/event.rs new file mode 100644 index 0000000000..77139abd1b --- /dev/null +++ b/crates/walkman_types/src/event.rs @@ -0,0 +1,48 @@ +use std::time::SystemTime; + +#[derive(Clone, Debug, Serialize, Deserialize)] +pub struct WalkmanLogItem { + #[serde(with = "serde_millis")] + pub time: SystemTime, + pub event: WalkmanEvent, +} + +#[derive(Clone, Debug, Serialize, Deserialize)] +pub enum WalkmanEvent { + // CoreEvent(Action), + Sim2hEvent(WalkmanSim2hEvent), +} + +pub fn walkman_log_sim2h(data: WalkmanSim2hEvent) -> WalkmanLogItem { + WalkmanLogItem { + time: SystemTime::now(), + event: WalkmanEvent::Sim2hEvent(data), + } +} + +// trait WalkmanLogger { +// fn log(data: T) -> WalkmanLogItem; +// } + +// pub struct WalkmanSim2hLogger { +// url: Url, +// } + +// impl WalkmanLogger for WalkmanSim2hLogger { +// fn log(data: WalkmanSim2hEvent) -> WalkmanLogItem { +// WalkmanLogItem { +// time: SystemTime::now(), +// event: WalkmanEvent::Sim2hEvent(data), +// } +// } +// } + +#[derive(Clone, Debug, Serialize, Deserialize)] +pub enum WalkmanSim2hEvent { + Connect(Url), + Disconnect(Url), + Message(Url, WireMessageData), +} + +pub type Url = String; +pub type WireMessageData = String; diff --git a/crates/walkman_types/src/lib.rs b/crates/walkman_types/src/lib.rs new file mode 100644 index 0000000000..be6dbf2538 --- /dev/null +++ b/crates/walkman_types/src/lib.rs @@ -0,0 +1,10 @@ +extern crate serde; +#[macro_use] +extern crate serde_derive; +// #[macro_use] +// extern crate serde_json; + +mod cassette; +mod event; +pub use cassette::*; +pub use event::*;