diff --git a/Cargo.lock b/Cargo.lock
index e72e943e0d7430bcfcf7106e4bc33ee81738a0be..a59b3be0c2084c1e0cf202ac1c7fa3278970565c 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -117,7 +117,7 @@ version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -374,9 +374,9 @@ dependencies = [
  "pest 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "pest_derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "pretty_assertions 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_derive 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_json 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
  "unwrap 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -405,8 +405,8 @@ dependencies = [
  "pest 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "pest_derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "pretty_assertions 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_json 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
  "shrinkwraprs 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "unwrap 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
@@ -419,7 +419,7 @@ dependencies = [
  "dubp-common-doc 0.1.0",
  "durs-common-tools 0.2.0",
  "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -434,7 +434,7 @@ dependencies = [
  "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
  "pretty_assertions 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
  "shrinkwraprs 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "unwrap 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
@@ -452,9 +452,9 @@ dependencies = [
  "pest 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "pest_derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "pretty_assertions 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_derive 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_json 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
  "unwrap 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -481,7 +481,7 @@ dependencies = [
  "durs-ws2p-v1-legacy 0.3.0-dev",
  "human-panic 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "structopt 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "structopt 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -499,8 +499,8 @@ dependencies = [
  "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
  "ring 0.16.9 (registry+https://github.com/rust-lang/crates.io-index)",
  "scrypt 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_derive 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -532,7 +532,7 @@ dependencies = [
  "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)",
  "maplit 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
  "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "unwrap 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
@@ -559,8 +559,8 @@ dependencies = [
  "durs-wot 0.8.0-a0.9",
  "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)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_derive 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
  "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "unwrap 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
@@ -593,8 +593,8 @@ dependencies = [
  "num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "pbr 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "rayon 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_json 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
  "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "threadpool 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "unwrap 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -629,9 +629,9 @@ dependencies = [
  "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
  "rpassword 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_derive 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_json 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -655,10 +655,10 @@ dependencies = [
  "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "fern 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)",
  "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
- "structopt 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_derive 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_json 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
+ "structopt 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
  "threadpool 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "unwrap 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
@@ -673,7 +673,7 @@ dependencies = [
  "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
  "rkv 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)",
  "rustbreak 2.0.0-rc3 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
  "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "unwrap 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
@@ -690,9 +690,9 @@ dependencies = [
  "durs-module 0.3.0-dev",
  "durs-network 0.3.0-dev",
  "durs-network-documents 0.4.0",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_derive 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_json 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -706,10 +706,10 @@ dependencies = [
  "durs-network-documents 0.4.0",
  "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
- "structopt 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_derive 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_json 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
+ "structopt 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -724,10 +724,10 @@ dependencies = [
  "durs-module 0.3.0-dev",
  "durs-network-documents 0.4.0",
  "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
- "structopt 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_derive 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_json 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
+ "structopt 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -749,8 +749,8 @@ dependencies = [
  "pest 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "pest_derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "pretty_assertions 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_json 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
  "unwrap 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "url 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
@@ -769,10 +769,10 @@ dependencies = [
  "durs-network 0.3.0-dev",
  "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
- "structopt 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_derive 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_json 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
+ "structopt 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -790,10 +790,10 @@ dependencies = [
  "durs-network-documents 0.4.0",
  "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
- "structopt 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_derive 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_json 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
+ "structopt 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
  "termion 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -806,7 +806,7 @@ dependencies = [
  "durs-common-tools 0.2.0",
  "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
  "rayon 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -830,10 +830,10 @@ dependencies = [
  "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
  "maplit 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
- "structopt 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_derive 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_json 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
+ "structopt 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
  "ws 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -853,9 +853,9 @@ dependencies = [
  "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
  "pretty_assertions 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_derive 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_json 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -873,8 +873,8 @@ dependencies = [
  "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
  "pretty_assertions 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_derive 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
  "unwrap 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -898,9 +898,9 @@ dependencies = [
  "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
  "maplit 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
- "structopt 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_json 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
+ "structopt 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
  "unwrap 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
  "ws 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1051,8 +1051,8 @@ dependencies = [
  "backtrace 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)",
  "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "os_type 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_derive 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
  "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
  "termcolor 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
  "toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1450,9 +1450,9 @@ dependencies = [
  "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
  "pretty_assertions 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "ring 0.16.9 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde_cbor 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_json 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -1480,6 +1480,16 @@ dependencies = [
  "output_vt100 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
+[[package]]
+name = "proc-macro-error"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "proc-macro2 1.0.6 (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.5 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
 [[package]]
 name = "proc-macro2"
 version = "0.2.3"
@@ -1498,7 +1508,7 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.1"
+version = "1.0.6"
 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)",
@@ -1525,7 +1535,7 @@ name = "quote"
 version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "proc-macro2 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -1783,8 +1793,8 @@ dependencies = [
  "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "lmdb-rkv 0.11.4 (registry+https://github.com/rust-lang/crates.io-index)",
  "ordered-float 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_derive 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
  "url 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
@@ -1832,7 +1842,7 @@ dependencies = [
  "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
  "bincode 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)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -1890,10 +1900,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
 name = "serde"
-version = "1.0.99"
+version = "1.0.102"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_derive 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -1903,27 +1913,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
  "half 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.99"
+version = "1.0.102"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "proc-macro2 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2 1.0.6 (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.5 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.40"
+version = "1.0.41"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
  "ryu 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -1986,22 +1996,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
 name = "structopt"
-version = "0.2.18"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "structopt-derive 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "structopt-derive 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "structopt-derive"
-version = "0.2.18"
+version = "0.3.4"
 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-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 0.15.44 (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.6 (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.5 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -2034,7 +2045,7 @@ name = "syn"
 version = "1.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "proc-macro2 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2 1.0.6 (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)",
 ]
@@ -2130,7 +2141,7 @@ name = "toml"
 version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -2214,7 +2225,7 @@ version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -2254,7 +2265,7 @@ dependencies = [
  "bumpalo 2.6.0 (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)",
- "proc-macro2 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2 1.0.6 (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.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "wasm-bindgen-shared 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2274,7 +2285,7 @@ name = "wasm-bindgen-macro-support"
 version = "0.2.50"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "proc-macro2 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2 1.0.6 (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.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "wasm-bindgen-backend 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2294,7 +2305,7 @@ dependencies = [
  "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "proc-macro2 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2 1.0.6 (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.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "wasm-bindgen-backend 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2509,9 +2520,10 @@ dependencies = [
 "checksum ppv-lite86 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e3cbf9f658cdb5000fcf6f362b8ea2ba154b9f146a61c7a20d647034c6b6561b"
 "checksum pretty_assertions 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3a029430f0d744bc3d15dd474d591bed2402b645d024583082b9f63bb936dac6"
 "checksum pretty_assertions 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3f81e1644e1b54f5a68959a29aa86cde704219254669da328ecfdf6a1f09d427"
+"checksum proc-macro-error 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "aeccfe4d5d8ea175d5f0e4a2ad0637e0f4121d63bd99d356fb1f39ab2e7c6097"
 "checksum proc-macro2 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cd07deb3c6d1d9ff827999c7f9b04cdfd66b1b17ae508e14fe47b620f2282ae0"
 "checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
-"checksum proc-macro2 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4c5c2380ae88876faae57698be9e9775e3544decad214599c3a6266cca6ac802"
+"checksum proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "9c9e470a8dc4aeae2dee2f335e8f533e2d4b347e1434e5671afc49b054592f27"
 "checksum quote 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1eca14c727ad12702eb4b6bfb5a232287dcf8385cb8ca83a3eeaf6519c44c408"
 "checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
 "checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
@@ -2554,10 +2566,10 @@ dependencies = [
 "checksum scrypt 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "656c79d0e90d0ab28ac86bf3c3d10bfbbac91450d3f190113b4e76d9fec3cfdd"
 "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
 "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
-"checksum serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)" = "fec2851eb56d010dc9a21b89ca53ee75e6528bab60c11e89d38390904982da9f"
+"checksum serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)" = "0c4b39bd9b0b087684013a792c59e3e07a46a01d2322518d8a1104641a0b1be0"
 "checksum serde_cbor 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f7081ed758ec726a6ed8ee7e92f5d3f6e6f8c3901b1f972e3a4a2f2599fad14f"
-"checksum serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)" = "cb4dc18c61206b08dc98216c98faa0232f4337e1e1b8574551d5bad29ea1b425"
-"checksum serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)" = "051c49229f282f7c6f3813f8286cc1e3323e8051823fce42c7ea80fe13521704"
+"checksum serde_derive 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)" = "ca13fc1a832f793322228923fbb3aba9f3f44444898f835d31ad1b74fa0a2bf8"
+"checksum serde_json 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)" = "2f72eb2a68a7dc3f9a691bfda9305a1c017a6215e5a4545c258500d2099a37c2"
 "checksum sha-1 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "23962131a91661d643c98940b20fcaffe62d776a823247be80a48fcb8b6fce68"
 "checksum sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b4d8bfd0e469f417657573d8451fb33d16cfe0989359b93baf3a1ffc639543d"
 "checksum shrinkwraprs 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7d5f047b90b2ca2d1526ff73d67cba61f86f4cf9a8afddc99dd96702ded8e684"
@@ -2566,8 +2578,8 @@ dependencies = [
 "checksum sourcefile 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4bf77cb82ba8453b42b6ae1d692e4cdc92f9a47beaf89a847c8be83f4e328ad3"
 "checksum spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
 "checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
-"checksum structopt 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "16c2cdbf9cc375f15d1b4141bc48aeef444806655cd0e904207edc8d68d86ed7"
-"checksum structopt-derive 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "53010261a84b37689f9ed7d395165029f9cc7abb9f56bbfe86bee2597ed25107"
+"checksum structopt 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "c167b61c7d4c126927f5346a4327ce20abf8a186b8041bbeb1ce49e5db49587b"
+"checksum structopt-derive 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "519621841414165d2ad0d4c92be8f41844203f2b67e245f9345a5a12d40c69d7"
 "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.44 (registry+https://github.com/rust-lang/crates.io-index)" = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
diff --git a/bin/dunitrust-server/Cargo.toml b/bin/dunitrust-server/Cargo.toml
index 0049af47dea273aa313973387c861cb084cdd7ae..4da78c27f4c2f3055f72efa9760baf88e843f06a 100644
--- a/bin/dunitrust-server/Cargo.toml
+++ b/bin/dunitrust-server/Cargo.toml
@@ -18,9 +18,9 @@ durs-module = { path = "../../lib/core/module" }
 #durs-skeleton = { path = "../../lib/modules/skeleton" }
 durs-ws2p = { path = "../../lib/modules/ws2p/ws2p" }
 durs-ws2p-v1-legacy = { path = "../../lib/modules/ws2p-v1-legacy" }
-log = "0.4.*"
-structopt = "0.2.*"
-human-panic = "1.0.*"
+human-panic = "1.0.1"
+log = "0.4.8"
+structopt= "0.3.4"
 
 [target.'cfg(unix)'.dependencies]
 durs-tui = { path = "../../lib/modules/tui" }
diff --git a/bin/dunitrust-server/src/cli.rs b/bin/dunitrust-server/src/cli.rs
index 2bc963064a44c0537158761b21ae22cbe8a76e48..3fb1136e2d8113cbaac5a9aea1230514c4dfc00b 100644
--- a/bin/dunitrust-server/src/cli.rs
+++ b/bin/dunitrust-server/src/cli.rs
@@ -32,10 +32,7 @@ use std::path::PathBuf;
 use structopt::StructOpt;
 
 #[derive(StructOpt, Debug)]
-#[structopt(
-    name = "durs",
-    raw(setting = "structopt::clap::AppSettings::ColoredHelp")
-)]
+#[structopt(name = "durs", setting(structopt::clap::AppSettings::ColoredHelp))]
 /// Dunitrust command line options
 pub struct DursCliOpt {
     /// Dunitrust subcommand
@@ -49,7 +46,7 @@ pub struct DursCliOpt {
     keypairs_file: Option<PathBuf>,
     /// Set log level. (Defaults to INFO).
     /// Available levels: [ERROR, WARN, INFO, DEBUG, TRACE]
-    #[structopt(short = "l", long = "logs", raw(next_line_help = "true"))]
+    #[structopt(short = "l", long = "logs", next_line_help = true)]
     logs_level: Option<Level>,
     /// Print logs in standard output
     #[structopt(long = "log-stdout")]
@@ -132,40 +129,34 @@ impl DursCliOpt {
 /// Classic Dunitrust nodes subcommand
 pub enum DursCliSubCommand {
     /// Database explorer
-    #[structopt(
-        name = "dbex",
-        raw(setting = "structopt::clap::AppSettings::ColoredHelp")
-    )]
+    #[structopt(name = "dbex", setting(structopt::clap::AppSettings::ColoredHelp))]
     DbExOpt(DbExOpt),
     /// Disable a module
-    #[structopt(name = "disable")]
+    #[structopt(name = "disable", setting(structopt::clap::AppSettings::ColoredHelp))]
     DisableOpt(DisableOpt),
     /// Enable a module
-    #[structopt(name = "enable")]
+    #[structopt(name = "enable", setting(structopt::clap::AppSettings::ColoredHelp))]
     EnableOpt(EnableOpt),
     /// Keys operations
     #[structopt(
         name = "keys",
         author = "inso <inso@tuta.io>",
-        raw(setting = "structopt::clap::AppSettings::ColoredHelp")
+        setting(structopt::clap::AppSettings::ColoredHelp)
     )]
     KeysOpt(KeysOpt),
     /// List available modules
-    #[structopt(name = "modules")]
+    #[structopt(name = "modules", setting(structopt::clap::AppSettings::ColoredHelp))]
     ListModulesOpt(ListModulesOpt),
     /// Reset data or conf or all
-    #[structopt(
-        name = "reset",
-        raw(setting = "structopt::clap::AppSettings::ColoredHelp")
-    )]
+    #[structopt(name = "reset", setting(structopt::clap::AppSettings::ColoredHelp))]
     ResetOpt(ResetOpt),
     /// Start node
-    #[structopt(name = "start")]
+    #[structopt(name = "start", setting(structopt::clap::AppSettings::ColoredHelp))]
     StartOpt(StartOpt),
     /// Synchronize
-    #[structopt(name = "sync")]
+    #[structopt(name = "sync", setting(structopt::clap::AppSettings::ColoredHelp))]
     SyncOpt(SyncOpt),
     /// WS2P1 module subcommand
-    #[structopt(name = "ws2p1")]
+    #[structopt(name = "ws2p1", setting(structopt::clap::AppSettings::ColoredHelp))]
     Ws2p1(WS2POpt),
 }
diff --git a/doc/en/dev/developing-a-durs-module.md b/doc/en/dev/developing-a-durs-module.md
index 3ad4615127a151bcd8f24b6120c552313a59edfa..d27edfa0621406d6994575d13144e6e7f5095f66 100644
--- a/doc/en/dev/developing-a-durs-module.md
+++ b/doc/en/dev/developing-a-durs-module.md
@@ -86,7 +86,6 @@ This type represents your module's command line arguments. If it doesn't use any
 #[derive(StructOpt, Debug, Clone)]
 #[structopt(
     name = "skeleton",
-    raw(setting = "structopt::clap::AppSettings::ColoredHelp")
 )]
 /// YourModule subcommand options
 pub struct YourModuleOpt {}
diff --git a/doc/fr/developpeurs/developper-un-module-durs.md b/doc/fr/developpeurs/developper-un-module-durs.md
index 769614f96bdb3904b98b55df329feb0a884cc7e1..f8da69ff816a42f7933f069d299161766c48a3be 100644
--- a/doc/fr/developpeurs/developper-un-module-durs.md
+++ b/doc/fr/developpeurs/developper-un-module-durs.md
@@ -95,7 +95,6 @@ Exemple de structure vide :
 #[derive(StructOpt, Debug, Clone)]
 #[structopt(
     name = "skeleton",
-    raw(setting = "structopt::clap::AppSettings::ColoredHelp")
 )]
 /// YourModule subcommand options
 pub struct YourModuleOpt {}
diff --git a/lib/core/core/Cargo.toml b/lib/core/core/Cargo.toml
index ba34ef37d63d4d749a2681b0d5b59179d397e7f6..44757d3020df5a67ef93040b2457adf3ed6fb33b 100644
--- a/lib/core/core/Cargo.toml
+++ b/lib/core/core/Cargo.toml
@@ -30,7 +30,7 @@ log = "0.4.*"
 serde = "1.0.*"
 serde_derive = "1.0.*"
 serde_json = "1.0.*"
-structopt= "0.2.*"
+structopt= "0.3.4"
 threadpool = "1.7.*"
 unwrap = "1.2.1"
 
diff --git a/lib/core/core/src/commands/dbex.rs b/lib/core/core/src/commands/dbex.rs
index 748e7cb38602aecee40b495a982d82e324eea981..148bcba6252cc53809c67ddb2cad86a15fc03f6b 100644
--- a/lib/core/core/src/commands/dbex.rs
+++ b/lib/core/core/src/commands/dbex.rs
@@ -23,10 +23,7 @@ use durs_blockchain::dbex::{DbExBcQuery, DbExQuery, DbExTxQuery, DbExWotQuery};
 use durs_conf::DuRsConf;
 
 #[derive(StructOpt, Debug, Clone)]
-#[structopt(
-    name = "dbex",
-    raw(setting = "structopt::clap::AppSettings::ColoredHelp")
-)]
+#[structopt(name = "dbex", setting(structopt::clap::AppSettings::ColoredHelp))]
 /// durs databases explorer
 pub struct DbExOpt {
     #[structopt(short = "c", long = "csv")]
@@ -41,40 +38,22 @@ pub struct DbExOpt {
 /// dbex subcommands
 pub enum DbExSubCommand {
     /// Pubkeys’ balances explorer
-    #[structopt(
-        name = "balance",
-        raw(setting = "structopt::clap::AppSettings::ColoredHelp")
-    )]
+    #[structopt(name = "balance", setting(structopt::clap::AppSettings::ColoredHelp))]
     BalanceOpt(BalanceOpt),
     /// Display blocks current frame
-    #[structopt(
-        name = "blocks",
-        raw(setting = "structopt::clap::AppSettings::ColoredHelp")
-    )]
+    #[structopt(name = "blocks", setting(structopt::clap::AppSettings::ColoredHelp))]
     BlocksOpt(BlocksOpt),
     /// Web of Trust distances explorer
-    #[structopt(
-        name = "distance",
-        raw(setting = "structopt::clap::AppSettings::ColoredHelp")
-    )]
+    #[structopt(name = "distance", setting(structopt::clap::AppSettings::ColoredHelp))]
     DistanceOpt(DistanceOpt),
     /// Forks tree explorer
-    #[structopt(
-        name = "forks",
-        raw(setting = "structopt::clap::AppSettings::ColoredHelp")
-    )]
+    #[structopt(name = "forks", setting(structopt::clap::AppSettings::ColoredHelp))]
     ForksOpt(ForksOpt),
     /// Member explorer
