31 lines
1.2 KiB
Markdown
31 lines
1.2 KiB
Markdown
|
# SmartAntivirus Project Overview
|
||
|
|
||
|
## Purpose
|
||
|
SmartAntivirus (@push.rocks/smartantivirus) is a Node.js/TypeScript library that provides enterprise-grade antivirus scanning capabilities by integrating with ClamAV. It allows developers to scan files, buffers, strings, and streams for viruses in their applications.
|
||
|
|
||
|
## Tech Stack
|
||
|
- TypeScript (primary language)
|
||
|
- Node.js (runtime)
|
||
|
- ClamAV (antivirus engine)
|
||
|
- Docker (for containerized ClamAV deployment)
|
||
|
- Testing: @git.zone/tstest with @push.rocks/tapbundle
|
||
|
- Build: @git.zone/tsbuild
|
||
|
|
||
|
## Architecture
|
||
|
- **ClamAvService**: High-level interface for virus scanning operations
|
||
|
- Scan strings, buffers, Node.js streams, and Web Streams
|
||
|
- Auto-manages Docker container if needed
|
||
|
- Connects to ClamAV daemon on port 3310
|
||
|
|
||
|
- **ClamAVManager**: Low-level Docker container management
|
||
|
- Handles container lifecycle (start/stop)
|
||
|
- Updates virus definitions
|
||
|
- Provides log monitoring
|
||
|
|
||
|
## Key Features
|
||
|
- In-memory scanning without disk I/O
|
||
|
- Stream processing for large files
|
||
|
- TypeScript-first with full type safety
|
||
|
- Zero-config with sensible defaults
|
||
|
- Auto-updating virus definitions
|
||
|
- Docker-based or direct daemon connection
|