Documentation
¶
Overview ¶
Package clamav implements a ClamAV CLAMD protocol client (INSTREAM scanning) over Unix domain sockets or TCP, with zero external API dependency. It is a self-contained leaf (stdlib only, no Culvert coupling) extracted from the flat package main per ADR-0002.
Protocol: CLAMD INSTREAM command
- Send "zINSTREAM\0" (null-terminated command prefix)
- Stream data as length-prefixed chunks (4-byte big-endian uint32 + bytes)
- Terminate with a zero-length chunk ({0,0,0,0})
- Read null-terminated response: "stream: OK\0" → clean "stream: <VirusName> FOUND\0" → malicious "stream: ... ERROR\0" → scan error
Reference: https://linux.die.net/man/8/clamd
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is a ClamAV CLAMD protocol client.
func New ¶
New creates a client from an address string.
"unix:/var/run/clamav/clamd.sock" → Unix domain socket "tcp:localhost:3310" → TCP connection "" → default Unix socket path
func (*Client) Ping ¶
Ping verifies the ClamAV daemon is reachable and responding correctly. Returns nil on success, error otherwise.
Click to show internal directories.
Click to hide internal directories.