-    #[structopt(
-        name = "member",
-        raw(setting = "structopt::clap::AppSettings::ColoredHelp")
-    )]
+    #[structopt(name = "member", setting(structopt::clap::AppSettings::ColoredHelp))]
     MemberOpt(MemberOpt),
     /// Members explorer
-    #[structopt(
-        name = "members",
-        raw(setting = "structopt::clap::AppSettings::ColoredHelp")
-    )]
+    #[structopt(name = "members")]
     MembersOpt(MembersOpt),
 }
 
diff --git a/lib/core/core/src/commands/keys.rs b/lib/core/core/src/commands/keys.rs
index 7190c1c9b422ccc920aba712adebfd2e602df348..b87c8d848a1208fc683c146a3b5cbbac0de6c6a4 100644
--- a/lib/core/core/src/commands/keys.rs
+++ b/lib/core/core/src/commands/keys.rs
@@ -26,7 +26,7 @@ use durs_conf::DuRsConf;
 #[structopt(
     name = "keys",
     author = "inso <inso@tuta.io>",
-    raw(setting = "structopt::clap::AppSettings::ColoredHelp")
+    setting(structopt::clap::AppSettings::ColoredHelp)
 )]
 /// keys management
 pub struct KeysOpt {
@@ -42,7 +42,7 @@ pub enum KeysSubCommand {
     #[structopt(
         name = "modify",
         author = "inso <inso@tuta.io>",
-        raw(setting = "structopt::clap::AppSettings::ColoredHelp")
+        setting(structopt::clap::AppSettings::ColoredHelp)
     )]
     Modify(ModifyOpt),
 
