Подробный разбор принципов и методов сжатия файлов.
Rust SDK движка сжатия
Интерфейс C ABI, предкомпиляция для 6 платформ, может вызываться из любого языка
Обзор продукта
Базовый движок сжатия, общий для всей линейки продуктов SmartSlim
Rust SDK движка сжатия — это ядро сжатия, общее для SmartSlim Desktop, Server и Enterprise. Оно написано на Rust и экспортирует стандартный интерфейс C ABI. SDK распространяется в виде динамической библиотеки (.so / .dylib / .dll) и встраивается в любой язык, поддерживающий вызовы C: Python (ctypes), Rust (FFI), Java (JNI), C# (P-Invoke). Встроенные проверка подписи, авторизация и защита от отладки на всех платформах гарантируют, что возможности сжатия вызывают только авторизованные приложения.
Ключевые возможности интерфейса
Стандартный интерфейс C ABI, простая интеграция
-
Инициализация и самопроверка: интерфейс инициализации SDK, автоматически выполняющий выделение ресурсов и самопроверку при запуске.
-
Регистрация подписи: хост-приложение регистрирует callback получения подписи для проверки личности во время выполнения.
-
Сжатие одного файла: поддержка параметров ввода/вывода путей, уровня сжатия, сценария сжатия, уровня производительности и др., гибко адаптируется к различным потребностям.
-
Пакетное сжатие каталога: поддержка пакетного сжатия всего каталога с рекурсивным обходом.
-
Callback прогресса: получение процента прогресса сжатия и информации о стадии в реальном времени через callback-функцию, удобно для обновления UI хост-приложения.
Предкомпиляция для 6 платформ
Готово к работе — самостоятельно собирать цепочку инструментов Rust не нужно
linux-x64
x86_64 Linux для десктопа/общего использования, динамическая библиотека .so.
linux-arm64
aarch64 Linux (включая корпоративные ARM-процессоры), динамическая библиотека .so.
linux-server-x64
x86_64 Linux серверная версия, с активированной проверкой авторизации и аудитом.
linux-server-arm64
aarch64 Linux серверная версия, адаптирована для корпоративных ARM-серверов.
macos-universal
Universal-бинарник (одновременно Intel и Apple Silicon), динамическая библиотека .dylib.
windows-x64
x86_64 Windows, динамическая библиотека .dll.
Механизмы безопасности и авторизации
Трехуровневая защита от неавторизованных вызовов и реверс-инжиниринга
Проверка подписи
SDK проверяет личность вызывающей стороны через механизм подписи; хост-приложение может вызывать функции только при предоставлении действительной подписи, третьи стороны без корректной интеграции не проходят проверку.
Проверка кода авторизации
Серверная версия проверяет лицензию через код авторизации с асимметричным шифрованием + привязку к оборудованию, поддерживает офлайн-авторизацию; при смене машины требуется повторная авторизация.
Защита от отладки
Обнаруживает подключение отладчика во время выполнения, немедленно прерывает работу при обнаружении отладки, предотвращая обратный анализ. Поддержка всех платформ (macOS / Linux / Windows).
Типы авторизации и права на функции
4 уровня авторизации, активация возможностей сжатия по необходимости
| Тип авторизации | Сжатие изображений | Сжатие видео | Сжатие аудио | Сжатие документов | Максимум параллельно | Пакетная обработка |
|---|---|---|---|---|---|---|
| Trial (пробная) | 1 | |||||
| Standard (стандартная) | 4 | |||||
| Professional (профессиональная) | 8 | |||||
| Enterprise (корпоративная) | 16+ |
Способы многоязыковой интеграции
Одна компиляция — вызов из любого языка
Python (ctypes)
Загрузка динамической библиотеки через ctypes.CDLL, объявление функций и callback с использованием c_char_p / c_void_p / CFUNCTYPE. SmartSlim Enterprise использует именно этот способ.
Rust (FFI)
Объявление и линковка динамической библиотеки через extern "C", прямой вызов функций C ABI с нулевыми накладными расходами.
Java (JNI)
Написание JNI-моста, загрузка динамической библиотеки через System.loadLibrary, вызов C ABI из native-методов.
C# (P-Invoke)
Объявление внешних функций через атрибут [DllImport], автоматическая загрузка динамической библиотеки через .NET runtime.
Получите авторизацию SDK
Свяжитесь с нашей коммерческой командой для получения пробной авторизации и документации по интеграции
Статьи по теме
Как сжать отсканированный PDF со 80 МБ до 8 МБ: пошаговое руководство.
В чём принципиальная разница: наглядные схемы и примеры кода.