forked from LNP-WG/lnp-node
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Cargo.toml
121 lines (110 loc) · 4.36 KB
/
Cargo.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
[package]
name = "lnp_node"
description = "LNP node"
version = "0.1.0-alpha.4"
authors = ["Dr. Maxim Orlovsky <[email protected]>"]
license = "MIT"
keywords = ["bitcoin", "node", "lightning-network", "smart-contracts", "rgb"]
edition = "2018"
readme = "README.md"
build = "build.rs"
[[bin]]
name = "lnpd"
required-features = ["server"]
[[bin]]
name = "peerd"
required-features = ["server"]
[[bin]]
name = "gossipd"
required-features = ["server"]
[[bin]]
name = "routed"
required-features = ["server"]
[[bin]]
name = "channeld"
required-features = ["server"]
[[bin]]
name = "lnp-cli"
required-features = ["cli"]
[dependencies]
# LNP/BP crates
amplify = "~2.2.1"
amplify_derive = "~2.2.2"
lnpbp = { version = "~0.2.0-beta.1", features = ["lnp", "url", "websockets"] }
lnpbp_derive = "=0.2.0-beta.1"
lnpbp_services = "=0.2.0-beta.1"
lazy_static = "~1.4.0"
# Rust language
nix = { version = "~0.19.0", optional = true }
chrono = "~0.4.19"
# Bitcoin
electrum-client = { version = "=0.3.0-beta.1", optional = true }
# Serialization & parsing
serde_crate = { package = "serde", version = "~1.0.106", features = ["derive"], optional = true }
serde_with = { version = "~1.5.0", optional = true }
serde_json = { version = "~1.0.55", optional = true }
serde_yaml = { version = "~0.8.13", optional = true }
toml = { version = "~0.5.6", optional = true }
bech32 = { version = "~0.7.2", optional = true }
base64 = { version = "~0.12.1", optional = true }
regex = { version = "~1.3.9", optional = true }
url = { version = "~2.1.1", optional = true }
# Congig & logging
settings = { version = "~0.10.1", package = "config", optional = true }
configure_me = { version = "0.3.4", optional = true }
dotenv = { version = "~0.15.0", optional = true }
clap = { version = "=3.0.0-beta.2", optional = true }
log = { version = "~0.4.8", optional = true, features = ["max_level_trace", "release_max_level_debug"] }
env_logger = { version = "~0.7.1", optional = true }
colored = { version = "~2.0.0", optional = true }
shellexpand = { version = "~2.0.0", optional = true }
# Processes & IPC
async-trait = { version = "~0.1.35", optional = true }
tokio = { version = "~0.2.21", features = ["full"], optional = true }
zmq = { version = "~0.9.2", optional = true }
[build-dependencies]
amplify = "~2.2.1"
amplify_derive = "~2.2.2"
lnpbp = { version = "=0.2.0-beta.1", features = ["lnp", "url", "websockets"] }
lnpbp_services = "=0.2.0-beta.1"
clap = "=3.0.0-beta.2"
clap_generate = "=3.0.0-beta.2"
log = { version = "~0.4.8", features = ["max_level_trace", "release_max_level_debug"] }
shellexpand = "~2.0.0"
configure_me_codegen = "~0.3.14"
[patch.crates-io]
# Use this for Android builds
# Remove this once https://github.com/jean-airoldie/zeromq-src-rs/pull/15 got merged
# zeromq-src = { git = "https://github.com/LNP-BP/zeromq-src-rs", branch = "fix/cmake" }
# Recommended set of features:
# 1. Standalone node: `server` (=`node`+`shell`)
# 2. Cli to remote node: `cli` (auto includes `shell` and `integration`)
# 3. Mobile app talking to a server: `client`
# 4. Mobile app with embedded node: `embedded` (auto includes `client` + `node`)
# 5. Simple cli utility app: `shell`
[features]
default = ["client"]
# Server is a standalone application that runs daemon
server = ["node", "shell", "nix", "lnpbp_services/server"]
# Feature is required for any applications that talks to daemon processes
client = ["zmq", "lnpbp_services/client", "lnpbp/keygen"]
# Embedded is an app that contains ndoe in itself and that talks to it through
# integration layer
embedded = ["client", "node", "lnpbp_services/embedded"]
# Command-line application feature
cli = ["shell", "client", "lnpbp_services/cli", "url", "lnpbp/url"]
# Required for all apps that can be launched from command-line shell as binaries
# (i.e. both servers and cli)
shell = [
"dotenv", "clap", "settings", "configure_me", "log", "env_logger", "serde",
"amplify/parse_arg", "lnpbp_services/shell", "shellexpand", "colored"
]
# Besides server node can be run as a part of mobile app
# and other types of clients; thus `server` != `node`.
# This feature results in building with features not required for CLI
node = ["serde", "lnpbp/keygen", "tokio", "lnpbp/tokio", "zmq", "lnpbp_services/node",
"url", "lnpbp/url"]
serde = ["serde_crate", "serde_with", "serde_yaml", "toml",
"amplify/serde", "lnpbp/serde", "lnpbp_services/serde"]
[package.metadata.configure_me]
spec = "config_spec.toml"