@@ -50,7 +50,7 @@ pub enum KeysSubCommand {
     #[structopt(
         name = "clear",
         author = "inso <inso@tuta.io>",
-        raw(setting = "structopt::clap::AppSettings::ColoredHelp")
+        setting(structopt::clap::AppSettings::ColoredHelp)
     )]
     Clear(ClearOpt),
 
@@ -58,14 +58,14 @@ pub enum KeysSubCommand {
     #[structopt(
         name = "show",
         author = "inso <inso@tuta.io>",
-        raw(setting = "structopt::clap::AppSettings::ColoredHelp")
+        setting(structopt::clap::AppSettings::ColoredHelp)
     )]
     Show(ShowOpt),
 
     #[structopt(
         name = "wizard",
         author = "inso <inso@tuta.io>",
-        raw(setting = "structopt::clap::AppSettings::ColoredHelp")
+        setting(structopt::clap::AppSettings::ColoredHelp)
     )]
     /// Keys generator wizard
     Wizard(WizardOpt),
@@ -82,17 +82,11 @@ pub struct ModifyOpt {
 #[derive(StructOpt, Debug, Clone)]
 /// keys modify subcommands
 pub enum ModifySubCommand {
-    #[structopt(
-        name = "member",
-        raw(setting = "structopt::clap::AppSettings::ColoredHelp")
-    )]
+    #[structopt(name = "member", setting(structopt::clap::AppSettings::ColoredHelp))]
     /// Salt and password of member key
     MemberSaltPassword(SaltPasswordOpt),
 
