CompressionUtils
public final class CompressionUtils
io/agentscope/examples/compression/extra/CompressionUtils.java:59–507压缩 Utils,为框架提供通用类型与基础能力。位于 io.agentscope.examples.compression.extra 包。核心成员包括 isEncodingAvailable、isBrotliAvailable、isZstdAvailable、compress、decompress、decompressToString。
Utility class for HTTP request/response body compression and decompression.
This class provides static methods for compressing and decompressing data
using the compression algorithms defined in CompressionEncoding.
Supported compression formats:
-
GZIP - Always available (built into Java). The de facto standard for HTTP compression.
-
Brotli - Requires optional dependency: com.aayushatharva.brotli4j:brotli4j. Provides 20-26% better compression than GZIP.
-
Zstd - Requires optional dependency: com.github.luben:zstd-jni. Very fast compression/decompression with excellent ratios.
Usage example:
`// Check if an encoding is available
if (CompressionUtils.isEncodingAvailable(CompressionEncoding.BROTLI)) {
byte[] compressed = CompressionUtils.compress(jsonBody, CompressionEncoding.BROTLI);
}
// Compress request body (falls back to GZIP if preferred encoding unavailable)
String jsonBody = "{\"messages\": [...]}";
byte[] compressed = CompressionUtils.compress(jsonBody, CompressionEncoding.GZIP);
// Decompress response body
byte[] compressedResponse = ...;
String decompressed = CompressionUtils.decompressToString(compressedResponse, CompressionEncoding.GZIP);
`
嵌套类摘要Nested Class Summary
| 类Class | 类型Kind | 说明Description |
|---|---|---|
CompressionException | 类class | 压缩异常,表示执行过程中的错误。 Exception thrown when compression or decompression fails. |
方法摘要Method Summary
方法详情Method Detail
isEncodingAvailable
public static boolean isEncodingAvailable(CompressionEncoding encoding)
判断是否 isEncodingAvailable。
Check if a compression encoding is available at runtime.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
encoding | CompressionEncoding | encoding(类型 `CompressionEncoding`)。the encoding to check |
booleanio/agentscope/examples/compression/extra/CompressionUtils.java:96–105isBrotliAvailable
public static boolean isBrotliAvailable()
判断是否 isBrotliAvailable。
Check if Brotli compression is available.
booleanio/agentscope/examples/compression/extra/CompressionUtils.java:112–114isZstdAvailable
public static boolean isZstdAvailable()
判断是否 isZstdAvailable。
Check if Zstd compression is available.
booleanio/agentscope/examples/compression/extra/CompressionUtils.java:121–123compress
public static byte[] compress(String data, CompressionEncoding encoding)
执行压缩相关操作。
Compress a string using the specified encoding.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
data | String | 数据(类型 `String`)。the string to compress |
encoding | CompressionEncoding | encoding(类型 `CompressionEncoding`)。the compression encoding to use |
byte[]CompressionException可能抛出 `CompressionException`。if compression fails or encoding is unavailable
io/agentscope/examples/compression/extra/CompressionUtils.java:135–140compress
public static byte[] compress(byte[] data, CompressionEncoding encoding)
执行压缩相关操作。
Compress a byte array using the specified encoding.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
data | byte[] | 数据到压缩。the data to compress |
encoding | CompressionEncoding | encoding(类型 `CompressionEncoding`)。the compression encoding to use |
byte[]CompressionException可能抛出 `CompressionException`。if compression fails or encoding is unavailable
io/agentscope/examples/compression/extra/CompressionUtils.java:150–173decompress
public static byte[] decompress(byte[] data, CompressionEncoding encoding)
执行 decompress 方法。
Decompress a byte array using the specified encoding.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
data | byte[] | 数据(类型 `byte[]`)。the compressed data |
encoding | CompressionEncoding | encoding(类型 `CompressionEncoding`)。the compression encoding used |
byte[]CompressionException可能抛出 `CompressionException`。if decompression fails or encoding is unavailable
io/agentscope/examples/compression/extra/CompressionUtils.java:183–206decompressToString
public static String decompressToString(byte[] data, CompressionEncoding encoding)
执行 decompressToString 方法。
Decompress a byte array to a UTF-8 string.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
data | byte[] | 数据(类型 `byte[]`)。the compressed data |
encoding | CompressionEncoding | encoding(类型 `CompressionEncoding`)。the compression encoding used |
StringCompressionException可能抛出 `CompressionException`。if decompression fails
io/agentscope/examples/compression/extra/CompressionUtils.java:216–222decompressStream
public static InputStream decompressStream(InputStream inputStream, CompressionEncoding encoding)
执行 decompressStream 方法。
Decompress an input stream using the specified encoding.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
inputStream | InputStream | 输入流(类型 `InputStream`)。the compressed input stream |
encoding | CompressionEncoding | encoding(类型 `CompressionEncoding`)。the compression encoding used |
InputStreamCompressionException可能抛出 `CompressionException`。if creating the decompression stream fails
io/agentscope/examples/compression/extra/CompressionUtils.java:235–260isGzipCompressed
public static boolean isGzipCompressed(byte[] data)
判断是否 isGzipCompressed。
Check if the data appears to be GZIP compressed.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
data | byte[] | 数据到检查。the data to check |
booleanio/agentscope/examples/compression/extra/CompressionUtils.java:270–276嵌套类详情Nested Class Detail
CompressionException
public static class CompressionException extends RuntimeException压缩异常,表示执行过程中的错误。位于 io.agentscope.examples.compression.extra 包,继承自 RuntimeException。核心成员包括 CompressionException。
Exception thrown when compression or decompression fails.