@point3/node-rdkafka 3.6.0-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (707) hide show
  1. package/LICENSE.txt +20 -0
  2. package/README.md +636 -0
  3. package/binding.gyp +154 -0
  4. package/deps/librdkafka/.clang-format +136 -0
  5. package/deps/librdkafka/.clang-format-cpp +103 -0
  6. package/deps/librdkafka/.dir-locals.el +10 -0
  7. package/deps/librdkafka/.formatignore +33 -0
  8. package/deps/librdkafka/.gdbmacros +19 -0
  9. package/deps/librdkafka/.github/CODEOWNERS +1 -0
  10. package/deps/librdkafka/.github/ISSUE_TEMPLATE +34 -0
  11. package/deps/librdkafka/.semaphore/run-all-tests.yml +77 -0
  12. package/deps/librdkafka/.semaphore/semaphore-integration.yml +250 -0
  13. package/deps/librdkafka/.semaphore/semaphore.yml +378 -0
  14. package/deps/librdkafka/.semaphore/verify-linux-packages.yml +41 -0
  15. package/deps/librdkafka/CHANGELOG.md +2208 -0
  16. package/deps/librdkafka/CMakeLists.txt +291 -0
  17. package/deps/librdkafka/CODE_OF_CONDUCT.md +46 -0
  18. package/deps/librdkafka/CONFIGURATION.md +209 -0
  19. package/deps/librdkafka/CONTRIBUTING.md +431 -0
  20. package/deps/librdkafka/Doxyfile +2375 -0
  21. package/deps/librdkafka/INTRODUCTION.md +2481 -0
  22. package/deps/librdkafka/LICENSE +26 -0
  23. package/deps/librdkafka/LICENSE.cjson +22 -0
  24. package/deps/librdkafka/LICENSE.crc32c +28 -0
  25. package/deps/librdkafka/LICENSE.fnv1a +18 -0
  26. package/deps/librdkafka/LICENSE.hdrhistogram +27 -0
  27. package/deps/librdkafka/LICENSE.lz4 +26 -0
  28. package/deps/librdkafka/LICENSE.murmur2 +25 -0
  29. package/deps/librdkafka/LICENSE.nanopb +22 -0
  30. package/deps/librdkafka/LICENSE.opentelemetry +203 -0
  31. package/deps/librdkafka/LICENSE.pycrc +23 -0
  32. package/deps/librdkafka/LICENSE.queue +31 -0
  33. package/deps/librdkafka/LICENSE.regexp +5 -0
  34. package/deps/librdkafka/LICENSE.snappy +36 -0
  35. package/deps/librdkafka/LICENSE.tinycthread +26 -0
  36. package/deps/librdkafka/LICENSE.wingetopt +49 -0
  37. package/deps/librdkafka/LICENSES.txt +625 -0
  38. package/deps/librdkafka/Makefile +125 -0
  39. package/deps/librdkafka/README.md +199 -0
  40. package/deps/librdkafka/README.win32 +26 -0
  41. package/deps/librdkafka/STATISTICS.md +624 -0
  42. package/deps/librdkafka/configure +214 -0
  43. package/deps/librdkafka/configure.self +331 -0
  44. package/deps/librdkafka/debian/changelog +111 -0
  45. package/deps/librdkafka/debian/compat +1 -0
  46. package/deps/librdkafka/debian/control +71 -0
  47. package/deps/librdkafka/debian/copyright +99 -0
  48. package/deps/librdkafka/debian/gbp.conf +9 -0
  49. package/deps/librdkafka/debian/librdkafka++1.install +1 -0
  50. package/deps/librdkafka/debian/librdkafka-dev.examples +2 -0
  51. package/deps/librdkafka/debian/librdkafka-dev.install +9 -0
  52. package/deps/librdkafka/debian/librdkafka1.docs +5 -0
  53. package/deps/librdkafka/debian/librdkafka1.install +1 -0
  54. package/deps/librdkafka/debian/librdkafka1.symbols +135 -0
  55. package/deps/librdkafka/debian/rules +19 -0
  56. package/deps/librdkafka/debian/source/format +1 -0
  57. package/deps/librdkafka/debian/watch +2 -0
  58. package/deps/librdkafka/dev-conf.sh +123 -0
  59. package/deps/librdkafka/examples/CMakeLists.txt +79 -0
  60. package/deps/librdkafka/examples/Makefile +167 -0
  61. package/deps/librdkafka/examples/README.md +42 -0
  62. package/deps/librdkafka/examples/alter_consumer_group_offsets.c +338 -0
  63. package/deps/librdkafka/examples/consumer.c +271 -0
  64. package/deps/librdkafka/examples/delete_records.c +233 -0
  65. package/deps/librdkafka/examples/describe_cluster.c +322 -0
  66. package/deps/librdkafka/examples/describe_consumer_groups.c +455 -0
  67. package/deps/librdkafka/examples/describe_topics.c +427 -0
  68. package/deps/librdkafka/examples/elect_leaders.c +317 -0
  69. package/deps/librdkafka/examples/globals.json +11 -0
  70. package/deps/librdkafka/examples/idempotent_producer.c +344 -0
  71. package/deps/librdkafka/examples/incremental_alter_configs.c +347 -0
  72. package/deps/librdkafka/examples/kafkatest_verifiable_client.cpp +945 -0
  73. package/deps/librdkafka/examples/list_consumer_group_offsets.c +359 -0
  74. package/deps/librdkafka/examples/list_consumer_groups.c +365 -0
  75. package/deps/librdkafka/examples/list_offsets.c +327 -0
  76. package/deps/librdkafka/examples/misc.c +287 -0
  77. package/deps/librdkafka/examples/openssl_engine_example.cpp +248 -0
  78. package/deps/librdkafka/examples/producer.c +251 -0
  79. package/deps/librdkafka/examples/producer.cpp +228 -0
  80. package/deps/librdkafka/examples/rdkafka_complex_consumer_example.c +617 -0
  81. package/deps/librdkafka/examples/rdkafka_complex_consumer_example.cpp +467 -0
  82. package/deps/librdkafka/examples/rdkafka_consume_batch.cpp +264 -0
  83. package/deps/librdkafka/examples/rdkafka_example.c +853 -0
  84. package/deps/librdkafka/examples/rdkafka_example.cpp +679 -0
  85. package/deps/librdkafka/examples/rdkafka_performance.c +1781 -0
  86. package/deps/librdkafka/examples/transactions-older-broker.c +668 -0
  87. package/deps/librdkafka/examples/transactions.c +665 -0
  88. package/deps/librdkafka/examples/user_scram.c +491 -0
  89. package/deps/librdkafka/examples/win_ssl_cert_store.cpp +396 -0
  90. package/deps/librdkafka/lds-gen.py +73 -0
  91. package/deps/librdkafka/mainpage.doxy +40 -0
  92. package/deps/librdkafka/mklove/Makefile.base +329 -0
  93. package/deps/librdkafka/mklove/modules/configure.atomics +144 -0
  94. package/deps/librdkafka/mklove/modules/configure.base +2484 -0
  95. package/deps/librdkafka/mklove/modules/configure.builtin +70 -0
  96. package/deps/librdkafka/mklove/modules/configure.cc +186 -0
  97. package/deps/librdkafka/mklove/modules/configure.cxx +8 -0
  98. package/deps/librdkafka/mklove/modules/configure.fileversion +65 -0
  99. package/deps/librdkafka/mklove/modules/configure.gitversion +29 -0
  100. package/deps/librdkafka/mklove/modules/configure.good_cflags +18 -0
  101. package/deps/librdkafka/mklove/modules/configure.host +132 -0
  102. package/deps/librdkafka/mklove/modules/configure.lib +49 -0
  103. package/deps/librdkafka/mklove/modules/configure.libcurl +99 -0
  104. package/deps/librdkafka/mklove/modules/configure.libsasl2 +36 -0
  105. package/deps/librdkafka/mklove/modules/configure.libssl +147 -0
  106. package/deps/librdkafka/mklove/modules/configure.libzstd +58 -0
  107. package/deps/librdkafka/mklove/modules/configure.parseversion +95 -0
  108. package/deps/librdkafka/mklove/modules/configure.pic +16 -0
  109. package/deps/librdkafka/mklove/modules/configure.socket +20 -0
  110. package/deps/librdkafka/mklove/modules/configure.zlib +61 -0
  111. package/deps/librdkafka/mklove/modules/patches/README.md +8 -0
  112. package/deps/librdkafka/mklove/modules/patches/libcurl.0000-no-runtime-linking-check.patch +11 -0
  113. package/deps/librdkafka/mklove/modules/patches/libssl.0000-osx-rand-include-fix-OpenSSL-PR16409.patch +56 -0
  114. package/deps/librdkafka/packaging/RELEASE.md +319 -0
  115. package/deps/librdkafka/packaging/alpine/build-alpine.sh +38 -0
  116. package/deps/librdkafka/packaging/archlinux/PKGBUILD +30 -0
  117. package/deps/librdkafka/packaging/cmake/Config.cmake.in +37 -0
  118. package/deps/librdkafka/packaging/cmake/Modules/FindLZ4.cmake +38 -0
  119. package/deps/librdkafka/packaging/cmake/Modules/FindZSTD.cmake +27 -0
  120. package/deps/librdkafka/packaging/cmake/Modules/LICENSE.FindZstd +178 -0
  121. package/deps/librdkafka/packaging/cmake/README.md +38 -0
  122. package/deps/librdkafka/packaging/cmake/config.h.in +52 -0
  123. package/deps/librdkafka/packaging/cmake/parseversion.cmake +60 -0
  124. package/deps/librdkafka/packaging/cmake/rdkafka.pc.in +12 -0
  125. package/deps/librdkafka/packaging/cmake/try_compile/atomic_32_test.c +8 -0
  126. package/deps/librdkafka/packaging/cmake/try_compile/atomic_64_test.c +8 -0
  127. package/deps/librdkafka/packaging/cmake/try_compile/c11threads_test.c +14 -0
  128. package/deps/librdkafka/packaging/cmake/try_compile/crc32c_hw_test.c +27 -0
  129. package/deps/librdkafka/packaging/cmake/try_compile/dlopen_test.c +11 -0
  130. package/deps/librdkafka/packaging/cmake/try_compile/libsasl2_test.c +7 -0
  131. package/deps/librdkafka/packaging/cmake/try_compile/pthread_setname_darwin_test.c +6 -0
  132. package/deps/librdkafka/packaging/cmake/try_compile/pthread_setname_freebsd_test.c +7 -0
  133. package/deps/librdkafka/packaging/cmake/try_compile/pthread_setname_gnu_test.c +5 -0
  134. package/deps/librdkafka/packaging/cmake/try_compile/rand_r_test.c +7 -0
  135. package/deps/librdkafka/packaging/cmake/try_compile/rdkafka_setup.cmake +122 -0
  136. package/deps/librdkafka/packaging/cmake/try_compile/regex_test.c +10 -0
  137. package/deps/librdkafka/packaging/cmake/try_compile/strndup_test.c +5 -0
  138. package/deps/librdkafka/packaging/cmake/try_compile/sync_32_test.c +8 -0
  139. package/deps/librdkafka/packaging/cmake/try_compile/sync_64_test.c +8 -0
  140. package/deps/librdkafka/packaging/cp/README.md +16 -0
  141. package/deps/librdkafka/packaging/cp/check_features.c +72 -0
  142. package/deps/librdkafka/packaging/cp/verify-deb.sh +33 -0
  143. package/deps/librdkafka/packaging/cp/verify-packages.sh +69 -0
  144. package/deps/librdkafka/packaging/cp/verify-rpm.sh +32 -0
  145. package/deps/librdkafka/packaging/debian/changelog +66 -0
  146. package/deps/librdkafka/packaging/debian/compat +1 -0
  147. package/deps/librdkafka/packaging/debian/control +49 -0
  148. package/deps/librdkafka/packaging/debian/copyright +84 -0
  149. package/deps/librdkafka/packaging/debian/docs +5 -0
  150. package/deps/librdkafka/packaging/debian/gbp.conf +9 -0
  151. package/deps/librdkafka/packaging/debian/librdkafka-dev.dirs +2 -0
  152. package/deps/librdkafka/packaging/debian/librdkafka-dev.examples +2 -0
  153. package/deps/librdkafka/packaging/debian/librdkafka-dev.install +6 -0
  154. package/deps/librdkafka/packaging/debian/librdkafka-dev.substvars +1 -0
  155. package/deps/librdkafka/packaging/debian/librdkafka.dsc +16 -0
  156. package/deps/librdkafka/packaging/debian/librdkafka1-dbg.substvars +1 -0
  157. package/deps/librdkafka/packaging/debian/librdkafka1.dirs +1 -0
  158. package/deps/librdkafka/packaging/debian/librdkafka1.install +2 -0
  159. package/deps/librdkafka/packaging/debian/librdkafka1.postinst.debhelper +5 -0
  160. package/deps/librdkafka/packaging/debian/librdkafka1.postrm.debhelper +5 -0
  161. package/deps/librdkafka/packaging/debian/librdkafka1.symbols +64 -0
  162. package/deps/librdkafka/packaging/debian/rules +19 -0
  163. package/deps/librdkafka/packaging/debian/source/format +1 -0
  164. package/deps/librdkafka/packaging/debian/watch +2 -0
  165. package/deps/librdkafka/packaging/get_version.py +21 -0
  166. package/deps/librdkafka/packaging/homebrew/README.md +15 -0
  167. package/deps/librdkafka/packaging/homebrew/brew-update-pr.sh +31 -0
  168. package/deps/librdkafka/packaging/mingw-w64/configure-build-msys2-mingw-static.sh +52 -0
  169. package/deps/librdkafka/packaging/mingw-w64/configure-build-msys2-mingw.sh +21 -0
  170. package/deps/librdkafka/packaging/mingw-w64/export-variables.sh +13 -0
  171. package/deps/librdkafka/packaging/mingw-w64/run-tests.sh +6 -0
  172. package/deps/librdkafka/packaging/mingw-w64/semaphoreci-build.sh +38 -0
  173. package/deps/librdkafka/packaging/nuget/README.md +84 -0
  174. package/deps/librdkafka/packaging/nuget/artifact.py +177 -0
  175. package/deps/librdkafka/packaging/nuget/cleanup-s3.py +143 -0
  176. package/deps/librdkafka/packaging/nuget/common/p-common__plat-windows__arch-win32__bldtype-Release/msvcr120.zip +0 -0
  177. package/deps/librdkafka/packaging/nuget/common/p-common__plat-windows__arch-win32__bldtype-Release/msvcr140.zip +0 -0
  178. package/deps/librdkafka/packaging/nuget/common/p-common__plat-windows__arch-x64__bldtype-Release/msvcr120.zip +0 -0
  179. package/deps/librdkafka/packaging/nuget/common/p-common__plat-windows__arch-x64__bldtype-Release/msvcr140.zip +0 -0
  180. package/deps/librdkafka/packaging/nuget/nuget.sh +21 -0
  181. package/deps/librdkafka/packaging/nuget/nugetpackage.py +278 -0
  182. package/deps/librdkafka/packaging/nuget/packaging.py +448 -0
  183. package/deps/librdkafka/packaging/nuget/push-to-nuget.sh +21 -0
  184. package/deps/librdkafka/packaging/nuget/release.py +167 -0
  185. package/deps/librdkafka/packaging/nuget/requirements.txt +3 -0
  186. package/deps/librdkafka/packaging/nuget/staticpackage.py +178 -0
  187. package/deps/librdkafka/packaging/nuget/templates/librdkafka.redist.nuspec +21 -0
  188. package/deps/librdkafka/packaging/nuget/templates/librdkafka.redist.props +18 -0
  189. package/deps/librdkafka/packaging/nuget/templates/librdkafka.redist.targets +19 -0
  190. package/deps/librdkafka/packaging/nuget/zfile/__init__.py +0 -0
  191. package/deps/librdkafka/packaging/nuget/zfile/zfile.py +98 -0
  192. package/deps/librdkafka/packaging/rpm/Makefile +92 -0
  193. package/deps/librdkafka/packaging/rpm/README.md +23 -0
  194. package/deps/librdkafka/packaging/rpm/el7-x86_64.cfg +40 -0
  195. package/deps/librdkafka/packaging/rpm/librdkafka.spec +118 -0
  196. package/deps/librdkafka/packaging/rpm/mock-on-docker.sh +96 -0
  197. package/deps/librdkafka/packaging/rpm/tests/Makefile +25 -0
  198. package/deps/librdkafka/packaging/rpm/tests/README.md +8 -0
  199. package/deps/librdkafka/packaging/rpm/tests/run-test.sh +42 -0
  200. package/deps/librdkafka/packaging/rpm/tests/test-on-docker.sh +56 -0
  201. package/deps/librdkafka/packaging/rpm/tests/test.c +77 -0
  202. package/deps/librdkafka/packaging/rpm/tests/test.cpp +34 -0
  203. package/deps/librdkafka/packaging/tools/Dockerfile +31 -0
  204. package/deps/librdkafka/packaging/tools/build-configurations-checks.sh +12 -0
  205. package/deps/librdkafka/packaging/tools/build-deb-package.sh +64 -0
  206. package/deps/librdkafka/packaging/tools/build-debian.sh +65 -0
  207. package/deps/librdkafka/packaging/tools/build-manylinux.sh +68 -0
  208. package/deps/librdkafka/packaging/tools/build-release-artifacts.sh +139 -0
  209. package/deps/librdkafka/packaging/tools/distro-build.sh +38 -0
  210. package/deps/librdkafka/packaging/tools/gh-release-checksums.py +39 -0
  211. package/deps/librdkafka/packaging/tools/rdutcoverage.sh +25 -0
  212. package/deps/librdkafka/packaging/tools/requirements.txt +2 -0
  213. package/deps/librdkafka/packaging/tools/run-in-docker.sh +28 -0
  214. package/deps/librdkafka/packaging/tools/run-integration-tests.sh +31 -0
  215. package/deps/librdkafka/packaging/tools/run-style-check.sh +4 -0
  216. package/deps/librdkafka/packaging/tools/style-format.sh +149 -0
  217. package/deps/librdkafka/packaging/tools/update_rpcs_max_versions.py +100 -0
  218. package/deps/librdkafka/service.yml +172 -0
  219. package/deps/librdkafka/src/CMakeLists.txt +374 -0
  220. package/deps/librdkafka/src/Makefile +103 -0
  221. package/deps/librdkafka/src/README.lz4.md +30 -0
  222. package/deps/librdkafka/src/cJSON.c +2834 -0
  223. package/deps/librdkafka/src/cJSON.h +398 -0
  224. package/deps/librdkafka/src/crc32c.c +430 -0
  225. package/deps/librdkafka/src/crc32c.h +38 -0
  226. package/deps/librdkafka/src/generate_proto.sh +66 -0
  227. package/deps/librdkafka/src/librdkafka_cgrp_synch.png +0 -0
  228. package/deps/librdkafka/src/lz4.c +2727 -0
  229. package/deps/librdkafka/src/lz4.h +842 -0
  230. package/deps/librdkafka/src/lz4frame.c +2078 -0
  231. package/deps/librdkafka/src/lz4frame.h +692 -0
  232. package/deps/librdkafka/src/lz4frame_static.h +47 -0
  233. package/deps/librdkafka/src/lz4hc.c +1631 -0
  234. package/deps/librdkafka/src/lz4hc.h +413 -0
  235. package/deps/librdkafka/src/nanopb/pb.h +917 -0
  236. package/deps/librdkafka/src/nanopb/pb_common.c +388 -0
  237. package/deps/librdkafka/src/nanopb/pb_common.h +49 -0
  238. package/deps/librdkafka/src/nanopb/pb_decode.c +1727 -0
  239. package/deps/librdkafka/src/nanopb/pb_decode.h +193 -0
  240. package/deps/librdkafka/src/nanopb/pb_encode.c +1000 -0
  241. package/deps/librdkafka/src/nanopb/pb_encode.h +185 -0
  242. package/deps/librdkafka/src/opentelemetry/common.pb.c +32 -0
  243. package/deps/librdkafka/src/opentelemetry/common.pb.h +170 -0
  244. package/deps/librdkafka/src/opentelemetry/metrics.options +2 -0
  245. package/deps/librdkafka/src/opentelemetry/metrics.pb.c +67 -0
  246. package/deps/librdkafka/src/opentelemetry/metrics.pb.h +966 -0
  247. package/deps/librdkafka/src/opentelemetry/resource.pb.c +12 -0
  248. package/deps/librdkafka/src/opentelemetry/resource.pb.h +58 -0
  249. package/deps/librdkafka/src/queue.h +850 -0
  250. package/deps/librdkafka/src/rd.h +584 -0
  251. package/deps/librdkafka/src/rdaddr.c +255 -0
  252. package/deps/librdkafka/src/rdaddr.h +202 -0
  253. package/deps/librdkafka/src/rdatomic.h +230 -0
  254. package/deps/librdkafka/src/rdavg.h +260 -0
  255. package/deps/librdkafka/src/rdavl.c +210 -0
  256. package/deps/librdkafka/src/rdavl.h +250 -0
  257. package/deps/librdkafka/src/rdbase64.c +200 -0
  258. package/deps/librdkafka/src/rdbase64.h +43 -0
  259. package/deps/librdkafka/src/rdbuf.c +1884 -0
  260. package/deps/librdkafka/src/rdbuf.h +375 -0
  261. package/deps/librdkafka/src/rdcrc32.c +114 -0
  262. package/deps/librdkafka/src/rdcrc32.h +170 -0
  263. package/deps/librdkafka/src/rddl.c +179 -0
  264. package/deps/librdkafka/src/rddl.h +43 -0
  265. package/deps/librdkafka/src/rdendian.h +175 -0
  266. package/deps/librdkafka/src/rdfloat.h +67 -0
  267. package/deps/librdkafka/src/rdfnv1a.c +113 -0
  268. package/deps/librdkafka/src/rdfnv1a.h +35 -0
  269. package/deps/librdkafka/src/rdgz.c +120 -0
  270. package/deps/librdkafka/src/rdgz.h +46 -0
  271. package/deps/librdkafka/src/rdhdrhistogram.c +721 -0
  272. package/deps/librdkafka/src/rdhdrhistogram.h +87 -0
  273. package/deps/librdkafka/src/rdhttp.c +830 -0
  274. package/deps/librdkafka/src/rdhttp.h +101 -0
  275. package/deps/librdkafka/src/rdinterval.h +177 -0
  276. package/deps/librdkafka/src/rdkafka.c +5505 -0
  277. package/deps/librdkafka/src/rdkafka.h +10686 -0
  278. package/deps/librdkafka/src/rdkafka_admin.c +9794 -0
  279. package/deps/librdkafka/src/rdkafka_admin.h +661 -0
  280. package/deps/librdkafka/src/rdkafka_assignment.c +1010 -0
  281. package/deps/librdkafka/src/rdkafka_assignment.h +73 -0
  282. package/deps/librdkafka/src/rdkafka_assignor.c +1786 -0
  283. package/deps/librdkafka/src/rdkafka_assignor.h +402 -0
  284. package/deps/librdkafka/src/rdkafka_aux.c +409 -0
  285. package/deps/librdkafka/src/rdkafka_aux.h +174 -0
  286. package/deps/librdkafka/src/rdkafka_background.c +221 -0
  287. package/deps/librdkafka/src/rdkafka_broker.c +6337 -0
  288. package/deps/librdkafka/src/rdkafka_broker.h +744 -0
  289. package/deps/librdkafka/src/rdkafka_buf.c +543 -0
  290. package/deps/librdkafka/src/rdkafka_buf.h +1525 -0
  291. package/deps/librdkafka/src/rdkafka_cert.c +576 -0
  292. package/deps/librdkafka/src/rdkafka_cert.h +62 -0
  293. package/deps/librdkafka/src/rdkafka_cgrp.c +7587 -0
  294. package/deps/librdkafka/src/rdkafka_cgrp.h +477 -0
  295. package/deps/librdkafka/src/rdkafka_conf.c +4880 -0
  296. package/deps/librdkafka/src/rdkafka_conf.h +732 -0
  297. package/deps/librdkafka/src/rdkafka_confval.h +97 -0
  298. package/deps/librdkafka/src/rdkafka_coord.c +623 -0
  299. package/deps/librdkafka/src/rdkafka_coord.h +132 -0
  300. package/deps/librdkafka/src/rdkafka_error.c +228 -0
  301. package/deps/librdkafka/src/rdkafka_error.h +80 -0
  302. package/deps/librdkafka/src/rdkafka_event.c +502 -0
  303. package/deps/librdkafka/src/rdkafka_event.h +126 -0
  304. package/deps/librdkafka/src/rdkafka_feature.c +898 -0
  305. package/deps/librdkafka/src/rdkafka_feature.h +104 -0
  306. package/deps/librdkafka/src/rdkafka_fetcher.c +1422 -0
  307. package/deps/librdkafka/src/rdkafka_fetcher.h +44 -0
  308. package/deps/librdkafka/src/rdkafka_header.c +220 -0
  309. package/deps/librdkafka/src/rdkafka_header.h +76 -0
  310. package/deps/librdkafka/src/rdkafka_idempotence.c +807 -0
  311. package/deps/librdkafka/src/rdkafka_idempotence.h +144 -0
  312. package/deps/librdkafka/src/rdkafka_int.h +1260 -0
  313. package/deps/librdkafka/src/rdkafka_interceptor.c +819 -0
  314. package/deps/librdkafka/src/rdkafka_interceptor.h +104 -0
  315. package/deps/librdkafka/src/rdkafka_lz4.c +450 -0
  316. package/deps/librdkafka/src/rdkafka_lz4.h +49 -0
  317. package/deps/librdkafka/src/rdkafka_metadata.c +2209 -0
  318. package/deps/librdkafka/src/rdkafka_metadata.h +345 -0
  319. package/deps/librdkafka/src/rdkafka_metadata_cache.c +1183 -0
  320. package/deps/librdkafka/src/rdkafka_mock.c +3661 -0
  321. package/deps/librdkafka/src/rdkafka_mock.h +610 -0
  322. package/deps/librdkafka/src/rdkafka_mock_cgrp.c +1876 -0
  323. package/deps/librdkafka/src/rdkafka_mock_handlers.c +3113 -0
  324. package/deps/librdkafka/src/rdkafka_mock_int.h +710 -0
  325. package/deps/librdkafka/src/rdkafka_msg.c +2589 -0
  326. package/deps/librdkafka/src/rdkafka_msg.h +614 -0
  327. package/deps/librdkafka/src/rdkafka_msgbatch.h +62 -0
  328. package/deps/librdkafka/src/rdkafka_msgset.h +98 -0
  329. package/deps/librdkafka/src/rdkafka_msgset_reader.c +1806 -0
  330. package/deps/librdkafka/src/rdkafka_msgset_writer.c +1474 -0
  331. package/deps/librdkafka/src/rdkafka_offset.c +1565 -0
  332. package/deps/librdkafka/src/rdkafka_offset.h +150 -0
  333. package/deps/librdkafka/src/rdkafka_op.c +997 -0
  334. package/deps/librdkafka/src/rdkafka_op.h +858 -0
  335. package/deps/librdkafka/src/rdkafka_partition.c +4896 -0
  336. package/deps/librdkafka/src/rdkafka_partition.h +1182 -0
  337. package/deps/librdkafka/src/rdkafka_pattern.c +228 -0
  338. package/deps/librdkafka/src/rdkafka_pattern.h +70 -0
  339. package/deps/librdkafka/src/rdkafka_plugin.c +213 -0
  340. package/deps/librdkafka/src/rdkafka_plugin.h +41 -0
  341. package/deps/librdkafka/src/rdkafka_proto.h +736 -0
  342. package/deps/librdkafka/src/rdkafka_protocol.h +128 -0
  343. package/deps/librdkafka/src/rdkafka_queue.c +1230 -0
  344. package/deps/librdkafka/src/rdkafka_queue.h +1220 -0
  345. package/deps/librdkafka/src/rdkafka_range_assignor.c +1748 -0
  346. package/deps/librdkafka/src/rdkafka_request.c +7089 -0
  347. package/deps/librdkafka/src/rdkafka_request.h +732 -0
  348. package/deps/librdkafka/src/rdkafka_roundrobin_assignor.c +123 -0
  349. package/deps/librdkafka/src/rdkafka_sasl.c +530 -0
  350. package/deps/librdkafka/src/rdkafka_sasl.h +63 -0
  351. package/deps/librdkafka/src/rdkafka_sasl_cyrus.c +722 -0
  352. package/deps/librdkafka/src/rdkafka_sasl_int.h +89 -0
  353. package/deps/librdkafka/src/rdkafka_sasl_oauthbearer.c +1833 -0
  354. package/deps/librdkafka/src/rdkafka_sasl_oauthbearer.h +52 -0
  355. package/deps/librdkafka/src/rdkafka_sasl_oauthbearer_oidc.c +1666 -0
  356. package/deps/librdkafka/src/rdkafka_sasl_oauthbearer_oidc.h +47 -0
  357. package/deps/librdkafka/src/rdkafka_sasl_plain.c +142 -0
  358. package/deps/librdkafka/src/rdkafka_sasl_scram.c +858 -0
  359. package/deps/librdkafka/src/rdkafka_sasl_win32.c +550 -0
  360. package/deps/librdkafka/src/rdkafka_ssl.c +2129 -0
  361. package/deps/librdkafka/src/rdkafka_ssl.h +86 -0
  362. package/deps/librdkafka/src/rdkafka_sticky_assignor.c +4785 -0
  363. package/deps/librdkafka/src/rdkafka_subscription.c +278 -0
  364. package/deps/librdkafka/src/rdkafka_telemetry.c +760 -0
  365. package/deps/librdkafka/src/rdkafka_telemetry.h +52 -0
  366. package/deps/librdkafka/src/rdkafka_telemetry_decode.c +1053 -0
  367. package/deps/librdkafka/src/rdkafka_telemetry_decode.h +59 -0
  368. package/deps/librdkafka/src/rdkafka_telemetry_encode.c +997 -0
  369. package/deps/librdkafka/src/rdkafka_telemetry_encode.h +301 -0
  370. package/deps/librdkafka/src/rdkafka_timer.c +402 -0
  371. package/deps/librdkafka/src/rdkafka_timer.h +117 -0
  372. package/deps/librdkafka/src/rdkafka_topic.c +2161 -0
  373. package/deps/librdkafka/src/rdkafka_topic.h +334 -0
  374. package/deps/librdkafka/src/rdkafka_transport.c +1309 -0
  375. package/deps/librdkafka/src/rdkafka_transport.h +99 -0
  376. package/deps/librdkafka/src/rdkafka_transport_int.h +100 -0
  377. package/deps/librdkafka/src/rdkafka_txnmgr.c +3256 -0
  378. package/deps/librdkafka/src/rdkafka_txnmgr.h +171 -0
  379. package/deps/librdkafka/src/rdkafka_zstd.c +226 -0
  380. package/deps/librdkafka/src/rdkafka_zstd.h +57 -0
  381. package/deps/librdkafka/src/rdlist.c +576 -0
  382. package/deps/librdkafka/src/rdlist.h +434 -0
  383. package/deps/librdkafka/src/rdlog.c +89 -0
  384. package/deps/librdkafka/src/rdlog.h +41 -0
  385. package/deps/librdkafka/src/rdmap.c +508 -0
  386. package/deps/librdkafka/src/rdmap.h +492 -0
  387. package/deps/librdkafka/src/rdmurmur2.c +167 -0
  388. package/deps/librdkafka/src/rdmurmur2.h +35 -0
  389. package/deps/librdkafka/src/rdports.c +61 -0
  390. package/deps/librdkafka/src/rdports.h +38 -0
  391. package/deps/librdkafka/src/rdposix.h +250 -0
  392. package/deps/librdkafka/src/rdrand.c +80 -0
  393. package/deps/librdkafka/src/rdrand.h +43 -0
  394. package/deps/librdkafka/src/rdregex.c +156 -0
  395. package/deps/librdkafka/src/rdregex.h +43 -0
  396. package/deps/librdkafka/src/rdsignal.h +57 -0
  397. package/deps/librdkafka/src/rdstring.c +645 -0
  398. package/deps/librdkafka/src/rdstring.h +98 -0
  399. package/deps/librdkafka/src/rdsysqueue.h +404 -0
  400. package/deps/librdkafka/src/rdtime.h +356 -0
  401. package/deps/librdkafka/src/rdtypes.h +86 -0
  402. package/deps/librdkafka/src/rdunittest.c +549 -0
  403. package/deps/librdkafka/src/rdunittest.h +232 -0
  404. package/deps/librdkafka/src/rdvarint.c +134 -0
  405. package/deps/librdkafka/src/rdvarint.h +165 -0
  406. package/deps/librdkafka/src/rdwin32.h +382 -0
  407. package/deps/librdkafka/src/rdxxhash.c +1030 -0
  408. package/deps/librdkafka/src/rdxxhash.h +328 -0
  409. package/deps/librdkafka/src/regexp.c +1352 -0
  410. package/deps/librdkafka/src/regexp.h +41 -0
  411. package/deps/librdkafka/src/snappy.c +1866 -0
  412. package/deps/librdkafka/src/snappy.h +62 -0
  413. package/deps/librdkafka/src/snappy_compat.h +138 -0
  414. package/deps/librdkafka/src/statistics_schema.json +444 -0
  415. package/deps/librdkafka/src/tinycthread.c +932 -0
  416. package/deps/librdkafka/src/tinycthread.h +503 -0
  417. package/deps/librdkafka/src/tinycthread_extra.c +199 -0
  418. package/deps/librdkafka/src/tinycthread_extra.h +212 -0
  419. package/deps/librdkafka/src/win32_config.h +58 -0
  420. package/deps/librdkafka/src-cpp/CMakeLists.txt +90 -0
  421. package/deps/librdkafka/src-cpp/ConfImpl.cpp +84 -0
  422. package/deps/librdkafka/src-cpp/ConsumerImpl.cpp +244 -0
  423. package/deps/librdkafka/src-cpp/HandleImpl.cpp +436 -0
  424. package/deps/librdkafka/src-cpp/HeadersImpl.cpp +48 -0
  425. package/deps/librdkafka/src-cpp/KafkaConsumerImpl.cpp +296 -0
  426. package/deps/librdkafka/src-cpp/Makefile +55 -0
  427. package/deps/librdkafka/src-cpp/MessageImpl.cpp +38 -0
  428. package/deps/librdkafka/src-cpp/MetadataImpl.cpp +170 -0
  429. package/deps/librdkafka/src-cpp/ProducerImpl.cpp +197 -0
  430. package/deps/librdkafka/src-cpp/QueueImpl.cpp +70 -0
  431. package/deps/librdkafka/src-cpp/README.md +16 -0
  432. package/deps/librdkafka/src-cpp/RdKafka.cpp +59 -0
  433. package/deps/librdkafka/src-cpp/TopicImpl.cpp +124 -0
  434. package/deps/librdkafka/src-cpp/TopicPartitionImpl.cpp +57 -0
  435. package/deps/librdkafka/src-cpp/rdkafkacpp.h +3797 -0
  436. package/deps/librdkafka/src-cpp/rdkafkacpp_int.h +1641 -0
  437. package/deps/librdkafka/tests/0000-unittests.c +72 -0
  438. package/deps/librdkafka/tests/0001-multiobj.c +102 -0
  439. package/deps/librdkafka/tests/0002-unkpart.c +244 -0
  440. package/deps/librdkafka/tests/0003-msgmaxsize.c +173 -0
  441. package/deps/librdkafka/tests/0004-conf.c +934 -0
  442. package/deps/librdkafka/tests/0005-order.c +133 -0
  443. package/deps/librdkafka/tests/0006-symbols.c +163 -0
  444. package/deps/librdkafka/tests/0007-autotopic.c +136 -0
  445. package/deps/librdkafka/tests/0008-reqacks.c +179 -0
  446. package/deps/librdkafka/tests/0009-mock_cluster.c +97 -0
  447. package/deps/librdkafka/tests/0011-produce_batch.c +753 -0
  448. package/deps/librdkafka/tests/0012-produce_consume.c +537 -0
  449. package/deps/librdkafka/tests/0013-null-msgs.c +473 -0
  450. package/deps/librdkafka/tests/0014-reconsume-191.c +512 -0
  451. package/deps/librdkafka/tests/0015-offset_seeks.c +172 -0
  452. package/deps/librdkafka/tests/0016-client_swname.c +181 -0
  453. package/deps/librdkafka/tests/0017-compression.c +140 -0
  454. package/deps/librdkafka/tests/0018-cgrp_term.c +338 -0
  455. package/deps/librdkafka/tests/0019-list_groups.c +289 -0
  456. package/deps/librdkafka/tests/0020-destroy_hang.c +162 -0
  457. package/deps/librdkafka/tests/0021-rkt_destroy.c +72 -0
  458. package/deps/librdkafka/tests/0022-consume_batch.c +279 -0
  459. package/deps/librdkafka/tests/0025-timers.c +147 -0
  460. package/deps/librdkafka/tests/0026-consume_pause.c +547 -0
  461. package/deps/librdkafka/tests/0028-long_topicnames.c +79 -0
  462. package/deps/librdkafka/tests/0029-assign_offset.c +202 -0
  463. package/deps/librdkafka/tests/0030-offset_commit.c +589 -0
  464. package/deps/librdkafka/tests/0031-get_offsets.c +235 -0
  465. package/deps/librdkafka/tests/0033-regex_subscribe.c +536 -0
  466. package/deps/librdkafka/tests/0034-offset_reset.c +398 -0
  467. package/deps/librdkafka/tests/0035-api_version.c +73 -0
  468. package/deps/librdkafka/tests/0036-partial_fetch.c +87 -0
  469. package/deps/librdkafka/tests/0037-destroy_hang_local.c +85 -0
  470. package/deps/librdkafka/tests/0038-performance.c +121 -0
  471. package/deps/librdkafka/tests/0039-event.c +284 -0
  472. package/deps/librdkafka/tests/0040-io_event.c +257 -0
  473. package/deps/librdkafka/tests/0041-fetch_max_bytes.c +97 -0
  474. package/deps/librdkafka/tests/0042-many_topics.c +252 -0
  475. package/deps/librdkafka/tests/0043-no_connection.c +77 -0
  476. package/deps/librdkafka/tests/0044-partition_cnt.c +94 -0
  477. package/deps/librdkafka/tests/0045-subscribe_update.c +1010 -0
  478. package/deps/librdkafka/tests/0046-rkt_cache.c +65 -0
  479. package/deps/librdkafka/tests/0047-partial_buf_tmout.c +98 -0
  480. package/deps/librdkafka/tests/0048-partitioner.c +283 -0
  481. package/deps/librdkafka/tests/0049-consume_conn_close.c +162 -0
  482. package/deps/librdkafka/tests/0050-subscribe_adds.c +145 -0
  483. package/deps/librdkafka/tests/0051-assign_adds.c +126 -0
  484. package/deps/librdkafka/tests/0052-msg_timestamps.c +238 -0
  485. package/deps/librdkafka/tests/0053-stats_cb.cpp +527 -0
  486. package/deps/librdkafka/tests/0054-offset_time.cpp +236 -0
  487. package/deps/librdkafka/tests/0055-producer_latency.c +539 -0
  488. package/deps/librdkafka/tests/0056-balanced_group_mt.c +315 -0
  489. package/deps/librdkafka/tests/0057-invalid_topic.cpp +112 -0
  490. package/deps/librdkafka/tests/0058-log.cpp +123 -0
  491. package/deps/librdkafka/tests/0059-bsearch.cpp +241 -0
  492. package/deps/librdkafka/tests/0060-op_prio.cpp +163 -0
  493. package/deps/librdkafka/tests/0061-consumer_lag.cpp +295 -0
  494. package/deps/librdkafka/tests/0062-stats_event.c +126 -0
  495. package/deps/librdkafka/tests/0063-clusterid.cpp +180 -0
  496. package/deps/librdkafka/tests/0064-interceptors.c +481 -0
  497. package/deps/librdkafka/tests/0065-yield.cpp +140 -0
  498. package/deps/librdkafka/tests/0066-plugins.cpp +129 -0
  499. package/deps/librdkafka/tests/0067-empty_topic.cpp +151 -0
  500. package/deps/librdkafka/tests/0068-produce_timeout.c +136 -0
  501. package/deps/librdkafka/tests/0069-consumer_add_parts.c +119 -0
  502. package/deps/librdkafka/tests/0070-null_empty.cpp +197 -0
  503. package/deps/librdkafka/tests/0072-headers_ut.c +448 -0
  504. package/deps/librdkafka/tests/0073-headers.c +381 -0
  505. package/deps/librdkafka/tests/0074-producev.c +87 -0
  506. package/deps/librdkafka/tests/0075-retry.c +290 -0
  507. package/deps/librdkafka/tests/0076-produce_retry.c +452 -0
  508. package/deps/librdkafka/tests/0077-compaction.c +363 -0
  509. package/deps/librdkafka/tests/0078-c_from_cpp.cpp +96 -0
  510. package/deps/librdkafka/tests/0079-fork.c +93 -0
  511. package/deps/librdkafka/tests/0080-admin_ut.c +3095 -0
  512. package/deps/librdkafka/tests/0081-admin.c +5633 -0
  513. package/deps/librdkafka/tests/0082-fetch_max_bytes.cpp +137 -0
  514. package/deps/librdkafka/tests/0083-cb_event.c +233 -0
  515. package/deps/librdkafka/tests/0084-destroy_flags.c +208 -0
  516. package/deps/librdkafka/tests/0085-headers.cpp +392 -0
  517. package/deps/librdkafka/tests/0086-purge.c +368 -0
  518. package/deps/librdkafka/tests/0088-produce_metadata_timeout.c +162 -0
  519. package/deps/librdkafka/tests/0089-max_poll_interval.c +511 -0
  520. package/deps/librdkafka/tests/0090-idempotence.c +171 -0
  521. package/deps/librdkafka/tests/0091-max_poll_interval_timeout.c +295 -0
  522. package/deps/librdkafka/tests/0092-mixed_msgver.c +103 -0
  523. package/deps/librdkafka/tests/0093-holb.c +200 -0
  524. package/deps/librdkafka/tests/0094-idempotence_msg_timeout.c +231 -0
  525. package/deps/librdkafka/tests/0095-all_brokers_down.cpp +122 -0
  526. package/deps/librdkafka/tests/0097-ssl_verify.cpp +658 -0
  527. package/deps/librdkafka/tests/0098-consumer-txn.cpp +1218 -0
  528. package/deps/librdkafka/tests/0099-commit_metadata.c +194 -0
  529. package/deps/librdkafka/tests/0100-thread_interceptors.cpp +195 -0
  530. package/deps/librdkafka/tests/0101-fetch-from-follower.cpp +446 -0
  531. package/deps/librdkafka/tests/0102-static_group_rebalance.c +836 -0
  532. package/deps/librdkafka/tests/0103-transactions.c +1383 -0
  533. package/deps/librdkafka/tests/0104-fetch_from_follower_mock.c +625 -0
  534. package/deps/librdkafka/tests/0105-transactions_mock.c +3930 -0
  535. package/deps/librdkafka/tests/0106-cgrp_sess_timeout.c +318 -0
  536. package/deps/librdkafka/tests/0107-topic_recreate.c +259 -0
  537. package/deps/librdkafka/tests/0109-auto_create_topics.cpp +278 -0
  538. package/deps/librdkafka/tests/0110-batch_size.cpp +182 -0
  539. package/deps/librdkafka/tests/0111-delay_create_topics.cpp +127 -0
  540. package/deps/librdkafka/tests/0112-assign_unknown_part.c +87 -0
  541. package/deps/librdkafka/tests/0113-cooperative_rebalance.cpp +3473 -0
  542. package/deps/librdkafka/tests/0114-sticky_partitioning.cpp +176 -0
  543. package/deps/librdkafka/tests/0115-producer_auth.cpp +182 -0
  544. package/deps/librdkafka/tests/0116-kafkaconsumer_close.cpp +216 -0
  545. package/deps/librdkafka/tests/0117-mock_errors.c +331 -0
  546. package/deps/librdkafka/tests/0118-commit_rebalance.c +154 -0
  547. package/deps/librdkafka/tests/0119-consumer_auth.cpp +167 -0
  548. package/deps/librdkafka/tests/0120-asymmetric_subscription.c +185 -0
  549. package/deps/librdkafka/tests/0121-clusterid.c +115 -0
  550. package/deps/librdkafka/tests/0122-buffer_cleaning_after_rebalance.c +227 -0
  551. package/deps/librdkafka/tests/0123-connections_max_idle.c +98 -0
  552. package/deps/librdkafka/tests/0124-openssl_invalid_engine.c +69 -0
  553. package/deps/librdkafka/tests/0125-immediate_flush.c +144 -0
  554. package/deps/librdkafka/tests/0126-oauthbearer_oidc.c +528 -0
  555. package/deps/librdkafka/tests/0127-fetch_queue_backoff.cpp +165 -0
  556. package/deps/librdkafka/tests/0128-sasl_callback_queue.cpp +125 -0
  557. package/deps/librdkafka/tests/0129-fetch_aborted_msgs.c +79 -0
  558. package/deps/librdkafka/tests/0130-store_offsets.c +178 -0
  559. package/deps/librdkafka/tests/0131-connect_timeout.c +81 -0
  560. package/deps/librdkafka/tests/0132-strategy_ordering.c +179 -0
  561. package/deps/librdkafka/tests/0133-ssl_keys.c +150 -0
  562. package/deps/librdkafka/tests/0134-ssl_provider.c +92 -0
  563. package/deps/librdkafka/tests/0135-sasl_credentials.cpp +143 -0
  564. package/deps/librdkafka/tests/0136-resolve_cb.c +181 -0
  565. package/deps/librdkafka/tests/0137-barrier_batch_consume.c +619 -0
  566. package/deps/librdkafka/tests/0138-admin_mock.c +281 -0
  567. package/deps/librdkafka/tests/0139-offset_validation_mock.c +950 -0
  568. package/deps/librdkafka/tests/0140-commit_metadata.cpp +108 -0
  569. package/deps/librdkafka/tests/0142-reauthentication.c +515 -0
  570. package/deps/librdkafka/tests/0143-exponential_backoff_mock.c +552 -0
  571. package/deps/librdkafka/tests/0144-idempotence_mock.c +373 -0
  572. package/deps/librdkafka/tests/0145-pause_resume_mock.c +119 -0
  573. package/deps/librdkafka/tests/0146-metadata_mock.c +505 -0
  574. package/deps/librdkafka/tests/0147-consumer_group_consumer_mock.c +952 -0
  575. package/deps/librdkafka/tests/0148-offset_fetch_commit_error_mock.c +563 -0
  576. package/deps/librdkafka/tests/0149-broker-same-host-port.c +140 -0
  577. package/deps/librdkafka/tests/0150-telemetry_mock.c +651 -0
  578. package/deps/librdkafka/tests/0151-purge-brokers.c +566 -0
  579. package/deps/librdkafka/tests/0152-rebootstrap.c +59 -0
  580. package/deps/librdkafka/tests/0153-memberid.c +128 -0
  581. package/deps/librdkafka/tests/1000-unktopic.c +164 -0
  582. package/deps/librdkafka/tests/8000-idle.cpp +60 -0
  583. package/deps/librdkafka/tests/8001-fetch_from_follower_mock_manual.c +113 -0
  584. package/deps/librdkafka/tests/CMakeLists.txt +170 -0
  585. package/deps/librdkafka/tests/LibrdkafkaTestApp.py +291 -0
  586. package/deps/librdkafka/tests/Makefile +182 -0
  587. package/deps/librdkafka/tests/README.md +509 -0
  588. package/deps/librdkafka/tests/autotest.sh +33 -0
  589. package/deps/librdkafka/tests/backtrace.gdb +30 -0
  590. package/deps/librdkafka/tests/broker_version_tests.py +315 -0
  591. package/deps/librdkafka/tests/buildbox.sh +17 -0
  592. package/deps/librdkafka/tests/cleanup-checker-tests.sh +20 -0
  593. package/deps/librdkafka/tests/cluster_testing.py +191 -0
  594. package/deps/librdkafka/tests/delete-test-topics.sh +56 -0
  595. package/deps/librdkafka/tests/fixtures/oauthbearer/jwt_assertion_template.json +10 -0
  596. package/deps/librdkafka/tests/fixtures/ssl/Makefile +8 -0
  597. package/deps/librdkafka/tests/fixtures/ssl/README.md +13 -0
  598. package/deps/librdkafka/tests/fixtures/ssl/client.keystore.intermediate.p12 +0 -0
  599. package/deps/librdkafka/tests/fixtures/ssl/client.keystore.p12 +0 -0
  600. package/deps/librdkafka/tests/fixtures/ssl/client2.certificate.intermediate.pem +72 -0
  601. package/deps/librdkafka/tests/fixtures/ssl/client2.certificate.pem +50 -0
  602. package/deps/librdkafka/tests/fixtures/ssl/client2.intermediate.key +46 -0
  603. package/deps/librdkafka/tests/fixtures/ssl/client2.key +46 -0
  604. package/deps/librdkafka/tests/fixtures/ssl/create_keys.sh +168 -0
  605. package/deps/librdkafka/tests/fuzzers/Makefile +12 -0
  606. package/deps/librdkafka/tests/fuzzers/README.md +31 -0
  607. package/deps/librdkafka/tests/fuzzers/fuzz_regex.c +74 -0
  608. package/deps/librdkafka/tests/fuzzers/helpers.h +90 -0
  609. package/deps/librdkafka/tests/gen-ssl-certs.sh +165 -0
  610. package/deps/librdkafka/tests/interactive_broker_version.py +170 -0
  611. package/deps/librdkafka/tests/interceptor_test/CMakeLists.txt +16 -0
  612. package/deps/librdkafka/tests/interceptor_test/Makefile +22 -0
  613. package/deps/librdkafka/tests/interceptor_test/interceptor_test.c +314 -0
  614. package/deps/librdkafka/tests/interceptor_test/interceptor_test.h +54 -0
  615. package/deps/librdkafka/tests/java/IncrementalRebalanceCli.java +97 -0
  616. package/deps/librdkafka/tests/java/Makefile +13 -0
  617. package/deps/librdkafka/tests/java/Murmur2Cli.java +46 -0
  618. package/deps/librdkafka/tests/java/README.md +14 -0
  619. package/deps/librdkafka/tests/java/TransactionProducerCli.java +162 -0
  620. package/deps/librdkafka/tests/java/run-class.sh +11 -0
  621. package/deps/librdkafka/tests/librdkafka.suppressions +483 -0
  622. package/deps/librdkafka/tests/lz4_manual_test.sh +59 -0
  623. package/deps/librdkafka/tests/multi-broker-version-test.sh +50 -0
  624. package/deps/librdkafka/tests/parse-refcnt.sh +43 -0
  625. package/deps/librdkafka/tests/performance_plot.py +115 -0
  626. package/deps/librdkafka/tests/plugin_test/Makefile +19 -0
  627. package/deps/librdkafka/tests/plugin_test/plugin_test.c +58 -0
  628. package/deps/librdkafka/tests/requirements.txt +2 -0
  629. package/deps/librdkafka/tests/run-all-tests.sh +79 -0
  630. package/deps/librdkafka/tests/run-consumer-tests.sh +16 -0
  631. package/deps/librdkafka/tests/run-producer-tests.sh +16 -0
  632. package/deps/librdkafka/tests/run-test-batches.py +157 -0
  633. package/deps/librdkafka/tests/run-test.sh +140 -0
  634. package/deps/librdkafka/tests/rusage.c +249 -0
  635. package/deps/librdkafka/tests/sasl_test.py +289 -0
  636. package/deps/librdkafka/tests/scenarios/README.md +6 -0
  637. package/deps/librdkafka/tests/scenarios/ak23.json +6 -0
  638. package/deps/librdkafka/tests/scenarios/default.json +5 -0
  639. package/deps/librdkafka/tests/scenarios/noautocreate.json +5 -0
  640. package/deps/librdkafka/tests/sockem.c +801 -0
  641. package/deps/librdkafka/tests/sockem.h +85 -0
  642. package/deps/librdkafka/tests/sockem_ctrl.c +145 -0
  643. package/deps/librdkafka/tests/sockem_ctrl.h +61 -0
  644. package/deps/librdkafka/tests/test.c +7778 -0
  645. package/deps/librdkafka/tests/test.conf.example +27 -0
  646. package/deps/librdkafka/tests/test.h +1028 -0
  647. package/deps/librdkafka/tests/testcpp.cpp +131 -0
  648. package/deps/librdkafka/tests/testcpp.h +388 -0
  649. package/deps/librdkafka/tests/testshared.h +416 -0
  650. package/deps/librdkafka/tests/tools/README.md +4 -0
  651. package/deps/librdkafka/tests/tools/stats/README.md +21 -0
  652. package/deps/librdkafka/tests/tools/stats/filter.jq +42 -0
  653. package/deps/librdkafka/tests/tools/stats/graph.py +150 -0
  654. package/deps/librdkafka/tests/tools/stats/requirements.txt +3 -0
  655. package/deps/librdkafka/tests/tools/stats/to_csv.py +124 -0
  656. package/deps/librdkafka/tests/trivup/trivup-0.14.0.tar.gz +0 -0
  657. package/deps/librdkafka/tests/until-fail.sh +87 -0
  658. package/deps/librdkafka/tests/xxxx-assign_partition.c +122 -0
  659. package/deps/librdkafka/tests/xxxx-metadata.cpp +159 -0
  660. package/deps/librdkafka/vcpkg.json +23 -0
  661. package/deps/librdkafka/win32/README.md +5 -0
  662. package/deps/librdkafka/win32/build-package.bat +3 -0
  663. package/deps/librdkafka/win32/build.bat +19 -0
  664. package/deps/librdkafka/win32/common.vcxproj +84 -0
  665. package/deps/librdkafka/win32/interceptor_test/interceptor_test.vcxproj +87 -0
  666. package/deps/librdkafka/win32/librdkafka.autopkg.template +54 -0
  667. package/deps/librdkafka/win32/librdkafka.master.testing.targets +13 -0
  668. package/deps/librdkafka/win32/librdkafka.sln +226 -0
  669. package/deps/librdkafka/win32/librdkafka.vcxproj +276 -0
  670. package/deps/librdkafka/win32/librdkafkacpp/librdkafkacpp.vcxproj +104 -0
  671. package/deps/librdkafka/win32/msbuild.ps1 +15 -0
  672. package/deps/librdkafka/win32/openssl_engine_example/openssl_engine_example.vcxproj +132 -0
  673. package/deps/librdkafka/win32/package-zip.ps1 +46 -0
  674. package/deps/librdkafka/win32/packages/repositories.config +4 -0
  675. package/deps/librdkafka/win32/push-package.bat +4 -0
  676. package/deps/librdkafka/win32/rdkafka_complex_consumer_example_cpp/rdkafka_complex_consumer_example_cpp.vcxproj +67 -0
  677. package/deps/librdkafka/win32/rdkafka_example/rdkafka_example.vcxproj +97 -0
  678. package/deps/librdkafka/win32/rdkafka_performance/rdkafka_performance.vcxproj +97 -0
  679. package/deps/librdkafka/win32/setup-msys2.ps1 +47 -0
  680. package/deps/librdkafka/win32/setup-vcpkg.ps1 +34 -0
  681. package/deps/librdkafka/win32/tests/test.conf.example +25 -0
  682. package/deps/librdkafka/win32/tests/tests.vcxproj +253 -0
  683. package/deps/librdkafka/win32/win_ssl_cert_store/win_ssl_cert_store.vcxproj +132 -0
  684. package/deps/librdkafka/win32/wingetopt.c +564 -0
  685. package/deps/librdkafka/win32/wingetopt.h +101 -0
  686. package/deps/librdkafka/win32/wintime.h +33 -0
  687. package/deps/librdkafka.gyp +62 -0
  688. package/lib/admin.js +233 -0
  689. package/lib/client.js +573 -0
  690. package/lib/error.js +500 -0
  691. package/lib/index.js +34 -0
  692. package/lib/kafka-consumer-stream.js +397 -0
  693. package/lib/kafka-consumer.js +698 -0
  694. package/lib/producer/high-level-producer.js +323 -0
  695. package/lib/producer-stream.js +307 -0
  696. package/lib/producer.js +375 -0
  697. package/lib/tools/ref-counter.js +52 -0
  698. package/lib/topic-partition.js +88 -0
  699. package/lib/topic.js +42 -0
  700. package/lib/util.js +29 -0
  701. package/package.json +61 -0
  702. package/prebuilds/darwin-arm64/@point3+node-rdkafka.node +0 -0
  703. package/prebuilds/linux-x64/@point3+node-rdkafka.node +0 -0
  704. package/util/configure.js +30 -0
  705. package/util/get-env.js +6 -0
  706. package/util/test-compile.js +11 -0
  707. package/util/test-producer-delivery.js +100 -0