-    #[structopt(
-        name = "network",
-        raw(setting = "structopt::clap::AppSettings::ColoredHelp")
-    )]
+    #[structopt(name = "network", setting(structopt::clap::AppSettings::ColoredHelp))]
     /// Salt and password of network key    
     NetworkSaltPassword(SaltPasswordOpt),
 }
diff --git a/lib/core/core/src/commands/modules.rs b/lib/core/core/src/commands/modules.rs
index 7f94cddb3bee5594c500803e7bf4f24584237c96..27f553f1b12f3491048bffe31d33071dbcc9ddb9 100644
--- a/lib/core/core/src/commands/modules.rs
+++ b/lib/core/core/src/commands/modules.rs
@@ -23,10 +23,7 @@ use durs_module::*;
 use std::collections::HashSet;
 
 #[derive(StructOpt, Debug, Clone)]
-#[structopt(
-    name = "enable",
-    raw(setting = "structopt::clap::AppSettings::ColoredHelp")
-)]
+#[structopt(name = "enable", setting(structopt::clap::AppSettings::ColoredHelp))]
 /// Enable some module
 pub struct EnableOpt {
     #[structopt(parse(from_str))]
@@ -46,10 +43,7 @@ impl DursExecutableCoreCommand for EnableOpt {
 }
 
 #[derive(StructOpt, Debug, Clone)]
-#[structopt(
-    name = "disable",
-    raw(setting = "structopt::clap::AppSettings::ColoredHelp")
-)]
+#[structopt(name = "disable", setting(structopt::clap::AppSettings::ColoredHelp))]
 /// Disable some module
 pub struct DisableOpt {
     #[structopt(parse(from_str))]
@@ -69,10 +63,7 @@ impl DursExecutableCoreCommand for DisableOpt {
 }
 
 #[derive(StructOpt, Debug, Copy, Clone)]
-#[structopt(
-    name = "modules",
-    raw(setting = "structopt::clap::AppSettings::ColoredHelp")
-)]
+#[structopt(name = "modules", setting(structopt::clap::AppSettings::ColoredHelp))]
 /// list module
 pub struct ListModulesOpt {
     #[structopt(short = "d")]
diff --git a/lib/core/core/src/commands/start.rs b/lib/core/core/src/commands/start.rs
index d510117849ff18c12b72cb10d2e2b9c4f27d009f..d5e35432e60b6cc4add6f141f5767621c0375f8a 100644
--- a/lib/core/core/src/commands/start.rs
+++ b/lib/core/core/src/commands/start.rs
@@ -16,9 +16,6 @@
 //! Durs-core cli : start subcommands.
 
 #[derive(StructOpt, Debug, Copy, Clone)]
-#[structopt(
-    name = "start",
-    raw(setting = "structopt::clap::AppSettings::ColoredHelp")
-)]
+#[structopt(name = "start", setting(structopt::clap::AppSettings::ColoredHelp))]
 /// start durs server
 pub struct StartOpt {}
