[workspace]
default-members = [".", "rpc", "cli", "ext"]
members = [".", "rpc", "cli", "ext"]

[package]
name = "storm_node"
description = "Storm node"
version = "0.9.0"
authors = ["Dr. Maxim Orlovsky <orlovsky@lnp-bp.org>"]
license = "MIT"
keywords = ["daemon", "microservice", "lightning-network", "lnp-bp", "storage"]
categories = ["network-programming"]
edition = "2021"
rust-version = "1.59.0"
readme = "README.md"
build = "build.rs"
exclude = [".github", "Dockerfile", ".dockerignore", "contrib", "doc"]

[lib]
name = "storm_node"

[[bin]]
name = "stormd"
required-features = ["server"]

[[bin]]
name = "chatd"
required-features = ["server"]

[[bin]]
name = "transferd"
required-features = ["server"]

[[bin]]
name = "downpourd"
required-features = ["server"]

[dependencies]
# LNP/BP crates
amplify = "3.13.0"
strict_encoding = "0.9.0-rc.2"
commit_verify = "0.9.0"
internet2 = { version = "0.9.0", features = ["keygen", "zmq"] }
microservices = { version = "0.9.0", default-features = false, features = ["node"] }
storm-core = "0.9.0"
storm_ext = { version = "0.9.0", path = "ext" }
storm_rpc = { version = "0.9.0", path = "rpc" }
store_rpc = "0.9.0"
lnp2p = "0.9.0"
lnp_rpc = "0.9.0"
# OS
rand = "0.8.5"
chrono = "0.4"
nix = "0.24"
log = { version = "0.4", features = ["max_level_trace", "release_max_level_debug"] }
env_logger = "0.7"
clap = { version = "~3.2.23", optional = true, features = ["env", "derive"] }
settings = { version = "0.10", package = "config", optional = true }
configure_me = { version = "0.4", optional = true }
dotenv = { version = "0.15", optional = true }
colored = "2.0.0"
shellexpand = { version = "2", optional = true }

[build-dependencies]
amplify = "3.13.0"
internet2 = "0.9.0"
microservices = { version = "0.9.0", default-features = false, features = ["node", "peer"] }
storm_ext = { version = "0.9.0", path = "ext" }
storm_rpc = { version = "0.9.0", path = "rpc" }
store_rpc = "0.9.0"
clap = { version = "~3.2.23", features = ["env", "derive"] }
clap_complete = "~3.2.5"
log = { version = "0.4", features = ["max_level_trace", "release_max_level_debug"] }
shellexpand = "2"
configure_me_codegen = "0.4"

[features]
default = ["server"]

# Server is a standalone application that runs daemons.
# Required for all apps that can be launched from command-line shell as binaries
# (i.e. both servers and cli)
server = ["microservices/server", "microservices/cli", "dotenv", "clap", "settings", "configure_me",
          "amplify/parse_arg", "shellexpand"]
# Embedded is an app that contains embedded node and that talks to it through
# integration layer
embedded = ["microservices/embedded"]

[package.metadata.configure_me]
spec = "config_spec.toml"