abscissa_core 0.4.0

Application microframework with support for command-line option parsing, configuration, error handling, logging, and terminal interactions. This crate contains the framework's core functionality.
Documentation
[package]
name        = "abscissa_core"
description = """
Application microframework with support for command-line option parsing,
configuration, error handling, logging, and terminal interactions.
This crate contains the framework's core functionality.
"""
version     = "0.4.0" # Also update html_root_url in lib.rs when bumping this
license     = "Apache-2.0"
authors     = ["Tony Arcieri <tony@iqlusion.io>"]
edition     = "2018"
homepage    = "https://github.com/iqlusioninc/abscissa/"
repository  = "https://github.com/iqlusioninc/abscissa/tree/develop/"
readme      = "../README.md"
categories  = ["command-line-interface", "configuration", "rust-patterns"]
keywords    = ["abscissa", "cli", "application", "framework", "service"]

[badges]
maintenance = { status = "actively-developed" }

[dependencies]
abscissa_derive = { version = "0.4", path = "../derive" }
canonical-path = "2"
chrono = { version = "0.4", optional = true, features = ["serde"] }
failure = "0.1"
generational-arena = { version = "0.2", optional = true }
gumdrop = { version = "0.7", optional = true }
lazy_static = "1"
log = { version = "0.4", optional = true, features = ["std"] }
regex = { version = "1", optional = true }
secrecy = { version = "0.4", optional = true, features = ["serde"] }
semver = { version = "0.9", optional = true }
serde = { version = "1", optional = true, features = ["serde_derive"] }
termcolor = { version = "1", optional = true }
toml = { version = "0.5", optional = true }
wait-timeout = { version = "0.2", optional = true }

[target.'cfg(unix)'.dependencies]
libc = { version = "0.2", optional = true }
signal-hook = { version = "0.1", optional = true }

[features]
default = ["application", "generational-arena", "signals", "secrets", "testing", "time"]
application = ["config", "logging", "options", "semver/serde", "terminal"]
config = ["secrets", "serde", "terminal", "toml"]
logging = ["log"]
options = ["gumdrop"]
secrets = ["secrecy"]
signals = ["libc", "signal-hook"]
terminal = ["termcolor"]
testing = ["regex", "wait-timeout"]
time = ["chrono"]