diff --git a/lib/core/module/Cargo.toml b/lib/core/module/Cargo.toml
index c23a256943c660a343046a17134460a1db5b955c..d7aa7cdbef02a27c5b2b4a59263445cf8d360eaa 100644
--- a/lib/core/module/Cargo.toml
+++ b/lib/core/module/Cargo.toml
@@ -20,6 +20,6 @@ log = "0.4.*"
 serde = "1.0.*"
 serde_derive = "1.0.*"
 serde_json = "1.0.*"
-structopt= "0.2.*"
+structopt= "0.3.4"
 
 [features]
diff --git a/lib/core/network/Cargo.toml b/lib/core/network/Cargo.toml
index c69b37103c3c895bd7a8b8b34174330ecd73cf7c..040ff5b7ecbb8a04aeee51b15ecf2e57c5708919 100644
--- a/lib/core/network/Cargo.toml
+++ b/lib/core/network/Cargo.toml
@@ -21,7 +21,7 @@ failure = "0.1.5"
 serde = "1.0.*"
 serde_derive = "1.0.*"
 serde_json = "1.0.*"
-structopt= "0.2.*"
+structopt= "0.3.4"
 
 [dev-dependencies]
 
diff --git a/lib/core/network/cli/sync.rs b/lib/core/network/cli/sync.rs
index f91ad73da8314943936c79178d4bf752f9d853dc..46a10e2be24ed04d0e731c443608b9569492d30e 100644
--- a/lib/core/network/cli/sync.rs
+++ b/lib/core/network/cli/sync.rs
@@ -19,10 +19,7 @@ use durs_network_documents::url::Url;
 use std::path::PathBuf;
 
 #[derive(StructOpt, Debug, Clone)]
