Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ninglin-p/clamdjs
A ClamAV client on node.js
https://github.com/ninglin-p/clamdjs
clamav-client clamdscan node-module
Last synced: 3 months ago
JSON representation
A ClamAV client on node.js
- Host: GitHub
- URL: https://github.com/ninglin-p/clamdjs
- Owner: NingLin-P
- License: mit
- Created: 2018-07-29T18:30:12.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-12-14T13:50:24.000Z (about 1 year ago)
- Last Synced: 2024-03-14T19:18:13.569Z (10 months ago)
- Topics: clamav-client, clamdscan, node-module
- Language: JavaScript
- Size: 11.7 KB
- Stars: 7
- Watchers: 1
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Clamdjs
===
A ClamAV client on node.js
---The library will uses TCP socket communicate with `clamd` (ClamAV daemon) through some commands
Clamd protocol is explained here:
http://linux.die.net/man/8/clamd----
## Provide
- Scan `Stream` and `Buffer`
- Scan `local File` and `local Directory`
- Check the daemon’s state
- Get the version detail of the running ClamAV program----
## Installation```sh
$ npm install clamdjs
```
----
### API
```js
const clamd = require('clamdjs')
const scanner = clamd.createScanner(host, port)
```
## scanner.scanStream(stream, [timeout])
```js
scanner.scanStream(stream, 3000)
.then(function (reply) {
console.log(reply)
// print some thing like
// 'stream: OK', if not infected
// `stream: ${virus} FOUND`, if infected
})
.catch(handler)
```
**Returns a promise, which will resovle with the reply from the ClamAV server**
- `stream (Object)` - read stream object
- `timeout (Number)` - use to set the socket's timeout option, default `5000`## scanner.scanBuffer(buffer, [timeout], [chunkSize])
```js
scanner.scanBuffer(buffer, 3000, 1024 * 1024)
.then(function (reply) {
console.log(reply)
// print some thing like
// 'stream: OK', if not infected
// `stream: ${virus} FOUND`, if infected
})
.catch(handler)
```
**Returns a promise, which will resovle with the reply from the ClamAV server**
- `buffer (Object)`
- `timeout (Number)` - use to set the socket's timeout option, default `5000`
- `chunkSize (Number)` - size of the chunk, which will send to ClamAV server, default `64 * 1024`## scanner.scanFile(path, [timeout], [chunkSize])
```js
scanner.scanFile(path, 3000, 1024 * 1024)
.then(function (reply) {
console.log(reply)
// print some thing like
// 'stream: OK', if not infected
// `stream: ${virus} FOUND`, if infected
})
.catch(handler)
```
**Returns a promise, which will resovle with the reply from the ClamAV server**
- `path (String)` - file path, will be pass to path.normalize() first
- `timeout (Number)` - use to set the socket's timeout option, default `5000`
- `chunkSize (Number)` - size of the chunk, which will send to ClamAV server, default `64 * 1024`## scanner.scanDirectory(rootPath, [options])
```js
let optins = {
timeout: 5000,
chunkSize: 64 * 1024,
scanningFile: 10,
detail: true,
cont: true
}
scanner.scanDirectory(rootPath, options)
.then(function (reply) {
console.log(reply)
/* print some thing like
{
ScannedFiles: 11,
Infected: 3,
EncounterError: 1,
Result:[...]
}
*/
})
.catch(handler)
```
**Returns a promise, which will resovle with a object which contained the scan summary**- `rootPath (String)` - directory path, will be pass to path.normalize() first
- `optinns (Object)`
- `timeout (Number)` - use to set the socket's timeout option, default `5000`
- `chunkSize (Number)` - size of the chunk, which will send to ClamAV server, default `64 * 1024`
- `scanningFile (Number)` - the number of file will scan concurrently, should not be greater than the file table limit in node.js, default `10`
- `detail (Boolean)` - if `true` the output object will contain the scan summary and all scaned files's scan result no matter infected or not, if `false` the output object will contain the scan summary and scan result of infected files and file that encountered error when scanning, default `true`
- `cont (Boolean)` - when scanning a path and an Error throw, if `true`, will move on to scan next path, if `false`, will stop scanning and return a rejected promise, default `true`## clamd.ping()
**Returns true if clamd daemon alive**## clamd.version()
**Returns clamav version information**## clamd.isCleanReply(reply)
**Returns true if the reply of a scan means OK, false if means infected**