这个项目能做什么

truss 是一个围绕共享 Rust 核心构建的图像转换工具,提供三种主要接口:命令行界面(CLI)、HTTP 服务器和用于浏览器的 WebAssembly(WASM)构建。它支持 JPEG、PNG、WebP、AVIF、BMP、TIFF 和 SVG 等格式,其中 GIF 作为仅解码的输入可用。该工具适用于本地文件处理、服务器端图像处理和客户端浏览器应用。 主要功能包括带质量控制的格式转换、多种拟合模式(包含、覆盖、填充、内部)的缩放、裁剪、旋转、模糊、锐化、水印和灰度转换。CLI 支持通过 stdin/stdout 进行 shell 管道,并可以从远程 URL 获取图像。HTTP 服务器可以部署在 CDN 或反向代理后面,支持 bearer 令牌认证、签名公共 URL 和可选的云存储后端(S3、GCS、Azure)。安全功能包括内置的 SSRF 保护和 SVG 清洗,用于移除脚本和外部引用。 对于浏览器集成,truss 提供了一个 npm 包(@nao1215/truss-wasm),完全在客户端运行,无需服务器上传即可进行本地图像处理。另一个 TypeScript 包(@nao1215/truss-url-signer)允许 Node.js 应用生成签名公共 URL。该项目是跨平台的,支持 Linux、macOS 和 Windows,可以通过 Homebrew、Cargo、AUR、Docker 或预构建二进制文件进行安装。元数据处理是可配置的,可以选择剥离、保留或选择性保留 EXIF 和 ICC 配置文件,并且默认启用自动 EXIF 方向校正。