-#[structopt(
-    name = "sync",
-    raw(setting = "structopt::clap::AppSettings::ColoredHelp")
-)]
+#[structopt(name = "sync", setting(structopt::clap::AppSettings::ColoredHelp))]
 /// Synchronization from network
 pub struct SyncOpt {
     /// cautious mode (check all protocol rules, very slow)
diff --git a/lib/dunp/network-documents/src/url.rs b/lib/dunp/network-documents/src/url.rs
index a77de3ba45ade1f2eebdf50be9f0be7f224a4993..0a69aa6938362dd46adae4d227ed73ef8fdb6663 100644
--- a/lib/dunp/network-documents/src/url.rs
+++ b/lib/dunp/network-documents/src/url.rs
@@ -169,6 +169,13 @@ impl Url {
             Url::UrlWithoutScheme(url_without_scheme) => url_without_scheme.tls(),
         }
     }
+    pub fn from_host_port_path(host: Host, port: u16, path: Option<String>) -> Self {
+        Url::UrlWithoutScheme(UrlWithoutScheme {
+            host,
+            port: Some(port),
+            path,
+        })
+    }
     pub fn path(&self) -> &str {
         match self {
             Url::Url(url) => url.path(),
diff --git a/lib/modules/skeleton/Cargo.toml b/lib/modules/skeleton/Cargo.toml
index 386d29531d05c0a9b751b2bbb9becb3babbe871d..5134dd56dcf53e403bc83e8af67017a9045d0e98 100644
--- a/lib/modules/skeleton/Cargo.toml
+++ b/lib/modules/skeleton/Cargo.toml
@@ -23,6 +23,6 @@ log = "0.4.*"
 serde = "1.0.*"
 serde_derive = "1.0.*"
 serde_json = "1.0.*"
-structopt= "0.2.*"
+structopt= "0.3.4"
 
 [features]
diff --git a/lib/modules/skeleton/lib.rs b/lib/modules/skeleton/lib.rs
index 23b6cc18f26e94248b63ba03843240d886c5e34e..f6fcbf65e5f55a40496cdf7d4f519a78bab22dcf 100644
--- a/lib/modules/skeleton/lib.rs
+++ b/lib/modules/skeleton/lib.rs
@@ -92,10 +92,7 @@ pub enum SkeletonMsg {
 }
 
 #[derive(StructOpt, Debug, Clone)]
-#[structopt(
-    name = "skeleton",
-    raw(setting = "structopt::clap::AppSettings::ColoredHelp")
-)]
+#[structopt(name = "skeleton", setting(structopt::clap::AppSettings::ColoredHelp))]
 /// Skeleton subcommand options
 pub struct SkeletonOpt {
     /// Change test conf fake field
diff --git a/lib/modules/tui/Cargo.toml b/lib/modules/tui/Cargo.toml
index 126272bd0ad2a43452ab1b8befe082cb36d1d113..a604bb022807d958446c9730a86d446d9e33cff8 100644
--- a/lib/modules/tui/Cargo.toml
+++ b/lib/modules/tui/Cargo.toml
@@ -24,7 +24,7 @@ log = "0.4.*"
 serde = "1.0.*"
 serde_derive = "1.0.*"
 serde_json = "1.0.*"
-structopt= "0.2.*"
+structopt= "0.3.4"
 termion = "1.5.2"
 
 [features]
diff --git a/lib/modules/tui/lib.rs b/lib/modules/tui/lib.rs
index b75333dfbc0183f6fb92773311679309d9634e5c..9e4b22065263e81a81c29a514096ff37456c2876 100644
--- a/lib/modules/tui/lib.rs
+++ b/lib/modules/tui/lib.rs
@@ -86,10 +86,7 @@ pub enum TuiMess {
 pub struct TuiModule {}
 
 #[derive(StructOpt, Debug, Copy, Clone)]
-#[structopt(
-    name = "tui",
-    raw(setting = "structopt::clap::AppSettings::ColoredHelp")
-)]
+#[structopt(name = "tui", setting(structopt::clap::AppSettings::ColoredHelp))]
 /// Tui subcommand options
 pub struct TuiOpt {}
 
