UGLYPEAR AIが事業をアップグレード:高性能ドキュメント圧縮 × RAGデータエンジニアリング基盤新事業を詳しく見る →

圧縮SDK統合ガイド:Python/Java/C#多語言呼び出し

結論から言うと:SmartSlim SDK を通じて標準C ABI導出動的ライブラリ,サポートPython/Java/C#/Rust4種類語言統合,コア呼び出しフロー分四步—初始化SDK,作成圧縮設定,執行圧縮,釈放リソース.単ファイル圧縮100MB PDF耗時約0.8秒,認できる検証延遅低に5ms.本記事に出3種類語言の完整統合コード例,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-x64libsmartslim.soLinuxx86_64サービス器/卓面
linux-arm64libsmartslim.soLinuxaarch64ARMサービス器/樹莓派
macos-universallibsmartslim.dylibmacOSx86_64+arm64Intel+Apple Silicon
windows-x64smartslim.dllWindowsx86_64Windows卓面/サービス器
linux-server-x64libsmartslim.soLinuxx86_64サービス器最適化版
linux-server-arm64libsmartslim.soLinuxaarch64ARMサービス器最適化版

二、コアAPIパラメータ詳解

SDKのコアAPI分である初始化,設定,圧縮,釈放四クラス.下テーブル列出主API関数およびびびびびびそのパラメータ説明.

API関数パラメータ戻り値説明
smartslim_initlicense_key: Stringhandle: Handle初始化SDK、検証認できる
smartslim_create_configformat, level, qualityconfig: ConfigHandle作成圧縮設定
smartslim_compresshandle, input, output, configresult: ResultCode執行単ファイル圧縮
smartslim_compress_batchhandle, files[], config, workersresults[]: ResultCode一括圧縮(多並行)
smartslim_get_infohandle, filepathFileInfo: struct獲取ファイル圧縮情報
smartslim_free_configconfig: ConfigHandlevoid釈放設定リソース
smartslim_freehandle: Handlevoid釈放SDK実例

圧縮設定パラメータサポート4級圧縮(low/medium/high/ultra)x 15シナリオ x 5檔性能(ultrafast/fast/balanced/quality/optimal),共300種類グループ合,対応ほぼところある圧縮必要条件.

パラメータできる選值デフォルト值説明
formatpdf/image/video/office/ofd自動検測ファイルタイプ
levellow/medium/high/ultramedium圧縮レベル
quality1-10075品質因子(画像/PDF)
performanceultrafast/fast/balanced/quality/optimalbalanced性能プリセット
workers1-164並行スレッド数
securityDISABLED/LOW/MEDIUM/HIGH/MAXIMUMMEDIUMセキュリティレベル

三、3種類語言統合コード例

下面に出Python、Java、C#3種類語言の完整統合例、均で圧縮単つ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項目目統合.以下コード対応WindowsLinux双プラットフォーム.

ステップ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統合の性能チューニングは、並列処理・メモリ・バッチ処理の3つの観点が中心です。以下の表に、チューニング戦略ごとの効果を比較します。

調優戦略単ファイル耗時100ファイル総耗時メモリ占用適用認できる
単スレッドシリアル0.8秒80秒50MBTrial(並行1)
4スレッド並行0.8秒22秒180MBStandard(並行4)
8スレッド並行0.8秒12秒320MBProfessional(並行8)
16スレッド並行0.8秒7秒600MBEnterprise(並行16+)
ストリーム式圧縮模式1.2秒95秒15MBところある認できる

一括圧縮推奨使用SDK内置のsmartslim_compress_batchインターフェース,伝入ファイルリストと並行数,SDK内部用Rust非と期タスク調度,より各語言自行実現多スレッド更高效.以下は一つ一括圧縮100つPDFフォントァイルのDemo性能データ.

ファイル数量単ファイル平均総サイズ圧縮後サイズ8並行耗時圧縮率
100つPDF15MB1.5GB320MB12秒78.7%
100つPNG8MB800MB180MB8秒77.5%
100つDOCX5MB500MB120MB6秒76.0%
100つMP450MB5GB1.8GB45秒64.0%

もしあなた必要理解Rust圧縮ライブラリの底層アルゴリズムで比較、を参照してくださいRust圧縮ライブラリで比較:である何選択Rust写圧縮エンジン。もしあなた必要を圧縮サービスを通じてDockerコンテナ化デプロイ、を参照してくださいDockerデプロイ圧縮サービス。

五、よくある質問FAQ

Q1:圧縮SDKサポートどのプログラミング語言?

SmartSlim SDK を通じて標準C ABI導出動的ライブラリ,サポートPython(ctypes),Java(JNI),C#(P-Invoke),Rust(FFI)4種類語言統合.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技術サポート.

まとめ

SmartSlim SDK を通じて標準C ABI実現一次编写,多語言呼び出し,サポートPython/Java/C#/Rust4種類語言統合.コア呼び出しフロー四步走:初始化,作成設定,執行圧縮,釈放リソース.単ファイル圧縮100MB PDF耗時0.8秒,一括圧縮100つファイル8並行僅必要12秒.性能調優三次元:並行(4–16スレッド),メモリ(ストリーム式模式低下75%占用),バッチ処理(内置batchインターフェース).

覚えておくべき3つのポイント:1つ目は、システムアーキテクチャに合ったプリコンパイル済みライブラリを選ぶこと(6プラットフォームすべて対応)。2つ目は、一括圧縮では自前のマルチスレッド実装ではなく、内蔵のbatchインターフェースを優先すること。3つ目は、本番環境ではProfessional以上のライセンス(8並列)が推奨で、性能とコストのバランスが取れます。HTTPでの呼び出しをご希望の場合は、SDKではなく「圧縮API活用ガイド」をご参照ください。

ファイルを圧縮てみませんか?SmartSlimを試す

独自開発のRust圧縮エンジンに基づき、PDF/画像/動画/Office/OFDど10分野40以上の形式に対応。ローカル圧縮でデータは外部に送信されません。