Sobre o projeto
truss é uma ferramenta de transformação de imagens construída em torno de um núcleo compartilhado em Rust, oferecendo três interfaces principais: uma interface de linha de comando (CLI), um servidor HTTP e uma compilação WebAssembly (WASM) para navegadores. Ela suporta formatos como JPEG, PNG, WebP, AVIF, BMP, TIFF e SVG, com GIF disponível apenas como entrada para decodificação. A ferramenta é projetada para processamento de arquivos locais, manipulação de imagens no servidor e aplicações de navegador no lado do cliente.
As principais capacidades incluem conversão de formato com controle de qualidade, redimensionamento com vários modos de ajuste (contain, cover, fill, inside), corte, rotação, desfoque, nitidez, marca d'água e conversão para escala de cinza. A CLI suporta pipelines de shell via stdin/stdout e pode buscar imagens de URLs remotas. O servidor HTTP pode ser implantado atrás de um CDN ou proxy reverso, suportando autenticação por token bearer, URLs públicas assinadas e backends de armazenamento em nuvem opcionais (S3, GCS, Azure). Os recursos de segurança incluem proteções integradas contra SSRF e sanitização de SVG para remover scripts e referências externas.
Para integração com navegadores, truss fornece um pacote npm (@nao1215/truss-wasm) que roda inteiramente no lado do cliente, permitindo o processamento local de imagens sem uploads para o servidor. Um pacote TypeScript separado (@nao1215/truss-url-signer) permite que aplicações Node.js gerem URLs públicas assinadas. O projeto é multiplataforma, suportando Linux, macOS e Windows, com opções de instalação via Homebrew, Cargo, AUR, Docker ou binários pré-compilados. O tratamento de metadados é configurável, com opções para remover, preservar ou reter seletivamente perfis EXIF e ICC, e a correção automática de orientação EXIF está habilitada por padrão.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.