diff --git a/lib/modules/ws2p-v1-legacy/Cargo.toml b/lib/modules/ws2p-v1-legacy/Cargo.toml
index 0a54e936d7f392861af211d12ead3d66db380e76..faaa3d1fbe8d286937b24f60287c039b3d9a831b 100644
--- a/lib/modules/ws2p-v1-legacy/Cargo.toml
+++ b/lib/modules/ws2p-v1-legacy/Cargo.toml
@@ -28,7 +28,7 @@ log = "0.4.*"
 maplit = "1.0.1"
 serde = { version = "1.0.*", features = ["derive"] }
 serde_json = "1.0.*"
-structopt= "0.2.*"
+structopt= "0.3.4"
 unwrap = "1.2.1"
 uuid = { version = "0.7.4", features = ["serde", "v4"] }
 ws = "0.9.*"
diff --git a/lib/modules/ws2p-v1-legacy/src/lib.rs b/lib/modules/ws2p-v1-legacy/src/lib.rs
index 055465eb8851dde994f2f56c08caaf95942c615e..7afa513d8bc53d133f491e08f0e80617fa6480aa 100644
--- a/lib/modules/ws2p-v1-legacy/src/lib.rs
+++ b/lib/modules/ws2p-v1-legacy/src/lib.rs
@@ -389,10 +389,7 @@ impl NetworkModule<DuRsConf, DursMsg> for WS2Pv1Module {
 }
 
 #[derive(Clone, Debug, StructOpt)]
