病毒毒素
     
用于VirusTotal API v3的Async Rust SDK,具有可选的CLI和MCP服务器支持。
目录
特性
- Async VirusTotal API v3客户端构建于
reqwest和tokio - 文件、网址、域名、IP地址、评论、投票、搜索、收藏、图表、Livehunt、Retrochunt、私人文件和私人网址的覆盖范围
- 可选的模型上下文协议服务器,具有纯MCP、JWT和OAuth功能集
- 面向下载的工作流的可选CLI二进制文件
- 键入错误、速率限制、验证助手、迭代器和显示实用程序
- 跨平台CI、安全扫描、CodeQL、文档部署和自动发布标记
安装
[dependencies]
virustotal-rs = "0.4.4"可选功能标志:
[dependencies]
virustotal-rs = { version = "0.4.4", features = ["mcp"] }
virustotal-rs = { version = "0.4.4", features = ["mcp-jwt"] }
virustotal-rs = { version = "0.4.4", features = ["mcp-oauth"] }
virustotal-rs = { version = "0.4.4", features = ["cli"] }快速开始
use virustotal_rs::{ApiTier, ClientBuilder};
#[tokio::main]
async fn main() -> Result> {
let client = ClientBuilder::new()
.api_key(std::env::var("VIRUSTOTAL_API_KEY")?)
.tier(ApiTier::Public)
.build()?;
let file = client.files().get("44d88612fea8a8f36de82e1278abb02f").await?;
println!("file type: {:?}", file.object.attributes.type_description);
let analysis = client.urls().scan("https://example.com").await?;
println!("analysis id: {}", analysis.data.id);
Ok(())
}首选环境变量为 VIRUSTOTAL_API_KEY,但辅助实用程序也接受 VT_API_KEY 和 VTI_API_KEY.
功能标志
| 功能 | 目的 |
|---|---|
cli | 启用 vt-cli 二进制和相关的可选依赖关系 |
mcp | 启用MCP服务器运行时和传输层 |
mcp-jwt | 在之上添加JWT身份验证支持 mcp |
mcp-oauth | 添加OAuth 2.1身份验证支持 mcp |
CLI和MCP二进制文件
vt-cli
CLI目前专注于下载工作流。
cargo run --locked --features cli --bin vt-cli -- --help
cargo run --locked --features cli --bin vt-cli -- download --helpmcp_server
通过HTTP启动MCP服务器:
VIRUSTOTAL_API_KEY=your_key \
cargo run --locked --features mcp --bin mcp_server通过stdio启动它:
SERVER_MODE=stdio VIRUSTOTAL_API_KEY=your_key \
cargo run --locked --features mcp --bin mcp_server可选身份验证层:
cargo run --locked --features mcp-jwt --bin mcp_server
cargo run --locked --features mcp-oauth --bin mcp_server发展
基线
- 锈
1.95.0 rust-toolchain.toml固定已维护的本地工具链Makefile目标反映了主要的CI检查
常用命令
make fmt
make clippy
make test
make ci-local
make validate示例和集成风格运行
export VIRUSTOTAL_API_KEY=your_api_key
make examples行使高级端点的示例可能需要高级VirusTotal帐户。
发布自动化
存储库如下 约定式提交.
CI和Security运行推送和拉取请求auto-release.yml对执行预定的发布扫描main当您想要剪切释放时,也可以手动触发release.yml构建vt-cli和mcp_server,创建GitHub Release,并在配置注册表令牌时发布crate
维护手册: docs/RELEASING.md
文档
- API文件: docs.rs/virustotal-rs
- 维护人员文件: docs/README.md
- 架构概述: docs/ARCHITECTURE.md
- 变更日志: 更改日志.md
贡献
看 贡献.md 用于设置、验证和拉取请求期望。
安全
看 安全.md 获取漏洞报告指南。
许可证
根据以下许可 麻省理工学院或阿帕奇-2.0.
______________________________________________________________________
由以下人员建造和维护 ThreatFlux
