[package]
name = "alfis"
version = "0.8.6"
authors = ["Revertron <alfis@revertron.com>"]
edition = "2021"
build = "build.rs"
readme = "README.md"
homepage = "https://alfis.name"
repository = "https://github.com/Revertron/Alfis"
exclude = ["blockchain.db", "alfis.toml"]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
getopts = "0.2.21"
log = "0.4.22"
simplelog = "0.12.2"
toml = "0.8.19"
sha2 = "0.10.8"
ed25519-dalek = "2.1.1"
x25519-dalek = { version = "2.0.1", features = ["reusable_secrets"] }
ecies-ed25519-ng = { git = "https://github.com/Revertron/ecies-ed25519-ng", rev = "554ca29", version = "0.5.3" }
chacha20poly1305 = "0.10.1"
blakeout = "0.3.0"
num_cpus = "1.16.0"
byteorder = "1.5.0"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
bincode = "1.3.3"
serde_cbor = "0.11.2"
num-bigint = "0.4.6"
chrono = { version = "0.4.38", features = ["serde"] }
time = "0.3.36"
rand = { package = "rand", version = "0.8.5" }
sqlite = "0.36.0"
uuid = { version = "1.11.0", features = ["serde", "v4"] }
mio = { version = "1.0.0", features = ["os-poll", "net"] }
ureq = { version = "2.10", optional = true }
lru = "0.12"
derive_more = { version = "1.0.0", features = ["display", "error", "from"] }
lazy_static = "1.5.0"
spmc = "0.3.0"
thread-priority = "1.2.0"

# Optional dependencies regulated by features
# web-view = { git = "https://github.com/Boscop/web-view", features = [], optional = true }
gtk = { package = "gtk4", version = "0.9.6", features = ["v4_16"], optional = true }
adw = { version = "0.7.2", package = "libadwaita", features = ["v1_5"], optional = true }
tinyfiledialogs = { version = "3.9.1", optional = true }
open = { version = "5.3.0", optional = true }

[target.'cfg(windows)'.dependencies]
winapi = { version = "0.3.9", features = ["impl-default", "wincon", "shellscalingapi"] }
windows-service = "0.7.0"

[build-dependencies]
winres = "0.1.12"

[profile.release]
opt-level = 3
lto = true
strip = true  # Automatically strip symbols from the binary.

[profile.dev]
opt-level = 2

[profile.test]
opt-level = 2

[package.metadata.winres]
ProductName="ALFIS"
FileDescription="Alternative Free Identity System"

[features]
gui = ["gtk", "adw"]
# webgui = ["web-view", "tinyfiledialogs", "open"]
# edge = ["webgui", "web-view/edge"]
doh = ["ureq"]
default = ["gui", "doh"]