-#[structopt(
-    name = "ws2p",
-    raw(setting = "structopt::clap::AppSettings::ColoredHelp")
-)]
+#[structopt(name = "ws2p", setting(structopt::clap::AppSettings::ColoredHelp))]
 /// WS2P1 subcommand options
 pub struct WS2POpt {
     /// Ws2p1 subcommands
diff --git a/lib/modules/ws2p-v1-legacy/src/subcommands/mod.rs b/lib/modules/ws2p-v1-legacy/src/subcommands/mod.rs
index 82294605a48e1193dfaf710502938aed0e011614..dcfbf646189bf2e47766753fdf7341d0dd2884fc 100644
--- a/lib/modules/ws2p-v1-legacy/src/subcommands/mod.rs
+++ b/lib/modules/ws2p-v1-legacy/src/subcommands/mod.rs
@@ -23,10 +23,7 @@ use prefered::Ws2pPreferedSubCommands;
 /// Ws2p1 subcommands
 pub enum WS2PSubCommands {
     /// Prefered keys
-    #[structopt(
-        name = "prefered",
-        raw(setting = "structopt::clap::AppSettings::ColoredHelp")
-    )]
+    #[structopt(name = "prefered", setting(structopt::clap::AppSettings::ColoredHelp))]
     Prefered {
         #[structopt(subcommand)]
         subcommand: Ws2pPreferedSubCommands,
diff --git a/lib/modules/ws2p-v1-legacy/src/subcommands/prefered.rs b/lib/modules/ws2p-v1-legacy/src/subcommands/prefered.rs
index acf09d35528ee84e925e493e89539832a2848d7f..8de3280321cd1cd8f3da4c95db2ff189acde7a25 100644
--- a/lib/modules/ws2p-v1-legacy/src/subcommands/prefered.rs
+++ b/lib/modules/ws2p-v1-legacy/src/subcommands/prefered.rs
@@ -26,44 +26,29 @@ use std::str::FromStr;
 /// Ws2p1 prefered subcommands
 pub enum Ws2pPreferedSubCommands {
     /// Add prefered pubkey
-    #[structopt(
-        name = "add",
-        raw(setting = "structopt::clap::AppSettings::ColoredHelp")
-    )]
+    #[structopt(name = "add", setting(structopt::clap::AppSettings::ColoredHelp))]
     Add {
         /// Public key to add
         public_keys: Vec<PubKey>,
     },
     /// Add prefered pubkeys from file (one pubkey per line)
-    #[structopt(
-        name = "add-file",
-        raw(setting = "structopt::clap::AppSettings::ColoredHelp")
-    )]
+    #[structopt(name = "add-file", setting(structopt::clap::AppSettings::ColoredHelp))]
     AddFromFile {
         /// File path
         #[structopt(parse(from_os_str))]
         file_path: PathBuf,
     },
     /// Clear prefered pubkeys
-    #[structopt(
-        name = "clear",
-        raw(setting = "structopt::clap::AppSettings::ColoredHelp")
-    )]
+    #[structopt(name = "clear", setting(structopt::clap::AppSettings::ColoredHelp))]
     Clear,
     /// Remove prefered pubkey
-    #[structopt(
-        name = "rem",
-        raw(setting = "structopt::clap::AppSettings::ColoredHelp")
-    )]
+    #[structopt(name = "rem", setting(structopt::clap::AppSettings::ColoredHelp))]
     Rem {
         /// Public key to remove
         public_keys: Vec<PubKey>,
     },
     /// Show prefered pubkeys
-    #[structopt(
-        name = "show",
-        raw(setting = "structopt::clap::AppSettings::ColoredHelp")
-    )]
+    #[structopt(name = "show", setting(structopt::clap::AppSettings::ColoredHelp))]
     Show,
 }
 
diff --git a/lib/modules/ws2p/ws2p/Cargo.toml b/lib/modules/ws2p/ws2p/Cargo.toml
index 4d8f0dd391f8e36c95283cded9cd8cc67ea5fa1c..259f35319df918e0425c394765349ef10a9df232 100644
--- a/lib/modules/ws2p/ws2p/Cargo.toml
+++ b/lib/modules/ws2p/ws2p/Cargo.toml
@@ -29,7 +29,7 @@ maplit = "1.0.1"
 serde = "1.0.*"
 serde_derive = "1.0.*"
 serde_json = "1.0.*"
-structopt= "0.2.*"
+structopt= "0.3.4"
 ws = { version = "0.9.*", features = ["permessage-deflate"] }
 
 [dev-dependencies]
diff --git a/lib/modules/ws2p/ws2p/src/lib.rs b/lib/modules/ws2p/ws2p/src/lib.rs
index e9d5f71d92c8eadb23dc4d7ed253d82f12155a16..13e4c09fb747e5bb29d2ef2844e96e81b9f37688 100644
--- a/lib/modules/ws2p/ws2p/src/lib.rs
+++ b/lib/modules/ws2p/ws2p/src/lib.rs
@@ -147,10 +147,7 @@ impl NetworkModule<DuRsConf, DursMsg> for WS2PModule {
 }
 
 #[derive(StructOpt, Debug, Copy, Clone)]
-#[structopt(
-    name = "ws2p",
-    raw(setting = "structopt::clap::AppSettings::ColoredHelp")
-)]
+#[structopt(name = "ws2p", setting(structopt::clap::AppSettings::ColoredHelp))]
 /// WS2P subcommand options
 pub struct WS2POpt {}