結論先行:SmartSlim SDK を通じて標準C ABI导出动态库,サポートPython/Java/C#/Rust四種類语言集成,核心调用フロー分四步——初始化SDK、作成圧縮設定、执行圧縮、释放リソース。单ファイル圧縮100MB PDF耗时约0.8秒,授权検証延迟低于5ms。本文に出三種類语言的完整集成コード例、APIパラメータ表和性能调优ソリューション,附バッチ量圧縮Demo。以下ではSDK架构から説明し,逐一詳解各语言的集成方法。
如果你需要を通じてHTTP接口调用圧縮サービス而非SDK集成,まず圧縮API调用実戦:RESTful接口文档詳解。
一、SDK架构与集成原理
SmartSlim SDK 的底层是 Rust 圧縮引擎,を通じて標準C ABI(Application Binary Interface)导出である动态库(.so/.dylib/.dll),任何サポートFFI(外部函数接口)的语言都可以読み込み并调用。この種類架构的好处是:一次用Rust编写核心引擎,多语言复用同一套二进制库,无需各语言重复実現圧縮逻辑。
| グループ件 | 技術 | 作用 | 输出物 |
|---|---|---|---|
| 圧縮引擎核心 | Rust | 执行圧縮アルゴリズム | 静态库.a/.lib |
| ABI导出层 | Rust #[no_mangle] | 导出C兼容函数 | 动态库.so/.dylib/.dll |
| 语言绑定层 | 各语言FFI | 封装原生调用 | 各语言包/库 |
| 授权模ブロック | Rust + 加密 | 検証授权密钥 | 内嵌于动态库 |
| 設定管理 | Rust struct | 圧縮パラメータ管理 | JSON/TOML設定 |
SDK提供6平台预编译库,覆盖主流操作システム和CPU架构,开箱即用无需自行编译Rustコード。
| 平台 | 动态库 | 操作システム | CPU架构 | 適用シナリオ |
|---|---|---|---|---|
| linux-x64 | libsmartslim.so | Linux | x86_64 | サービス器/桌面 |
| linux-arm64 | libsmartslim.so | Linux | aarch64 | ARMサービス器/树莓派 |
| macos-universal | libsmartslim.dylib | macOS | x86_64+arm64 | Intel+Apple Silicon |
| windows-x64 | smartslim.dll | Windows | x86_64 | Windows桌面/サービス器 |
| linux-server-x64 | libsmartslim.so | Linux | x86_64 | サービス器最適化版 |
| linux-server-arm64 | libsmartslim.so | Linux | aarch64 | ARMサービス器最適化版 |
二、核心APIパラメータ詳解
SDK的核心API分である初始化、設定、圧縮、释放四类。下表列出主なAPI函数及其パラメータ説明。
| API函数 | パラメータ | 返回值 | 説明 |
|---|---|---|---|
| smartslim_init | license_key: String | handle: Handle | 初始化SDK,検証授权 |
| smartslim_create_config | format, level, quality | config: ConfigHandle | 作成圧縮設定 |
| smartslim_compress | handle, input, output, config | result: ResultCode | 执行单ファイル圧縮 |
| smartslim_compress_batch | handle, files[], config, workers | results[]: ResultCode | バッチ量圧縮(多并发) |
| smartslim_get_info | handle, filepath | FileInfo: struct | 获取ファイル圧縮信息 |
| smartslim_free_config | config: ConfigHandle | void | 释放設定リソース |
| smartslim_free | handle: Handle | void | 释放SDK実例 |
圧縮設定パラメータサポート4级圧縮(low/medium/high/ultra)x 15シナリオ x 5档性能(ultrafast/fast/balanced/quality/optimal),共300種類グループ合,覆盖几乎所有圧縮要件。
| パラメータ | 可选值 | デフォルト值 | 説明 |
|---|---|---|---|
| format | pdf/image/video/office/ofd | 自動检测 | ファイルタイプ |
| level | low/medium/high/ultra | medium | 圧縮レベル |
| quality | 1-100 | 75 | 品質因子(画像/PDF) |
| performance | ultrafast/fast/balanced/quality/optimal | balanced | 性能プリセット |
| workers | 1-16 | 4 | 并发线程数 |
| security | DISABLED/LOW/MEDIUM/HIGH/MAXIMUM | MEDIUM | 安全レベル |
三、三種類语言集成コード例
下面に出Python、Java、C#三種類语言的完整集成例,均以圧縮单つPDFファイルである例。
1. Python集成(ctypes)
Pythonを通じてctypes模ブロック読み込み动态库并调用导出函数。以下コード実現初始化SDK、作成設定、圧縮PDF、释放リソース的完整フロー。100MB PDF圧縮耗时约0.8秒。
| ステップ | Pythonコード | 説明 |
|---|---|---|
| 1.読み込み库 | lib = ctypes.CDLL('./libsmartslim.so') | 読み込み动态库 |
| 2.初始化 | handle = lib.smartslim_init(b"YOUR_LICENSE") | 传入授权密钥 |
| 3.作成設定 | config = lib.smartslim_create_config(b"pdf", b"medium", 75) | PDF/medium/q75 |
| 4.执行圧縮 | lib.smartslim_compress(handle, b"in.pdf", b"out.pdf", config) | 圧縮ファイル |
| 5.释放リソース | lib.smartslim_free_config(config); lib.smartslim_free(handle) | 释放内存 |
2. Java集成(JNI)
Javaを通じてJNI(Java Native Interface)调用动态库。需要先编写native方法声明,然后読み込み库ファイル。以下コード展示核心调用フロー,適したSpring Boot等Java后端項目目集成。
| ステップ | Javaコード | 説明 |
|---|---|---|
| 1.読み込み库 | System.loadLibrary("smartslim") | 読み込みDLL/SO |
| 2.声明方法 | native long smartslim_init(String key) | JNI方法声明 |
| 3.初始化 | long handle = smartslim_init("YOUR_LICENSE") | 获取実例句柄 |
| 4.作成設定 | long config = smartslim_create_config("pdf","medium",75) | 設定パラメータ |
| 5.执行圧縮 | smartslim_compress(handle, "in.pdf", "out.pdf", config) | 圧縮ファイル |
| 6.释放リソース | smartslim_free_config(config); smartslim_free(handle) | 释放内存 |
3. C#集成(P-Invoke)
C#を通じてP/Invoke(Platform Invocation Services)调用动态库。使用DllImport特性声明外部函数,適した.NET/.NET Core項目目集成。以下コード适配Windows和Linux双平台。
| ステップ | C#コード | 説明 |
|---|---|---|
| 1.声明函数 | [DllImport("smartslim")] static extern IntPtr smartslim_init(string key) | P-Invoke声明 |
| 2.初始化 | IntPtr handle = smartslim_init("YOUR_LICENSE") | 获取句柄 |
| 3.作成設定 | IntPtr config = smartslim_create_config("pdf","medium",75) | 設定パラメータ |
| 4.执行圧縮 | smartslim_compress(handle, "in.pdf", "out.pdf", config) | 圧縮ファイル |
| 5.释放リソース | smartslim_free_config(config); smartslim_free(handle) | 释放内存 |
四、性能调优与バッチ量圧縮
SDK集成的性能调优主な围绕并发、内存和バッチ処理三つ维度。下の表に示す不同调优戦略的効果比較。
| 调优戦略 | 单ファイル耗时 | 100ファイル总耗时 | 内存占用 | 適用授权 |
|---|---|---|---|---|
| 单线程串行 | 0.8秒 | 80秒 | 50MB | Trial(并发1) |
| 4线程并发 | 0.8秒 | 22秒 | 180MB | Standard(并发4) |
| 8线程并发 | 0.8秒 | 12秒 | 320MB | Professional(并发8) |
| 16线程并发 | 0.8秒 | 7秒 | 600MB | Enterprise(并发16+) |
| 流式圧縮模式 | 1.2秒 | 95秒 | 15MB | 所有授权 |
バッチ量圧縮推奨使用SDK内置的smartslim_compress_batch接口,传入ファイル列表和并发数,SDK内部用Rust异步任务调度,比各语言自行実現多线程更高效。以下是一つバッチ量圧縮100つPDFファイル的Demo性能データ。
| ファイル数量 | 单ファイル平均 | 总サイズ | 圧縮後サイズ | 8并发耗时 | 圧縮率 |
|---|---|---|---|---|---|
| 100つPDF | 15MB | 1.5GB | 320MB | 12秒 | 78.7% |
| 100つPNG | 8MB | 800MB | 180MB | 8秒 | 77.5% |
| 100つDOCX | 5MB | 500MB | 120MB | 6秒 | 76.0% |
| 100つMP4 | 50MB | 5GB | 1.8GB | 45秒 | 64.0% |
如果你需要理解Rust圧縮库的底层アルゴリズム比較,を参照してくださいRust圧縮库比較:である什么選択Rust写圧縮引擎。如果你需要を圧縮サービスを通じてDocker容器化デプロイ,を参照してくださいDockerデプロイ圧縮サービス。
五、よくある質問FAQ
Q1:圧縮SDKサポート哪些编程语言?
SmartSlim SDK を通じて標準C ABI导出动态库,サポートPython(ctypes)、Java(JNI)、C#(P-Invoke)、Rust(FFI)四種類语言集成。SDK提供6平台预编译库(linux-x64/arm64、macos-universal、windows-x64等),开箱即用无需编译。其他サポートC ABI调用的语言(如Go、Node.js、PHP)也可を通じて各自的FFI机制集成。
Q2:圧縮SDK的API调用フロー是什么?
標準调用フロー分四步:1.调用smartslim_init初始化SDK并传入授权密钥;2.调用smartslim_create_config作成圧縮設定(指定形式、レベル、性能プリセット);3.调用smartslim_compress执行圧縮(传入输入ファイル路径和输出路径);4.调用smartslim_free释放リソース。单ファイル圧縮100MB PDF耗时约0.8秒,授权検証延迟低于5ms。
Q3:圧縮SDK怎么実現バッチ量圧縮?
バッチ量圧縮有2種類方式:一是循环调用单ファイル圧縮接口,配合多线程并发(Python用concurrent.futures、Java用ThreadPoolExecutor);二是使用SDK内置的バッチ量圧縮接口smartslim_compress_batch,传入ファイル列表和并发数,SDK内部用Rust异步任务调度。推奨第二種類方式,Standard授权サポート4并发,Professionalサポート8并发,Enterpriseサポート16并发以上。
Q4:圧縮SDK集成报错怎么办?
一般的的报错及解决ソリューション:1.UnsatisfiedLinkError(Java)或DLL読み込み失败——確認动态库路径和システム架构是否匹配;2.授权検証失败——確認授权密钥是否正しい、是否过期;3.内存溢出——调低并发数或启用流式圧縮模式;4.形式不サポート——確認SDK版本是否サポート目標形式。推奨开启DEBUG日志定位問題,或联系智压通技術サポート。
まとめ
SmartSlim SDK を通じて標準C ABI実現了一次编写、多语言调用,サポートPython/Java/C#/Rust四種類语言集成。核心调用フロー四步走:初始化、作成設定、执行圧縮、释放リソース。单ファイル圧縮100MB PDF耗时0.8秒,バッチ量圧縮100つファイル8并发仅需12秒。性能调优三维度:并发(4–16线程)、内存(流式模式低下75%占用)、バッチ処理(内置batch接口)。
覚えておくべき3つのポイント:一是選択与システム架构匹配的预编译库(6平台全覆盖);二是バッチ量圧縮优先用内置batch接口而非自行多线程;三是生产环境推奨Professional以上授权(8并发),兼顾性能和コスト。如果你更倾向HTTP接口调用而非SDK集成,を参照してください圧縮API调用実戦。
ファイルを圧縮してみませんか?SmartSlimを試す
独自開発のRust圧縮エンジンに基づき、PDF/画像/動画/Office/OFDなど10分野40以上の形式に対応。ローカル圧縮でデータは外部に送信されません。