[package] name = "lnpbp_services" version = "0.3.0-alpha.1" license = "MIT" authors = ["Dr Maxim Orlovsky "] description = "LNP/BP support crate for devloping microservices" repository = "https://github.com/LNP-BP/rust-lnpbp" homepage = "https://github.com/LNP-BP" keywords = ["microservices", "lightning", "lnp-bp", "layer-3", "lnp"] readme = "../README.md" edition = "2018" [dependencies] # LNP/BP libraries amplify = "2.4" amplify_derive = "2.4" lnpbp = { version = ">=0.3.0-alpha.1", path = ".." } lnpbp_derive = { version = ">=0.3.0-alpha.1", path = "../derive" } # Serialization & parsing serde_crate = { package = "serde", version = "~1.0.106", features = ["derive"], optional = true } serde_with = { version = "~1.5.1", optional = true, features = ["hex"] } toml = { version = "~0.5.7", optional = true } # Congig settings = { version = "~0.10.1", package = "config", 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 } # Networking tokio = { version = "~0.3.5", features = ["rt"], optional = true } zmq = { version = "~0.9.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] # Server is a standalone application that runs daemon server = ["node", "shell"] # Feature is required for any applications that talks to daemon processes # TODO: Consider converting this list of feature into non-optional dependecies client = ["zmq", "log", "env_logger"] # Embedded is an app that contains ndoe in itself and that talks to it through # integration layer embedded = ["client", "node"] # Command-line application feature cli = ["shell", "client", "serde"] # Required for all apps that can be launched from command-line shell as binaries # (i.e. both servers and cli) shell = ["dotenv", "clap", "settings", "amplify/parse_arg", "serde", "log", "env_logger"] # 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", "zmq", "log", "env_logger"] serde = ["serde_crate", "serde_with", "amplify/serde", "lnpbp/serde", "toml"] # TODO: Consider adding "rpc" feature which will be replacement for # any("node", "client") and will hold the features common for both