forked from RGB-WG/rgb-node
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Cargo.toml
126 lines (114 loc) · 4.51 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
122
123
124
125
126
[package]
name = "rgb_node"
description = "RGB node"
version = "0.4.2"
authors = ["Dr. Maxim Orlovsky <[email protected]>"]
license = "MIT"
keywords = ["bitcoin", "node", "layer-2", "smart-contracts", "rgb"]
edition = "2018"
readme = "README.md"
exclude = [".github", "/data", "/sample", "Dockerfile"]
[lib]
name = "rgb_node"
[[bin]]
name = "rgbd"
required-features = ["server"]
[[bin]]
name = "stashd"
required-features = ["server"]
[[bin]]
name = "fungibled"
required-features = ["server"]
[[bin]]
name = "rgb-cli"
required-features = ["cli"]
[dependencies]
# LNP/BP crates
amplify = "3"
amplify_derive = "2.4.2"
lnpbp = "0.4"
rgb-core = ">=0.4.3"
descriptor-wallet = { version = "0.4", features = ["electrum"] }
rgb20 = { version = "0.4", optional = true }
# rgb21 = { git = "https://github.com/rgb-org/rgb-core", optional = true }
# rgb22 = { git = "https://github.com/rgb-org/rgb-core", optional = true }
# rgb23 = { git = "https://github.com/rgb-org/rgb-core", optional = true }
internet2 = "0.3.10"
microservices = { version = "0.3.10", default-features = false }
# Bitcoin
bitcoin = "0.26"
electrum-client = { version = "0.6", optional = true }
# Rust language
lazy_static = "1.4"
nix = { version = "0.19", optional = true }
chrono = "0.4"
diesel = { version = "1.4", optional = true, features = ["sqlite", "uuid", "numeric", "chrono"] }
hammersbald = { version = "2.4", optional = true }
# Serialization & parsing
serde_crate = { package = "serde", version = "1", features = ["derive"], optional = true }
serde_with = { version = "1.5", optional = true }
serde_json = { version = "1", optional = true }
serde_yaml = { version = "0.8", optional = true }
toml = { version = "0.5", optional = true }
bech32 = "0.7"
base64 = { version = "0.12", optional = true }
# Congig & logging
log = { version = "0.4", features = ["max_level_trace", "release_max_level_debug"] }
env_logger = "0.7"
clap = { version = "3.0.0-beta.2", optional = true }
settings = { version = "0.10", package = "config", optional = true }
configure_me = { version = "0.3", optional = true }
dotenv = { version = "0.15", optional = true }
colored = { version = "2", optional = true }
shellexpand = { version = "2", optional = true }
# 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", "fungibles"]
all = [
"server", "cli", "serde", "tor", "sql", "nosql", "vendored_openssl",
"fungibles", # "collectibles", "identities", "auditlogs"
]
# Server is a standalone application that runs daemon
server = ["node", "shell", "nix", "microservices/server"]
# Command-line application feature
cli = ["shell", "client", "serde", "microservices/cli"]
# Embedded is an app that contains embedded node and that talks to it through
# integration layer
embedded = ["client", "node", "microservices/embedded"]
# 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 command-line
node = ["serde", "internet2/keygen", "bitcoin/rand", "internet2/zmq", "microservices/node",
"internet2/url", "electrum-client", "base64",
# Required for storing config and cache
"_config", "_rpc"]
# Feature is required for any applications that talks to daemon processes
client = ["internet2/zmq", "microservices/client", "microservices/node", "bitcoin/rand",
"electrum-client", "base64",
"internet2/url", "clap", "_rpc"]
# 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", "serde",
"amplify/parse_arg", "microservices/shell", "shellexpand", "colored"
]
# Internally used features for convenience
_config = ["serde_yaml", "toml"]
_rpc = []
serde = ["serde_crate", "serde_with", "serde_yaml", "serde_json", "toml",
"amplify/serde", "lnpbp/serde", "internet2/serde", "microservices/serde",
"chrono/serde", "bitcoin/use-serde", "rgb20/serde"]
tor = ["microservices/tor", "internet2/tor"]
sql = ["diesel"]
nosql = ["hammersbald"]
vendored_openssl = ["microservices/vendored_openssl", "internet2/vendored_openssl"]
# Schema-specific components exposed as features:
fungibles = ["rgb20"]
# collectibles = ["rgb21"]
# identities = ["rgb22"]
# auditlogs = ["rgb23"]