ClamAV is a temporary dependency. Everything ClamAV-specific moves
behind a 4-method trait in crates/houndd/src/engine.rs:
trait ScanEngine { name; probe; scan; update }
struct ClamAvEngine // today
const ENGINE // one-line flip when the native engine lands
- parse_clamscan() is now a pure fn with unit tests (OK/FOUND/INCOMPLETE,
dedup, malformed lines)
- main.rs drops all clamscan/clamd/freshclam knowledge; Status reports
engine='clamav' via the trait
- README documents the seam and the wire contract that stays stable
GUI (gui/, Tauri 2, standalone workspace, vanilla JS premium-dark shell):
- system-tray sentinel on the 4-state dog-head ladder (green/amber/red/gray)
with tooltips; clicks open the window / scan / update
- window: protection hero, path + recursive scan, progress bar, results
table, signature update log; state mirrored to the tray
- compiles clean (cargo build, 0 warnings) on Mint 22.3 + webkit2gtk-4.1
All 11 workspace tests pass, incl. the E2E EICAR scan over the real
Unix-socket daemon (clamscan finds the planted EICAR).
43 lines
1 KiB
JSON
43 lines
1 KiB
JSON
{
|
|
"$schema": "https://schema.tauri.app/config/2",
|
|
"productName": "Hound Antivirus",
|
|
"version": "0.1.0",
|
|
"identifier": "com.joelovestech.hound",
|
|
"build": {
|
|
"frontendDist": "../dist",
|
|
"devUrl": "http://localhost:1420",
|
|
"beforeDevCommand": "",
|
|
"beforeBuildCommand": ""
|
|
},
|
|
"app": {
|
|
"windows": [
|
|
{
|
|
"title": "Hound Antivirus",
|
|
"width": 940,
|
|
"height": 640,
|
|
"minWidth": 760,
|
|
"minHeight": 520,
|
|
"resizable": true,
|
|
"center": true,
|
|
"fullscreen": false,
|
|
"decorations": true
|
|
}
|
|
],
|
|
"security": {
|
|
"csp": null
|
|
},
|
|
"trayIcon": {
|
|
"iconPath": "icons/state-protected-22.png",
|
|
"iconAsTemplate": false
|
|
}
|
|
},
|
|
"bundle": {
|
|
"active": true,
|
|
"targets": ["app", "deb"],
|
|
"icon": [
|
|
"icons/hound-48.png",
|
|
"icons/state-protected-32.png"
|
|
],
|
|
"resources": ["icons/state-protected-22.png", "icons/state-scanning-22.png", "icons/state-threat-22.png", "icons/state-paused-22.png"]
|
|
}
|
|
}
|