Cargo Features
[dependencies]
keyring_node = { version = "0.1.0-beta.4", default-features = false, features = ["all", "server", "cli", "embedded", "node", "client", "shell", "serde", "tor", "vendored_openssl", "bech32", "log", "env_logger"] }
Recommended set of features:
- Standalone node:
server
(=node
+shell
)- Cli to remote node:
cli
(auto includesshell
andintegration
)- Mobile app talking to a server:
client
- Mobile app with embedded node:
embedded
(auto includesclient
+node
)- Simple cli utility app:
shell
- default = cli, server
-
These default features are set whenever
keyring_node
is added without
somewhere in the dependency tree.default-features = false - all = cli, serde, server, tor, vendored_openssl
- server default all? = node, shell
-
Server is a standalone application that runs daemon
Enables server of microservices ^0.3.2
Required by the keyringd binary
- cli default all? = client, serde, shell
-
Command-line application feature
Enables cli of microservices ^0.3.2
Affects
keyring_node::cli
…Required by the keyring-cli binary
- embedded = client, node
-
Embedded is an app that contains embedded node and that talks to it through integration layer
Enables embedded of microservices ^0.3.2
Affects
error::ConfigInitError
… - node embedded? server = _rpc, base64, serde, serde_yaml, toml
-
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-lineEnables bitcoin ^0.26, keygen, url and zmq of internet2 ^0.3.4, node of microservices ^0.3.2
Affects
keyring_node::daemon
,keyring_node::vault
… - client cli embedded? = _rpc, base64, clap
-
Feature is required for any applications that talks to daemon processes
Enables bitcoin ^0.26, url and zmq of internet2 ^0.3.4, client and node of microservices ^0.3.2
- shell cli server = clap, colored, configure_me, dotenv, serde, settings, shellexpand
-
Required for all apps that can be launched from command-line shell as binaries (i.e. both servers and cli)
Enables shell of microservices ^0.3.2 and parse_arg of amplify ^3
Rust language
Affects
error::ConfigInitError
… - serde all? cli node? shell? = serde_crate, serde_json, serde_with, serde_yaml, toml
-
Enables serde of amplify ^3, use-serde of bitcoin ^0.26, serde of chrono, internet2 ^0.3.4, lnpbp ^0.3, microservices ^0.3.2, slip132 ^0.3.0-rc.1, and descriptor-wallet ^0.3
- tor all?
-
Enables tor of internet2 ^0.3.4 and microservices ^0.3.2
internet2:
Networking
---------- - vendored_openssl all?
-
Enables vendored_openssl of internet2 ^0.3.4 and microservices ^0.3.2
- _rpc client? node?
-
Affects
keyring_node::rpc
…
Features from optional dependencies
In crates that don't use the dep:
syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.
- serde_crate serde?
-
Enables serde
Serialization & parsing
- serde_with serde?
-
Enables serde_with ~1.5.1
- serde_json serde?
- serde_yaml node? serde?
-
Enables serde_yaml ~0.8.13
Affects
opts::KEYRING_VAULT_FORMAT
… - toml node? serde?
-
Enables toml ~0.5.6
- bech32 implicit feature
-
Enables bech32 ~0.7.2
bech32:
Encodes and decodes the Bech32 format and implements the bech32 and bech32m checksums
- base64 client? node?
-
Enables base64 ~0.12.1
- settings shell?
-
Enables config ~0.10.1
Congig & logging
- configure_me shell?
- dotenv shell?
- clap client? shell?
-
Enables clap =3.0.0-beta.2
- log implicit feature
-
Enables log
log:
A lightweight logging facade for Rust
- env_logger implicit feature
-
Enables env_logger ~0.7.1
env_logger:
A logging implementation for
log
which is configured via an environment variable - colored shell?
-
Enables colored ~2.0.0
- shellexpand shell?
-
Enables shellexpand ~2.0.0