[package] name = "malwaredb" version = "0.0.15" # until Starship learns to read the workspace version # version.workspace = true edition.workspace = true license.workspace = true authors.workspace = true repository.workspace = true homepage.workspace = true description = "MalwareDB does the bookkeeping for malware & goodware datasets, aimed at helping malware researchers and forensic investigators." keywords.workspace = true categories.workspace = true build = "build.rs" [features] default = [] admin = ["dep:dialoguer", "dep:flate2", "malwaredb-server/admin", "dep:chrono", "dep:walkdir", "dep:zip"] admin-gui = ["malwaredb-server/admin", "dep:slint", "dep:slint-build", "futures/executor"] sqlite = ["malwaredb-server/sqlite"] vt = ["malwaredb-server/vt", "dep:malwaredb-virustotal"] [dependencies] malwaredb-api = { workspace = true } malwaredb-server = { workspace = true } malwaredb-types = { workspace = true, features = ["elf", "macho", "office95", "officexml", "pdf", "pe32", "pef", "rtf"] } anyhow = { workspace = true } bytesize = { workspace = true, features = ["serde"] } cart_container = { workspace = true } chrono = { workspace = true, optional = true } clap = { workspace = true, features = ["color", "derive", "env", "help", "suggestions"] } clap_complete = { workspace = true } dialoguer = { workspace = true, features = ["password"], optional = true } flate2 = { workspace = true, features = ["zlib-ng"], optional = true } futures = { workspace = true, optional = true } hex = { workspace = true } home = { workspace = true } malwaredb-virustotal = { workspace = true, optional = true } serde = { workspace = true, features = ["derive", "std"] } slint = { workspace = true, optional = true } tokio = { workspace = true, features = ["rt", "macros"] } toml = { workspace = true, features = ["default", "parse"] } tracing = { workspace = true, features = ["max_level_info", "release_max_level_warn"] } tracing-subscriber = { workspace = true, features = ["ansi", "env-filter", "fmt", "json"] } walkdir = { workspace = true, optional = true } zip = { workspace = true, features = ["aes-crypto", "default", "deflate-zlib-ng"], optional = true } zeroize = { workspace = true, features = ["serde"] } [target.'cfg(not(target_os = "wasi"))'.dependencies] tokio = { workspace = true, features = ["rt-multi-thread", "macros"] } [target.'cfg(target_env = "musl")'.dependencies] malwaredb-virustotal = { workspace = true, features = ["native-tls-vendored"], optional = true } [dev-dependencies] malwaredb-server = { workspace = true, features = ["sqlite"] } [build-dependencies] slint-build = { workspace = true, optional = true } vergen = { workspace = true, features = ["build"] } vergen-gitcl = { workspace = true, features = ["build"] } [target.'cfg(windows)'.build-dependencies] winresource = { workspace = true } [package.metadata.deb] license-file = ["LICENSE", "0"] depends = "$auto" features = ["admin", "admin-gui", "sqlite", "vt", "zlibng"] priority = "optional" recommends = "postgresql" section = "databases" [package.metadata.winresource] OriginalFilename = "MDB_SERVER.EXE" LegalCopyright = "Copyright © 2023-2024, MalwareDB Developers" [workspace.package] version = "0.0.15" edition = "2021" license = "Apache-2.0" authors = ["Richard Zak "] repository = "https://github.com/malwaredb/malwaredb-rs" homepage = "https://malwaredb.net/" keywords = ["cybersecurity", "malware", "malware-research", "forensics"] categories = ["database", "data-structures", "parsing"] [workspace.dependencies] # Internal dependencies malwaredb-api = { path = "crates/api", version = "0.0.15", default-features = false } malwaredb-client = { path = "client", version = "0.0.15", default-features = false } malwaredb-server = { path = "crates/server", version = "0.0.15", default-features = false } malwaredb-types = { path = "crates/types", version = "0.0.15", default-features = false } # External dependencies aes-gcm = { version = "0.10.3", default-features = false } anyhow = { version = "1.0", default-features = false } argon2 = { version = "0.5.3", default-features = false } axum = { version = "0.7.7", default-features = false } axum-macros = { version = "0.4.2", default-features = false } axum-server = { version = "0.7.1", default-features = false } base64 = { version = "0.22.1", default-features = false } bytesize = { version = "1.3", default-features = false } cart_container = { version = "1.0.0", default-features = false } chrono = { version = "0.4.38", default-features = false } chrono-humanize = { version = "0.2.3", default-features = false } clap = { version = "4.5", default-features = false } clap_complete = { version = "4.5", default-features = false } constcat = { version = "0.5.0", default-features = false } ctrlc = { version = "3.4", default-features = false } deadpool-postgres = { version = "0.14.0", default-features = false } dialoguer = { version = "0.11.0", default-features = false } flagset = { version = "0.4.6", default-features = false } flate2 = { version = "1.0.34", default-features = false } futures = { version = "0.3.30", default-features = false } fuzzyhash = { version = "0.2.2", default-features = false } hex = { version = "0.4.3", default-features = false } home = { version = "0.5.9", default-features = false } http = { version = "1.1.0", default-features = false } http-body-util = { version = "0.1.2", default-features = false } human-hash = { version = "0.4.0", default-features = false } humansize = { version = "2.1", default-features = false } hyper = { version = "1.5.0", default-features = false } magic = { version = "0.16.2", default-features = false } malwaredb-lzjd = { version = "0.1.2", default-features = false } malwaredb-virustotal = { version = "0.1.4", default-features = false } md-5 = { version = "0.10.6", default-features = false } nt-time = { version = "0.10.1", default-features = false } pdf = { version = "0.9.0", default-features = false } postgres = { version = "0.19.9", default-features = false } postgres-types = { version = "0.2.8", default-features = false } rc4 = { version = "0.1.0", default-features = false } reqwest = { version = "0.12.9", default-features = false } rstest = { version = "0.23.0", default-features = false } rusqlite = { version = "0.32.0", default-features = false } rustls = { version = "0.23.16", default-features = false } rustls-platform-verifier = { version = "0.3.4", default-features = false } serde = { version = "1.0", default-features = false } serde_json = { version = "1.0", default-features = false } sha1 = { version = "0.10.6", default-features = false } sha2 = { version = "0.10.8", default-features = false } slint = { version = "1.8.0" } slint-build = { version = "1.8.0" } tempfile = { version = "3.13.0", default-features = false } tlsh-fixed = { version = "0.1.1", default-features = false } tokio = { version = "1.41.0", default-features = false } tokio-postgres-rustls = { version = "0.13.0", default-features = false } toml = { version = "0.8.19", default-features = false } tower = { version = "0.5.1", default-features = false } tower-http = { version = "0.6.1", default-features = false } tracing = { version = "0.1.40", default-features = false } tracing-subscriber = { version = "0.3.18", default-features = false } uuid = { version = "1.11", default-features = false } vcpkg = { version = "0.2.15", default-features = false } vergen = { version = "9.0.1", default-features = false } vergen-gitcl = { version = "1.0.1", default-features = false } walkdir = { version = "2.5", default-features = false } winresource = { version = "0.1.17", default-features = false } xor-utils = { version = "0.6.0", default-features = false } zip = { version = "2.2.0", default-features = false } zeroize = { version = "1.8.1", default-features = false } [profile.release] codegen-units = 1 lto = true strip = "symbols" [[bin]] name = "mdb_server" path = "src/main.rs" [workspace] resolver = "2" members = [ 'crates/api', 'crates/server', 'crates/types', 'client', ]