Об этом проекте
truss — это платформа для трансформации изображений, построенная на общем ядре Rust и предлагающая три основных интерфейса: командную строку (CLI), HTTP-сервер и сборку WebAssembly (WASM) для браузеров. Она поддерживает форматы JPEG, PNG, WebP, AVIF, BMP, TIFF и SVG, а также GIF в качестве входного формата только для декодирования. Инструмент предназначен для локальной обработки файлов, серверного обслуживания изображений и клиентских приложений в браузере.
Ключевые возможности включают преобразование форматов с контролем качества, изменение размера с различными режимами (contain, cover, fill, inside), обрезку, поворот, размытие, резкость, водяные знаки и преобразование в оттенки серого. CLI поддерживает конвейеры оболочки через stdin/stdout и может получать изображения из удаленных 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 включена по умолчанию.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.