Asynchronous client for virus scanning with ClamAV
Project description
aioclamd
This package is an asynchronous version of the pleasant package
python-clamd. It has the same external
API, only all methods are coroutines and all communication is handled
asynchronously using the asyncio framework.
The ClamdAsyncClient connects to a ClamAV antivirus instance and scans
files and data for malicious threats. This package does not bundle ClamAV in any way,
so a running instance of the clamd deamon is required.
Installation
pip install aioclamd
Usage
To scan a file (on the system where ClamAV is installed):
import asyncio
from aioclamd import ClamdAsyncClient
async def main(host, port):
clamd = ClamdAsyncClient(host, port)
print(await clamd.scan('/etc/clamav/clamd.conf'))
asyncio.run(main("127.0.0.1", 3310))
# Output:
# {'/etc/clamav/clamd.conf': ('OK', None)}
To scan a data stream:
import asyncio
import base64
from io import BytesIO
from aioclamd import ClamdAsyncClient
EICAR = BytesIO(
base64.b64decode(
b"WDVPIVAlQEFQWzRcUFpYNTQoUF4pN0NDKTd9JEVJQ0FSLVNU"
b"QU5EQVJELUFOVElWSVJVUy1URVNU\nLUZJTEUhJEgrSCo=\n"
)
)
async def main(host, port):
clamd = ClamdAsyncClient(host, port)
print(await clamd.instream(EICAR))
asyncio.run(main("127.0.0.1", 3310))
# Output:
# {'stream': ('FOUND', 'Win.Test.EICAR_HDB-1')}
Development
A local instance of ClamAV can be had with Docker:
docker run -p 3310:3310 --rm clamav/clamav
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aioclamd-1.0.0.tar.gz.
File metadata
- Download URL: aioclamd-1.0.0.tar.gz
- Upload date:
- Size: 5.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.2.0 CPython/3.8.10 Linux/5.15.0-1019-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b14e94e3a2285cc89e2f4d434e2a01f322d3cb95476ce2dda015a7980876047
|
|
| MD5 |
97b03f6615b14b15f9b57926ba3ff2e9
|
|
| BLAKE2b-256 |
6ee75abc85b9997cd5c2076ce9c76a6e5ed04f69a27ba2b79003f5951909c446
|
File details
Details for the file aioclamd-1.0.0-py3-none-any.whl.
File metadata
- Download URL: aioclamd-1.0.0-py3-none-any.whl
- Upload date:
- Size: 7.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.2.0 CPython/3.8.10 Linux/5.15.0-1019-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4727da3953a4b38be4c2de1acb6b3bb3c94c1c171dcac780b80234ee6253f3d9
|
|
| MD5 |
9c9d92fb68357f2e671a94d45a26739d
|
|
| BLAKE2b-256 |
3b2ea63a99e804349b011b99473a95be418c0bac2b06149ffe19c921963e89ff
|