3个版本
0.1.2 | 2022年11月24日 |
---|---|
0.1.1 | 2022年11月24日 |
0.1.0 | 2022年11月24日 |
#4 在 #clamd
每月45次下载
27KB
476 代码行
clamd-client,工作进度中
Rust异步tokio客户端,用于clamd。支持TCP套接字或Unix套接字。目前它将为每个命令打开一个新的套接字。正在进行中。
示例
请参阅examples/simple.rs
。您的机器上应该有一个正在运行的clamd实例(见注意事项)。
#[tokio::main]
async fn main() -> Result<()> {
let address = "127.0.0.1:3310";
let mut clamd_client = ClamdClientBuilder::tcp_socket(address).build();
let eicar_bytes = reqwest::get("https://secure.eicar.org/eicarcom2.zip")
.await?
.bytes()
.await?;
let err = clamd_client.scan_bytes(&eicar_bytes).await.unwrap_err();
let msg = err.scan_error().unwrap();
println!("Eicar scan returned that its a virus: {}", msg);
Ok(())
}
注意事项
运行Clamd
要运行cargo test
或示例,您必须在机器上有一个正在运行的clamd实例。最简单的方法是使用docker
docker run -p 3310:3310 -v /run/clamav/:/run/clamav/ clamav/clamav:unstable
待办事项
- 实现缺失的clamd功能
- 实现保持TCP连接的活动状态
- 检查此是否也可以与其他异步运行时一起使用
- github actions
cargo test
- 使用Unix套接字需要设置
<String, str>
类型界限。
依赖关系
~4–13MB
~136K SLoC