libzstd.vapi 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286
  1. /* libzstd.vapi - Vala bindings for Zstandard compression library
  2. *
  3. * Copyright (c) Meta Platforms, Inc. and affiliates.
  4. * Vala bindings generated for use with the spry framework.
  5. *
  6. * Based on zstd.h from libzstd 1.5.7
  7. */
  8. [CCode (cprefix = "ZSTD_", lower_case_cprefix = "ZSTD_", cheader_filename = "zstd.h,zstd_errors.h")]
  9. namespace Zstd {
  10. /* Version */
  11. [CCode (cname = "ZSTD_VERSION_MAJOR")]
  12. public const int VERSION_MAJOR;
  13. [CCode (cname = "ZSTD_VERSION_MINOR")]
  14. public const int VERSION_MINOR;
  15. [CCode (cname = "ZSTD_VERSION_RELEASE")]
  16. public const int VERSION_RELEASE;
  17. [CCode (cname = "ZSTD_VERSION_NUMBER")]
  18. public const int VERSION_NUMBER;
  19. [CCode (cname = "ZSTD_versionNumber")]
  20. public uint version_number();
  21. [CCode (cname = "ZSTD_versionString")]
  22. public unowned string version_string();
  23. /* Default compression level */
  24. [CCode (cname = "ZSTD_CLEVEL_DEFAULT")]
  25. public const int CLEVEL_DEFAULT;
  26. /* Block size constants */
  27. [CCode (cname = "ZSTD_BLOCKSIZELOG_MAX")]
  28. public const int BLOCKSIZELOG_MAX;
  29. [CCode (cname = "ZSTD_BLOCKSIZE_MAX")]
  30. public const int BLOCKSIZE_MAX;
  31. /* Content size constants */
  32. [CCode (cname = "ZSTD_CONTENTSIZE_UNKNOWN")]
  33. public const uint64 CONTENTSIZE_UNKNOWN;
  34. [CCode (cname = "ZSTD_CONTENTSIZE_ERROR")]
  35. public const uint64 CONTENTSIZE_ERROR;
  36. /* Compression strategies */
  37. [CCode (cname = "ZSTD_strategy", cprefix = "ZSTD_", has_type_id = false)]
  38. public enum Strategy {
  39. fast = 1,
  40. dfast = 2,
  41. greedy = 3,
  42. lazy = 4,
  43. lazy2 = 5,
  44. btlazy2 = 6,
  45. btopt = 7,
  46. btultra = 8,
  47. btultra2 = 9
  48. }
  49. /* End directive for streaming */
  50. [CCode (cname = "ZSTD_EndDirective", cprefix = "ZSTD_e_", has_type_id = false)]
  51. public enum EndDirective {
  52. continue = 0,
  53. flush = 1,
  54. end = 2
  55. }
  56. /* Reset directive */
  57. [CCode (cname = "ZSTD_ResetDirective", cprefix = "ZSTD_reset_", has_type_id = false)]
  58. public enum ResetDirective {
  59. session_only = 1,
  60. parameters = 2,
  61. session_and_parameters = 3
  62. }
  63. /* Error codes */
  64. [CCode (cname = "ZSTD_ErrorCode", cprefix = "ZSTD_error_", has_type_id = false)]
  65. public enum ErrorCode {
  66. no_error = 0,
  67. GENERIC = 1,
  68. prefix_unknown = 10,
  69. version_unsupported = 12,
  70. frameParameter_unsupported = 14,
  71. frameParameter_windowTooLarge = 16,
  72. corruption_detected = 20,
  73. checksum_wrong = 22,
  74. literals_headerWrong = 24,
  75. dictionary_corrupted = 30,
  76. dictionary_wrong = 32,
  77. dictionaryCreation_failed = 34,
  78. parameter_unsupported = 40,
  79. parameter_combination_unsupported = 41,
  80. parameter_outOfBound = 42,
  81. tableLog_tooLarge = 44,
  82. maxSymbolValue_tooLarge = 46,
  83. maxSymbolValue_tooSmall = 48,
  84. cannotProduce_uncompressedBlock = 49,
  85. stabilityCondition_notRespected = 50,
  86. stage_wrong = 60,
  87. init_missing = 62,
  88. memory_allocation = 64,
  89. workSpace_tooSmall = 66,
  90. dstSize_tooSmall = 70,
  91. srcSize_wrong = 72,
  92. dstBuffer_null = 74,
  93. noForwardProgress_destFull = 80,
  94. noForwardProgress_inputEmpty = 82,
  95. frameIndex_tooLarge = 100,
  96. seekableIO = 102,
  97. dstBuffer_wrong = 104,
  98. srcBuffer_wrong = 105,
  99. sequenceProducer_failed = 106,
  100. externalSequences_invalid = 107,
  101. maxCode = 120
  102. }
  103. /* Bounds structure */
  104. [CCode (cname = "ZSTD_bounds", has_type_id = false)]
  105. public struct Bounds {
  106. public size_t error;
  107. public int lowerBound;
  108. public int upperBound;
  109. }
  110. /* Input buffer for streaming */
  111. [CCode (cname = "ZSTD_inBuffer", has_type_id = false)]
  112. public struct InBuffer {
  113. public uint8* src;
  114. public size_t size;
  115. public size_t pos;
  116. }
  117. /* Output buffer for streaming */
  118. [CCode (cname = "ZSTD_outBuffer", has_type_id = false)]
  119. public struct OutBuffer {
  120. public uint8* dst;
  121. public size_t size;
  122. public size_t pos;
  123. }
  124. /* Compression context */
  125. [CCode (cname = "ZSTD_CCtx", free_function = "ZSTD_freeCCtx", has_type_id = false)]
  126. [Compact]
  127. public class CCtx {
  128. [CCode (cname = "ZSTD_createCCtx")]
  129. public CCtx();
  130. [CCode (cname = "ZSTD_compressCCtx")]
  131. public size_t compress(uint8* dst, size_t dstCapacity, uint8* src, size_t srcSize, int compressionLevel);
  132. [CCode (cname = "ZSTD_compress2")]
  133. public size_t compress2(uint8* dst, size_t dstCapacity, uint8* src, size_t srcSize);
  134. [CCode (cname = "ZSTD_CCtx_setParameter")]
  135. public size_t set_parameter(CParameter param, int value);
  136. [CCode (cname = "ZSTD_CCtx_setPledgedSrcSize")]
  137. public size_t set_pledged_src_size(uint64 pledgedSrcSize);
  138. [CCode (cname = "ZSTD_CCtx_reset")]
  139. public size_t reset(ResetDirective reset);
  140. [CCode (cname = "ZSTD_compressStream2")]
  141. public size_t compress_stream2(OutBuffer* output, InBuffer* input, EndDirective endOp);
  142. [CCode (cname = "ZSTD_initCStream")]
  143. public size_t init_stream(int compressionLevel);
  144. [CCode (cname = "ZSTD_compressStream")]
  145. public size_t compress_stream(OutBuffer* output, InBuffer* input);
  146. [CCode (cname = "ZSTD_flushStream")]
  147. public size_t flush_stream(OutBuffer* output);
  148. [CCode (cname = "ZSTD_endStream")]
  149. public size_t end_stream(OutBuffer* output);
  150. }
  151. /* Decompression context */
  152. [CCode (cname = "ZSTD_DCtx", free_function = "ZSTD_freeDCtx", has_type_id = false)]
  153. [Compact]
  154. public class DCtx {
  155. [CCode (cname = "ZSTD_createDCtx")]
  156. public DCtx();
  157. [CCode (cname = "ZSTD_decompressDCtx")]
  158. public size_t decompress(uint8* dst, size_t dstCapacity, uint8* src, size_t srcSize);
  159. [CCode (cname = "ZSTD_DCtx_setParameter")]
  160. public size_t set_parameter(DParameter param, int value);
  161. [CCode (cname = "ZSTD_DCtx_reset")]
  162. public size_t reset(ResetDirective reset);
  163. }
  164. /* Compression stream (alias for CCtx) */
  165. [CCode (cname = "ZSTD_CStream", free_function = "ZSTD_freeCStream", has_type_id = false)]
  166. [Compact]
  167. public class CStream {
  168. [CCode (cname = "ZSTD_createCStream")]
  169. public CStream();
  170. }
  171. /* Compression parameters */
  172. [CCode (cname = "ZSTD_cParameter", cprefix = "ZSTD_c_", has_type_id = false)]
  173. public enum CParameter {
  174. compressionLevel = 100,
  175. windowLog = 101,
  176. hashLog = 102,
  177. chainLog = 103,
  178. searchLog = 104,
  179. minMatch = 105,
  180. targetLength = 106,
  181. strategy = 107,
  182. targetCBlockSize = 130,
  183. enableLongDistanceMatching = 160,
  184. ldmHashLog = 161,
  185. ldmMinMatch = 162,
  186. ldmBucketSizeLog = 163,
  187. ldmHashRateLog = 164,
  188. contentSizeFlag = 200,
  189. checksumFlag = 201,
  190. dictIDFlag = 202,
  191. nbWorkers = 400,
  192. jobSize = 401,
  193. overlapLog = 402
  194. }
  195. /* Decompression parameters */
  196. [CCode (cname = "ZSTD_dParameter", cprefix = "ZSTD_d_", has_type_id = false)]
  197. public enum DParameter {
  198. windowLogMax = 100
  199. }
  200. /* Simple API - One-shot compression */
  201. [CCode (cname = "ZSTD_compress")]
  202. public size_t compress(uint8* dst, size_t dstCapacity, uint8* src, size_t srcSize, int compressionLevel);
  203. /* Simple API - One-shot decompression */
  204. [CCode (cname = "ZSTD_decompress")]
  205. public size_t decompress(uint8* dst, size_t dstCapacity, uint8* src, size_t compressedSize);
  206. /* Helper functions */
  207. [CCode (cname = "ZSTD_compressBound")]
  208. public size_t compress_bound(size_t srcSize);
  209. [CCode (cname = "ZSTD_isError")]
  210. public uint is_error(size_t result);
  211. [CCode (cname = "ZSTD_getErrorCode")]
  212. public ErrorCode get_error_code(size_t functionResult);
  213. [CCode (cname = "ZSTD_getErrorName")]
  214. public unowned string get_error_name(size_t result);
  215. [CCode (cname = "ZSTD_minCLevel")]
  216. public int min_c_level();
  217. [CCode (cname = "ZSTD_maxCLevel")]
  218. public int max_c_level();
  219. [CCode (cname = "ZSTD_defaultCLevel")]
  220. public int default_c_level();
  221. /* Content size functions */
  222. [CCode (cname = "ZSTD_getFrameContentSize")]
  223. public uint64 get_frame_content_size(uint8* src, size_t srcSize);
  224. [CCode (cname = "ZSTD_findFrameCompressedSize")]
  225. public size_t find_frame_compressed_size(uint8* src, size_t srcSize);
  226. /* Streaming buffer size recommendations */
  227. [CCode (cname = "ZSTD_CStreamInSize")]
  228. public size_t cstream_in_size();
  229. [CCode (cname = "ZSTD_CStreamOutSize")]
  230. public size_t cstream_out_size();
  231. /* Error string from error code */
  232. [CCode (cname = "ZSTD_getErrorString")]
  233. public unowned string get_error_string(ErrorCode code);
  234. /* Parameter bounds */
  235. [CCode (cname = "ZSTD_cParam_getBounds")]
  236. public Bounds cparam_get_bounds(CParameter cParam);
  237. [CCode (cname = "ZSTD_dParam_getBounds")]
  238. public Bounds dparam_get_bounds(DParameter dParam);
  239. }