[package] name = "mikrotik-backup" version = "0.0.1" edition = "2024" rust-version = "1.99" description = "Self-hosted MikroTik backup system: one Rust service with an embedded web interface" publish = false build = "build.rs" [dependencies] anyhow = "1" argon2 = "0.5" axum = { version = "0.8", features = ["macros"] } base64 = "0.22" chrono = { version = "0.4", features = ["serde"] } chrono-tz = "0.10" clap = { version = "4", features = ["derive"] } dotenvy = "0.15" fs2 = "0.4" http-body-util = "0.1" jsonwebtoken = { version = "11", default-features = false, features = ["aws_lc_rs"] } lettre = { version = "0.11", default-features = false, features = ["builder", "smtp-transport", "tokio1-rustls-tls"] } libc = "0.2" md-5 = "0.10" pbkdf2 = "0.12" rand = "0.8" regex = "1" reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "json"] } rusqlite = { version = "0.37", features = ["bundled", "backup"] } serde = { version = "1", features = ["derive"] } serde_json = "1" serde_urlencoded = "0.7" sha2 = "0.10" socket2 = { version = "0.6", features = ["all"] } ssh2 = "0.9" subtle = "2" tempfile = "3" tokio = { version = "1", features = ["full"] } tokio-util = { version = "0.7", features = ["io", "rt"] } tower = { version = "0.5", features = ["util"] } tower-http = { version = "0.6", features = ["cors", "trace", "compression-gzip"] } tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } zip = { version = "9", default-features = false, features = ["deflate"] } [patch.crates-io] # Audited upstream libssh2 security fixes; see docs/security.md. libssh2-sys = { path = "vendor/libssh2-sys" } [profile.release] lto = "thin" codegen-units = 1 strip = true