@@ -0,0 +1,710 @@
1
+ /*
2
+ * librdkafka - Apache Kafka C library
3
+ *
4
+ * Copyright (c) 2019-2022, Magnus Edenhill
5
+ * 2023, Confluent Inc.
6
+ * All rights reserved.
7
+ *
8
+ * Redistribution and use in source and binary forms, with or without
9
+ * modification, are permitted provided that the following conditions are met:
10
+ *
11
+ * 1. Redistributions of source code must retain the above copyright notice,
12
+ * this list of conditions and the following disclaimer.
13
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
14
+ * this list of conditions and the following disclaimer in the documentation
15
+ * and/or other materials provided with the distribution.
16
+ *
17
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27
+ * POSSIBILITY OF SUCH DAMAGE.
28
+ */
29
+
30
+ #ifndef _RDKAFKA_MOCK_INT_H_
31
+ #define _RDKAFKA_MOCK_INT_H_
32
+
33
+ #include "rdkafka_request.h"
34
+
35
+ /**
36
+ * @name Mock cluster - internal data types
37
+ *
38
+ */
39
+
40
+
41
+ /**
42
+ * @struct Response error and/or RTT-delay to return to client.
43
+ */
44
+ typedef struct rd_kafka_mock_error_rtt_s {
45
+ rd_kafka_resp_err_t err; /**< Error response (or 0) */
46
+ rd_ts_t rtt; /**< RTT/delay in microseconds (or 0) */
47
+ } rd_kafka_mock_error_rtt_t;
48
+
49
+ /**
50
+ * @struct A stack of errors or rtt latencies to return to the client,
51
+ * one by one until the stack is depleted.
52
+ */
53
+ typedef struct rd_kafka_mock_error_stack_s {
54
+ TAILQ_ENTRY(rd_kafka_mock_error_stack_s) link;
55
+ int16_t ApiKey; /**< Optional ApiKey for which this stack
56
+ * applies to, else -1. */
57
+ size_t cnt; /**< Current number of errors in .errs */
58
+ size_t size; /**< Current allocated size for .errs (in elements) */
59
+ rd_kafka_mock_error_rtt_t *errs; /**< Array of errors/rtts */
60
+ } rd_kafka_mock_error_stack_t;
61
+
62
+ typedef TAILQ_HEAD(rd_kafka_mock_error_stack_head_s,
63
+ rd_kafka_mock_error_stack_s)
64
+ rd_kafka_mock_error_stack_head_t;
65
+
66
+
67
+ /**
68
+ * @struct Consumer group protocol name and metadata.
69
+ */
70
+ typedef struct rd_kafka_mock_cgrp_classic_proto_s {
71
+ rd_kafkap_str_t *name;
72
+ rd_kafkap_bytes_t *metadata;
73
+ } rd_kafka_mock_cgrp_classic_proto_t;
74
+
75
+ /**
76
+ * @struct Consumer group member
77
+ */
78
+ typedef struct rd_kafka_mock_cgrp_classic_member_s {
79
+ TAILQ_ENTRY(rd_kafka_mock_cgrp_classic_member_s) link;
80
+ char *id; /**< MemberId */
81
+ char *group_instance_id; /**< Group instance id */
82
+ rd_ts_t ts_last_activity; /**< Last activity, e.g., Heartbeat */
83
+ rd_kafka_mock_cgrp_classic_proto_t *protos; /**< Protocol names */
84
+ int proto_cnt; /**< Number of protocols */
85
+ rd_kafkap_bytes_t *assignment; /**< Current assignment */
86
+ rd_kafka_buf_t *resp; /**< Current response buffer */
87
+ struct rd_kafka_mock_connection_s *conn; /**< Connection, may be NULL
88
+ * if there is no ongoing
89
+ * request. */
90
+ } rd_kafka_mock_cgrp_classic_member_t;
91
+
92
+ /**
93
+ * @struct Classic consumer group.
94
+ */
95
+ typedef struct rd_kafka_mock_cgrp_classic_s {
96
+ TAILQ_ENTRY(rd_kafka_mock_cgrp_classic_s) link;
97
+ struct rd_kafka_mock_cluster_s *cluster; /**< Cluster */
98
+ struct rd_kafka_mock_connection_s *conn; /**< Connection */
99
+ char *id; /**< Group Id */
100
+ char *protocol_type; /**< Protocol type */
101
+ char *protocol_name; /**< Elected protocol name */
102
+ int32_t generation_id; /**< Generation Id */
103
+ int session_timeout_ms; /**< Session timeout */
104
+ enum {
105
+ RD_KAFKA_MOCK_CGRP_STATE_EMPTY, /* No members */
106
+ RD_KAFKA_MOCK_CGRP_STATE_JOINING, /* Members are joining */
107
+ RD_KAFKA_MOCK_CGRP_STATE_SYNCING, /* Syncing assignments */
108
+ RD_KAFKA_MOCK_CGRP_STATE_REBALANCING, /* Rebalance triggered */
109
+ RD_KAFKA_MOCK_CGRP_STATE_UP, /* Group is operational */
110
+ } state; /**< Consumer group state */
111
+ rd_kafka_timer_t session_tmr; /**< Session timeout timer */
112
+ rd_kafka_timer_t rebalance_tmr; /**< Rebalance state timer */
113
+ TAILQ_HEAD(, rd_kafka_mock_cgrp_classic_member_s)
114
+ members; /**< Group members */
115
+ int member_cnt; /**< Number of group members */
116
+ int last_member_cnt; /**< Mumber of group members at last election */
117
+ int assignment_cnt; /**< Number of member assignments in last Sync */
118
+ rd_kafka_mock_cgrp_classic_member_t *leader; /**< Elected leader */
119
+ } rd_kafka_mock_cgrp_classic_t;
120
+
121
+
122
+ /**
123
+ * @struct "Consumer" Consumer group (KIP-848).
124
+ */
125
+ typedef struct rd_kafka_mock_cgrp_consumer_s {
126
+ TAILQ_ENTRY(rd_kafka_mock_cgrp_consumer_s) link;
127
+ struct rd_kafka_mock_cluster_s *cluster; /**< Cluster */
128
+ char *id; /**< Group Id */
129
+ int32_t group_epoch; /**< Group epoch */
130
+ int session_timeout_ms; /**< Session timeout */
131
+ rd_kafka_timer_t session_tmr; /**< Session timeout timer */
132
+ int heartbeat_interval_ms; /**< Heartbeat interval */
133
+ TAILQ_HEAD(, rd_kafka_mock_cgrp_consumer_member_s)
134
+ members; /**< Group members */
135
+ int member_cnt; /**< Number of group members */
136
+ rd_bool_t manual_assignment; /**< Use manual assignment */
137
+ } rd_kafka_mock_cgrp_consumer_t;
138
+
139
+
140
+ /**
141
+ * @struct "Consumer" Consumer group member (KIP-848).
142
+ */
143
+ typedef struct rd_kafka_mock_cgrp_consumer_member_s {
144
+ TAILQ_ENTRY(rd_kafka_mock_cgrp_consumer_member_s) link;
145
+ char *id; /**< MemberId */
146
+ char *instance_id; /**< Group instance id */
147
+ rd_ts_t ts_last_activity; /**< Last activity, e.g.,
148
+ * ConsumerGroupHeartbeat */
149
+ int32_t current_member_epoch; /**< Current member epoch,
150
+ * updated only on heartbeat. */
151
+ int32_t
152
+ target_member_epoch; /**< Target member epoch,
153
+ * updated only when calling
154
+ * rd_kafka_mock_cgrp_consumer_target_assignment.
155
+ */
156
+ rd_kafka_topic_partition_list_t
157
+ *current_assignment; /**< Current assignment,
158
+ * only updated when reported by the client.
159
+ */
160
+ rd_kafka_topic_partition_list_t *
161
+ target_assignment; /**< Target assignment,
162
+ * only updated when calling
163
+ * rd_kafka_mock_cgrp_consumer_target_assignment.
164
+ */
165
+ rd_kafka_topic_partition_list_t
166
+ *returned_assignment; /**< Returned assignment */
167
+
168
+ rd_list_t *subscribed_topics; /**< Final list of Subscribed topics after
169
+ considering regex as well*/
170
+ rd_list_t *subscribed_topic_names; /**< Subscribed topic names received
171
+ in the heartbeat */
172
+ char *subscribed_topic_regex; /**< Subscribed regex */
173
+
174
+ rd_bool_t left_static_membership; /**< Member left the group
175
+ * with static membership. */
176
+ struct rd_kafka_mock_connection_s *conn; /**< Connection, may be NULL
177
+ * if there is no ongoing
178
+ * request. */
179
+ rd_kafka_mock_cgrp_consumer_t *mcgrp; /**< Consumer group */
180
+ } rd_kafka_mock_cgrp_consumer_member_t;
181
+
182
+
183
+ /**
184
+ * @struct TransactionalId + PID (+ optional sequence state)
185
+ */
186
+ typedef struct rd_kafka_mock_pid_s {
187
+ rd_kafka_pid_t pid;
188
+
189
+ /* BaseSequence tracking (partition) */
190
+ int8_t window; /**< increases up to 5 */
191
+ int8_t lo; /**< Window low bucket: oldest */
192
+ int8_t hi; /**< Window high bucket: most recent */
193
+ int32_t seq[5]; /**< Next expected BaseSequence for each bucket */
194
+
195
+ char TransactionalId[1]; /**< Allocated after this structure */
196
+ } rd_kafka_mock_pid_t;
197
+
198
+ /**
199
+ * @brief rd_kafka_mock_pid_t.pid Pid (not epoch) comparator
200
+ */
201
+ static RD_UNUSED int rd_kafka_mock_pid_cmp_pid(const void *_a, const void *_b) {
202
+ const rd_kafka_mock_pid_t *a = _a, *b = _b;
203
+
204
+ if (a->pid.id < b->pid.id)
205
+ return -1;
206
+ else if (a->pid.id > b->pid.id)
207
+ return 1;
208
+
209
+ return 0;
210
+ }
211
+
212
+ /**
213
+ * @brief rd_kafka_mock_pid_t.pid TransactionalId,Pid,epoch comparator
214
+ */
215
+ static RD_UNUSED int rd_kafka_mock_pid_cmp(const void *_a, const void *_b) {
216
+ const rd_kafka_mock_pid_t *a = _a, *b = _b;
217
+ int r;
218
+
219
+ r = strcmp(a->TransactionalId, b->TransactionalId);
220
+ if (r)
221
+ return r;
222
+
223
+ if (a->pid.id < b->pid.id)
224
+ return -1;
225
+ else if (a->pid.id > b->pid.id)
226
+ return 1;
227
+
228
+ if (a->pid.epoch < b->pid.epoch)
229
+ return -1;
230
+ if (a->pid.epoch > b->pid.epoch)
231
+ return 1;
232
+
233
+ return 0;
234
+ }
235
+
236
+
237
+
238
+ /**
239
+ * @struct A real TCP connection from the client to a mock broker.
240
+ */
241
+ typedef struct rd_kafka_mock_connection_s {
242
+ TAILQ_ENTRY(rd_kafka_mock_connection_s) link;
243
+ rd_kafka_transport_t *transport; /**< Socket transport */
244
+ rd_kafka_buf_t *rxbuf; /**< Receive buffer */
245
+ rd_kafka_bufq_t outbufs; /**< Send buffers */
246
+ short *poll_events; /**< Events to poll, points to
247
+ * the broker's pfd array */
248
+ struct sockaddr_in peer; /**< Peer address */
249
+ struct rd_kafka_mock_broker_s *broker;
250
+ rd_kafka_timer_t write_tmr; /**< Socket write delay timer */
251
+ } rd_kafka_mock_connection_t;
252
+
253
+
254
+ /**
255
+ * @struct Mock broker
256
+ */
257
+ typedef struct rd_kafka_mock_broker_s {
258
+ TAILQ_ENTRY(rd_kafka_mock_broker_s) link;
259
+ int32_t id;
260
+ char advertised_listener[128];
261
+ struct sockaddr_in sin; /**< Bound address:port */
262
+ uint16_t port;
263
+ char *rack;
264
+ rd_bool_t up;
265
+ rd_ts_t rtt; /**< RTT in microseconds */
266
+
267
+ rd_socket_t listen_s; /**< listen() socket */
268
+
269
+ TAILQ_HEAD(, rd_kafka_mock_connection_s) connections;
270
+
271
+ /**< Per-protocol request error stack.
272
+ * @locks mcluster->lock */
273
+ rd_kafka_mock_error_stack_head_t errstacks;
274
+
275
+ struct rd_kafka_mock_cluster_s *cluster;
276
+ } rd_kafka_mock_broker_t;
277
+
278
+
279
+ /**
280
+ * @struct A Kafka-serialized MessageSet
281
+ */
282
+ typedef struct rd_kafka_mock_msgset_s {
283
+ TAILQ_ENTRY(rd_kafka_mock_msgset_s) link;
284
+ int64_t first_offset; /**< First offset in batch */
285
+ int64_t last_offset; /**< Last offset in batch */
286
+ int32_t leader_epoch; /**< Msgset leader epoch */
287
+ rd_kafkap_bytes_t bytes;
288
+ /* Space for bytes.data is allocated after the msgset_t */
289
+ } rd_kafka_mock_msgset_t;
290
+
291
+
292
+ /**
293
+ * @struct Committed offset for a group and partition.
294
+ */
295
+ typedef struct rd_kafka_mock_committed_offset_s {
296
+ /**< mpart.committed_offsets */
297
+ TAILQ_ENTRY(rd_kafka_mock_committed_offset_s) link;
298
+ char *group; /**< Allocated along with the struct */
299
+ int64_t offset; /**< Committed offset */
300
+ rd_kafkap_str_t *metadata; /**< Metadata, allocated separately */
301
+ } rd_kafka_mock_committed_offset_t;
302
+
303
+ /**
304
+ * @struct Leader id and epoch to return in a Metadata call.
305
+ */
306
+ typedef struct rd_kafka_mock_partition_leader_s {
307
+ /**< Link to prev/next entries */
308
+ TAILQ_ENTRY(rd_kafka_mock_partition_leader_s) link;
309
+ int32_t leader_id; /**< Leader id */
310
+ int32_t leader_epoch; /**< Leader epoch */
311
+ } rd_kafka_mock_partition_leader_t;
312
+
313
+
314
+ TAILQ_HEAD(rd_kafka_mock_msgset_tailq_s, rd_kafka_mock_msgset_s);
315
+
316
+ /**
317
+ * @struct Mock partition
318
+ */
319
+ typedef struct rd_kafka_mock_partition_s {
320
+ TAILQ_ENTRY(rd_kafka_mock_partition_s) leader_link;
321
+ int32_t id;
322
+
323
+ int32_t leader_epoch; /**< Leader epoch, bumped on each
324
+ * partition leader change. */
325
+ int64_t start_offset; /**< Actual/leader start offset */
326
+ int64_t end_offset; /**< Actual/leader end offset */
327
+ int64_t follower_start_offset; /**< Follower's start offset */
328
+ int64_t follower_end_offset; /**< Follower's end offset */
329
+ rd_bool_t update_follower_start_offset; /**< Keep follower_start_offset
330
+ * in synch with start_offset
331
+ */
332
+ rd_bool_t update_follower_end_offset; /**< Keep follower_end_offset
333
+ * in synch with end_offset
334
+ */
335
+
336
+ struct rd_kafka_mock_msgset_tailq_s msgsets;
337
+ size_t size; /**< Total size of all .msgsets */
338
+ size_t cnt; /**< Total count of .msgsets */
339
+ size_t max_size; /**< Maximum size of all .msgsets, may be overshot. */
340
+ size_t max_cnt; /**< Maximum number of .msgsets */
341
+
342
+ /**< Committed offsets */
343
+ TAILQ_HEAD(, rd_kafka_mock_committed_offset_s) committed_offsets;
344
+
345
+ rd_kafka_mock_broker_t *leader;
346
+ rd_kafka_mock_broker_t **replicas;
347
+ int replica_cnt;
348
+
349
+ rd_list_t pidstates; /**< PID states */
350
+
351
+ int32_t follower_id; /**< Preferred replica/follower */
352
+
353
+ struct rd_kafka_mock_topic_s *topic;
354
+
355
+ /**< Leader responses */
356
+ TAILQ_HEAD(, rd_kafka_mock_partition_leader_s)
357
+ leader_responses;
358
+ } rd_kafka_mock_partition_t;
359
+
360
+
361
+ /**
362
+ * @struct Mock topic
363
+ */
364
+ typedef struct rd_kafka_mock_topic_s {
365
+ TAILQ_ENTRY(rd_kafka_mock_topic_s) link;
366
+ char *name;
367
+ rd_kafka_Uuid_t id;
368
+
369
+ rd_kafka_mock_partition_t *partitions;
370
+ int partition_cnt;
371
+
372
+ rd_kafka_resp_err_t err; /**< Error to return in protocol requests
373
+ * for this topic. */
374
+
375
+ struct rd_kafka_mock_cluster_s *cluster;
376
+ } rd_kafka_mock_topic_t;
377
+
378
+ /**
379
+ * @struct Explicitly set coordinator.
380
+ */
381
+ typedef struct rd_kafka_mock_coord_s {
382
+ TAILQ_ENTRY(rd_kafka_mock_coord_s) link;
383
+ rd_kafka_coordtype_t type;
384
+ char *key;
385
+ int32_t broker_id;
386
+ } rd_kafka_mock_coord_t;
387
+
388
+
389
+ typedef void(rd_kafka_mock_io_handler_t)(
390
+ struct rd_kafka_mock_cluster_s *mcluster,
391
+ rd_socket_t fd,
392
+ int events,
393
+ void *opaque);
394
+
395
+ struct rd_kafka_mock_api_handler {
396
+ int16_t MinVersion;
397
+ int16_t MaxVersion;
398
+ int16_t FlexVersion; /**< First Flexible version */
399
+ int (*cb)(rd_kafka_mock_connection_t *mconn, rd_kafka_buf_t *rkbuf);
400
+ };
401
+
402
+ extern const struct rd_kafka_mock_api_handler
403
+ rd_kafka_mock_api_handlers[RD_KAFKAP__NUM];
404
+
405
+
406
+
407
+ /**
408
+ * @struct Mock cluster.
409
+ *
410
+ * The cluster IO loop runs in a separate thread where all
411
+ * broker IO is handled.
412
+ *
413
+ * No locking is needed.
414
+ */
415
+ struct rd_kafka_mock_cluster_s {
416
+ char id[32]; /**< Generated cluster id */
417
+
418
+ rd_kafka_t *rk;
419
+
420
+ int32_t controller_id; /**< Current controller */
421
+
422
+ TAILQ_HEAD(, rd_kafka_mock_broker_s) brokers;
423
+ int broker_cnt;
424
+
425
+ TAILQ_HEAD(, rd_kafka_mock_topic_s) topics;
426
+ int topic_cnt;
427
+
428
+ TAILQ_HEAD(, rd_kafka_mock_cgrp_classic_s) cgrps_classic;
429
+
430
+ TAILQ_HEAD(, rd_kafka_mock_cgrp_consumer_s) cgrps_consumer;
431
+
432
+ /** Explicit coordinators (set with mock_set_coordinator()) */
433
+ TAILQ_HEAD(, rd_kafka_mock_coord_s) coords;
434
+
435
+ /** Current transactional producer PIDs.
436
+ * Element type is a malloced rd_kafka_mock_pid_t*. */
437
+ rd_list_t pids;
438
+
439
+ char *bootstraps; /**< bootstrap.servers */
440
+
441
+ thrd_t thread; /**< Mock thread */
442
+
443
+ rd_kafka_q_t *ops; /**< Control ops queue for interacting with the
444
+ * cluster. */
445
+
446
+ rd_socket_t wakeup_fds[2]; /**< Wake-up fds for use with .ops */
447
+
448
+ rd_bool_t run; /**< Cluster will run while this value is true */
449
+
450
+ int fd_cnt; /**< Number of file descriptors */
451
+ int fd_size; /**< Allocated size of .fds
452
+ * and .handlers */
453
+ struct pollfd *fds; /**< Dynamic array */
454
+
455
+ rd_kafka_broker_t *dummy_rkb; /**< Some internal librdkafka APIs
456
+ * that we are reusing requires a
457
+ * broker object, we use the
458
+ * internal broker and store it
459
+ * here for convenient access. */
460
+
461
+ struct {
462
+ int partition_cnt; /**< Auto topic create part cnt */
463
+ int replication_factor; /**< Auto topic create repl factor */
464
+ /** Group initial rebalance delay */
465
+ int32_t group_initial_rebalance_delay_ms;
466
+ /** Session timeout (KIP 848) */
467
+ int group_consumer_session_timeout_ms;
468
+ /** Heartbeat interval (KIP 848) */
469
+ int group_consumer_heartbeat_interval_ms;
470
+ } defaults;
471
+
472
+ /**< Dynamic array of IO handlers for corresponding fd in .fds */
473
+ struct {
474
+ rd_kafka_mock_io_handler_t *cb; /**< Callback */
475
+ void *opaque; /**< Callbacks' opaque */
476
+ } *handlers;
477
+
478
+ /**< Per-protocol request error stack. */
479
+ rd_kafka_mock_error_stack_head_t errstacks;
480
+
481
+ /**< Request handlers */
482
+ struct rd_kafka_mock_api_handler api_handlers[RD_KAFKAP__NUM];
483
+
484
+ /** Requested metrics. */
485
+ char **metrics;
486
+
487
+ /** Requested metric count. */
488
+ size_t metrics_cnt;
489
+
490
+ /** Telemetry push interval ms. Default is 5 min */
491
+ int64_t telemetry_push_interval_ms;
492
+
493
+ /**< Appends the requests received to mock cluster if set to true,
494
+ * defaulted to false for less memory usage. */
495
+ rd_bool_t track_requests;
496
+ /**< List of API requests for this broker. Type:
497
+ * rd_kafka_mock_request_t*
498
+ */
499
+ rd_list_t request_list;
500
+
501
+ /**< Mutex for:
502
+ * .errstacks
503
+ * .apiversions
504
+ * .track_requests
505
+ * .request_list
506
+ */
507
+ mtx_t lock;
508
+
509
+ rd_kafka_timers_t timers; /**< Timers */
510
+ };
511
+
512
+
513
+
514
+ rd_kafka_buf_t *rd_kafka_mock_buf_new_response(const rd_kafka_buf_t *request);
515
+
516
+ #define rd_kafka_mock_connection_send_response(mconn, resp) \
517
+ rd_kafka_mock_connection_send_response0(mconn, resp, rd_false)
518
+
519
+ void rd_kafka_mock_connection_send_response0(rd_kafka_mock_connection_t *mconn,
520
+ rd_kafka_buf_t *resp,
521
+ rd_bool_t tags_written);
522
+ void rd_kafka_mock_connection_set_blocking(rd_kafka_mock_connection_t *mconn,
523
+ rd_bool_t blocking);
524
+
525
+ rd_kafka_mock_partition_t *
526
+ rd_kafka_mock_partition_find(const rd_kafka_mock_topic_t *mtopic,
527
+ int32_t partition);
528
+ rd_kafka_mock_topic_t *
529
+ rd_kafka_mock_topic_auto_create(rd_kafka_mock_cluster_t *mcluster,
530
+ const char *topic,
531
+ int partition_cnt,
532
+ rd_kafka_resp_err_t *errp);
533
+ rd_kafka_mock_topic_t *
534
+ rd_kafka_mock_topic_find(const rd_kafka_mock_cluster_t *mcluster,
535
+ const char *name);
536
+ rd_kafka_mock_topic_t *
537
+ rd_kafka_mock_topic_find_by_kstr(const rd_kafka_mock_cluster_t *mcluster,
538
+ const rd_kafkap_str_t *kname);
539
+
540
+ rd_kafka_mock_topic_t *
541
+ rd_kafka_mock_topic_find_by_id(const rd_kafka_mock_cluster_t *mcluster,
542
+ rd_kafka_Uuid_t id);
543
+
544
+ rd_kafka_mock_broker_t *
545
+ rd_kafka_mock_cluster_get_coord(rd_kafka_mock_cluster_t *mcluster,
546
+ rd_kafka_coordtype_t KeyType,
547
+ const rd_kafkap_str_t *Key);
548
+
549
+ rd_kafka_mock_committed_offset_t *
550
+ rd_kafka_mock_committed_offset_find(const rd_kafka_mock_partition_t *mpart,
551
+ const rd_kafkap_str_t *group);
552
+ rd_kafka_mock_committed_offset_t *
553
+ rd_kafka_mock_commit_offset(rd_kafka_mock_partition_t *mpart,
554
+ const rd_kafkap_str_t *group,
555
+ int64_t offset,
556
+ const rd_kafkap_str_t *metadata);
557
+
558
+ const rd_kafka_mock_msgset_t *
559
+ rd_kafka_mock_msgset_find(const rd_kafka_mock_partition_t *mpart,
560
+ int64_t offset,
561
+ rd_bool_t on_follower);
562
+
563
+ rd_kafka_resp_err_t
564
+ rd_kafka_mock_next_request_error(rd_kafka_mock_connection_t *mconn,
565
+ rd_kafka_buf_t *resp);
566
+
567
+ rd_kafka_resp_err_t
568
+ rd_kafka_mock_partition_log_append(rd_kafka_mock_partition_t *mpart,
569
+ const rd_kafkap_bytes_t *records,
570
+ const rd_kafkap_str_t *TransactionalId,
571
+ int64_t *BaseOffset);
572
+
573
+ rd_kafka_resp_err_t rd_kafka_mock_partition_leader_epoch_check(
574
+ const rd_kafka_mock_partition_t *mpart,
575
+ int32_t leader_epoch);
576
+
577
+ int64_t rd_kafka_mock_partition_offset_for_leader_epoch(
578
+ const rd_kafka_mock_partition_t *mpart,
579
+ int32_t leader_epoch);
580
+
581
+ rd_kafka_mock_partition_leader_t *
582
+ rd_kafka_mock_partition_next_leader_response(rd_kafka_mock_partition_t *mpart);
583
+
584
+ void rd_kafka_mock_partition_leader_destroy(
585
+ rd_kafka_mock_partition_t *mpart,
586
+ rd_kafka_mock_partition_leader_t *mpart_leader);
587
+
588
+
589
+ /**
590
+ * @returns true if the ApiVersion is supported, else false.
591
+ */
592
+ static RD_UNUSED rd_bool_t
593
+ rd_kafka_mock_cluster_ApiVersion_check(const rd_kafka_mock_cluster_t *mcluster,
594
+ int16_t ApiKey,
595
+ int16_t ApiVersion) {
596
+ return (ApiVersion >= mcluster->api_handlers[ApiKey].MinVersion &&
597
+ ApiVersion <= mcluster->api_handlers[ApiKey].MaxVersion);
598
+ }
599
+
600
+
601
+ rd_kafka_resp_err_t
602
+ rd_kafka_mock_pid_find(rd_kafka_mock_cluster_t *mcluster,
603
+ const rd_kafkap_str_t *TransactionalId,
604
+ const rd_kafka_pid_t pid,
605
+ rd_kafka_mock_pid_t **mpidp);
606
+
607
+
608
+ /**
609
+ * @name Mock consumer group (rdkafka_mock_cgrp.c)
610
+ * @{
611
+ */
612
+ void rd_kafka_mock_cgrp_classic_member_active(
613
+ rd_kafka_mock_cgrp_classic_t *mcgrp,
614
+ rd_kafka_mock_cgrp_classic_member_t *member);
615
+ void rd_kafka_mock_cgrp_classic_member_assignment_set(
616
+ rd_kafka_mock_cgrp_classic_t *mcgrp,
617
+ rd_kafka_mock_cgrp_classic_member_t *member,
618
+ const rd_kafkap_bytes_t *Metadata);
619
+ rd_kafka_resp_err_t rd_kafka_mock_cgrp_classic_member_sync_set(
620
+ rd_kafka_mock_cgrp_classic_t *mcgrp,
621
+ rd_kafka_mock_cgrp_classic_member_t *member,
622
+ rd_kafka_mock_connection_t *mconn,
623
+ rd_kafka_buf_t *resp);
624
+ rd_kafka_resp_err_t rd_kafka_mock_cgrp_classic_member_leave(
625
+ rd_kafka_mock_cgrp_classic_t *mcgrp,
626
+ rd_kafka_mock_cgrp_classic_member_t *member);
627
+ void rd_kafka_mock_cgrp_classic_protos_destroy(
628
+ rd_kafka_mock_cgrp_classic_proto_t *protos,
629
+ int proto_cnt);
630
+ rd_kafka_resp_err_t rd_kafka_mock_cgrp_classic_member_add(
631
+ rd_kafka_mock_cgrp_classic_t *mcgrp,
632
+ rd_kafka_mock_connection_t *mconn,
633
+ rd_kafka_buf_t *resp,
634
+ const rd_kafkap_str_t *MemberId,
635
+ const rd_kafkap_str_t *GroupInstanceId,
636
+ const rd_kafkap_str_t *ProtocolType,
637
+ rd_kafka_mock_cgrp_classic_proto_t *protos,
638
+ int proto_cnt,
639
+ int session_timeout_ms);
640
+ rd_kafka_resp_err_t rd_kafka_mock_cgrp_classic_check_state(
641
+ rd_kafka_mock_cgrp_classic_t *mcgrp,
642
+ rd_kafka_mock_cgrp_classic_member_t *member,
643
+ const rd_kafka_buf_t *request,
644
+ int32_t generation_id);
645
+ rd_kafka_mock_cgrp_classic_member_t *rd_kafka_mock_cgrp_classic_member_find(
646
+ const rd_kafka_mock_cgrp_classic_t *mcgrp,
647
+ const rd_kafkap_str_t *MemberId);
648
+ void rd_kafka_mock_cgrp_classic_destroy(rd_kafka_mock_cgrp_classic_t *mcgrp);
649
+ rd_kafka_mock_cgrp_classic_t *
650
+ rd_kafka_mock_cgrp_classic_find(rd_kafka_mock_cluster_t *mcluster,
651
+ const rd_kafkap_str_t *GroupId);
652
+ rd_kafka_mock_cgrp_classic_t *
653
+ rd_kafka_mock_cgrp_classic_get(rd_kafka_mock_cluster_t *mcluster,
654
+ const rd_kafkap_str_t *GroupId,
655
+ const rd_kafkap_str_t *ProtocolType);
656
+
657
+ /* "consumer" consumer group (KIP-848) */
658
+
659
+ rd_kafka_topic_partition_list_t *
660
+ rd_kafka_mock_cgrp_consumer_member_next_assignment(
661
+ rd_kafka_mock_cgrp_consumer_member_t *member,
662
+ rd_kafka_topic_partition_list_t *current_assignment,
663
+ int *member_epoch);
664
+
665
+ void rd_kafka_mock_cgrp_consumer_member_active(
666
+ rd_kafka_mock_cgrp_consumer_t *mcgrp,
667
+ rd_kafka_mock_cgrp_consumer_member_t *member);
668
+
669
+ void rd_kafka_mock_cgrp_consumer_destroy(rd_kafka_mock_cgrp_consumer_t *mcgrp);
670
+
671
+ rd_kafka_mock_cgrp_consumer_t *
672
+ rd_kafka_mock_cgrp_consumer_find(const rd_kafka_mock_cluster_t *mcluster,
673
+ const rd_kafkap_str_t *GroupId);
674
+
675
+ rd_kafka_mock_cgrp_consumer_t *
676
+ rd_kafka_mock_cgrp_consumer_get(rd_kafka_mock_cluster_t *mcluster,
677
+ const rd_kafkap_str_t *GroupId);
678
+
679
+ void rd_kafka_mock_cgrp_consumer_member_leave(
680
+ rd_kafka_mock_cgrp_consumer_t *mcgrp,
681
+ rd_kafka_mock_cgrp_consumer_member_t *member,
682
+ rd_bool_t static_leave);
683
+
684
+ void rd_kafka_mock_cgrp_consumer_member_fenced(
685
+ rd_kafka_mock_cgrp_consumer_t *mcgrp,
686
+ rd_kafka_mock_cgrp_consumer_member_t *member);
687
+
688
+ rd_kafka_mock_cgrp_consumer_member_t *rd_kafka_mock_cgrp_consumer_member_find(
689
+ const rd_kafka_mock_cgrp_consumer_t *mcgrp,
690
+ const rd_kafkap_str_t *MemberId);
691
+
692
+ rd_kafka_mock_cgrp_consumer_member_t *rd_kafka_mock_cgrp_consumer_member_add(
693
+ rd_kafka_mock_cgrp_consumer_t *mcgrp,
694
+ struct rd_kafka_mock_connection_s *conn,
695
+ const rd_kafkap_str_t *MemberId,
696
+ const rd_kafkap_str_t *InstanceId,
697
+ rd_kafkap_str_t *SubscribedTopicNames,
698
+ int32_t SubscribedTopicNamesCnt,
699
+ const rd_kafkap_str_t *SubscribedTopicRegex);
700
+
701
+ void rd_kafka_mock_cgrps_connection_closed(rd_kafka_mock_cluster_t *mcluster,
702
+ rd_kafka_mock_connection_t *mconn);
703
+ /**
704
+ *@}
705
+ */
706
+
707
+
708
+ #include "rdkafka_mock.h"
709
+
710
+ #endif /* _RDKAFKA_MOCK_INT_H_ */