@platformatic/rdkafka 4.0.0 → 4.1.0-alpha.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 (293) hide show
  1. package/README.md +5 -5
  2. package/bench/seed.sh +0 -0
  3. package/binding.gyp +3 -3
  4. package/ci/prepublish.js +4 -3
  5. package/ci/update-version.js +123 -0
  6. package/config.d.ts +126 -10
  7. package/configure +0 -0
  8. package/deps/librdkafka/.semaphore/run-all-tests.yml +77 -0
  9. package/deps/librdkafka/.semaphore/semaphore-integration.yml +250 -0
  10. package/deps/librdkafka/.semaphore/semaphore.yml +67 -44
  11. package/deps/librdkafka/.semaphore/verify-linux-packages.yml +41 -0
  12. package/deps/librdkafka/CHANGELOG.md +471 -1
  13. package/deps/librdkafka/CONFIGURATION.md +29 -9
  14. package/deps/librdkafka/INTRODUCTION.md +909 -601
  15. package/deps/librdkafka/Makefile +2 -1
  16. package/deps/librdkafka/configure +0 -0
  17. package/deps/librdkafka/debian/rules +0 -0
  18. package/deps/librdkafka/dev-conf.sh +0 -0
  19. package/deps/librdkafka/examples/consumer.c +18 -8
  20. package/deps/librdkafka/examples/describe_consumer_groups.c +25 -6
  21. package/deps/librdkafka/examples/incremental_alter_configs.c +4 -5
  22. package/deps/librdkafka/examples/kafkatest_verifiable_client.cpp +26 -42
  23. package/deps/librdkafka/examples/openssl_engine_example.cpp +3 -4
  24. package/deps/librdkafka/examples/producer.cpp +2 -2
  25. package/deps/librdkafka/examples/user_scram.c +4 -5
  26. package/deps/librdkafka/examples/win_ssl_cert_store.cpp +4 -3
  27. package/deps/librdkafka/lds-gen.py +0 -0
  28. package/deps/librdkafka/mklove/Makefile.base +0 -0
  29. package/deps/librdkafka/packaging/RELEASE.md +8 -0
  30. package/deps/librdkafka/packaging/alpine/build-alpine.sh +0 -0
  31. package/deps/librdkafka/packaging/cp/README.md +4 -1
  32. package/deps/librdkafka/packaging/cp/check_features.c +12 -4
  33. package/deps/librdkafka/packaging/cp/verify-deb.sh +6 -6
  34. package/deps/librdkafka/packaging/cp/verify-packages.sh +52 -31
  35. package/deps/librdkafka/packaging/cp/verify-rpm.sh +6 -13
  36. package/deps/librdkafka/packaging/debian/docs +5 -0
  37. package/deps/librdkafka/packaging/debian/rules +0 -0
  38. package/deps/librdkafka/packaging/get_version.py +0 -0
  39. package/deps/librdkafka/packaging/homebrew/brew-update-pr.sh +0 -0
  40. package/deps/librdkafka/packaging/mingw-w64/{travis-before-install.sh → export-variables.sh} +0 -7
  41. package/deps/librdkafka/packaging/mingw-w64/semaphoreci-build.sh +1 -1
  42. package/deps/librdkafka/packaging/nuget/artifact.py +0 -0
  43. package/deps/librdkafka/packaging/nuget/cleanup-s3.py +0 -0
  44. package/deps/librdkafka/packaging/nuget/nuget.sh +0 -0
  45. package/deps/librdkafka/packaging/nuget/packaging.py +0 -0
  46. package/deps/librdkafka/packaging/nuget/push-to-nuget.sh +0 -0
  47. package/deps/librdkafka/packaging/nuget/release.py +0 -0
  48. package/deps/librdkafka/packaging/nuget/requirements.txt +3 -3
  49. package/deps/librdkafka/packaging/rpm/mock-on-docker.sh +0 -0
  50. package/deps/librdkafka/packaging/rpm/tests/run-test.sh +0 -0
  51. package/deps/librdkafka/packaging/rpm/tests/test-on-docker.sh +0 -0
  52. package/deps/librdkafka/packaging/tools/build-configurations-checks.sh +3 -1
  53. package/deps/librdkafka/packaging/tools/build-deb-package.sh +0 -0
  54. package/deps/librdkafka/packaging/tools/build-debian.sh +0 -0
  55. package/deps/librdkafka/packaging/tools/build-manylinux.sh +0 -0
  56. package/deps/librdkafka/packaging/tools/build-release-artifacts.sh +0 -0
  57. package/deps/librdkafka/packaging/tools/distro-build.sh +0 -0
  58. package/deps/librdkafka/packaging/tools/gh-release-checksums.py +0 -0
  59. package/deps/librdkafka/packaging/tools/rdutcoverage.sh +0 -0
  60. package/deps/librdkafka/packaging/tools/run-in-docker.sh +28 -0
  61. package/deps/librdkafka/packaging/tools/run-integration-tests.sh +31 -0
  62. package/deps/librdkafka/packaging/tools/run-style-check.sh +4 -0
  63. package/deps/librdkafka/packaging/tools/style-format.sh +6 -5
  64. package/deps/librdkafka/packaging/tools/update_rpcs_max_versions.py +100 -0
  65. package/deps/librdkafka/service.yml +154 -0
  66. package/deps/librdkafka/src/generate_proto.sh +0 -0
  67. package/deps/librdkafka/src/rd.h +145 -2
  68. package/deps/librdkafka/src/rdaddr.h +6 -7
  69. package/deps/librdkafka/src/rdatomic.h +15 -11
  70. package/deps/librdkafka/src/rdavg.h +3 -2
  71. package/deps/librdkafka/src/rdbase64.c +33 -2
  72. package/deps/librdkafka/src/rdbase64.h +2 -0
  73. package/deps/librdkafka/src/rdendian.h +10 -9
  74. package/deps/librdkafka/src/rdhttp.c +418 -100
  75. package/deps/librdkafka/src/rdhttp.h +23 -5
  76. package/deps/librdkafka/src/rdkafka.c +299 -145
  77. package/deps/librdkafka/src/rdkafka.h +89 -6
  78. package/deps/librdkafka/src/rdkafka_admin.c +482 -105
  79. package/deps/librdkafka/src/rdkafka_admin.h +42 -0
  80. package/deps/librdkafka/src/rdkafka_broker.c +463 -312
  81. package/deps/librdkafka/src/rdkafka_broker.h +68 -10
  82. package/deps/librdkafka/src/rdkafka_buf.c +8 -5
  83. package/deps/librdkafka/src/rdkafka_buf.h +4 -3
  84. package/deps/librdkafka/src/rdkafka_cert.c +25 -1
  85. package/deps/librdkafka/src/rdkafka_cert.h +4 -3
  86. package/deps/librdkafka/src/rdkafka_cgrp.c +468 -143
  87. package/deps/librdkafka/src/rdkafka_cgrp.h +36 -2
  88. package/deps/librdkafka/src/rdkafka_conf.c +526 -102
  89. package/deps/librdkafka/src/rdkafka_conf.h +68 -4
  90. package/deps/librdkafka/src/rdkafka_feature.c +472 -35
  91. package/deps/librdkafka/src/rdkafka_feature.h +2 -0
  92. package/deps/librdkafka/src/rdkafka_fetcher.c +22 -2
  93. package/deps/librdkafka/src/rdkafka_fetcher.h +2 -2
  94. package/deps/librdkafka/src/rdkafka_int.h +84 -46
  95. package/deps/librdkafka/src/rdkafka_metadata.c +221 -136
  96. package/deps/librdkafka/src/rdkafka_metadata.h +15 -11
  97. package/deps/librdkafka/src/rdkafka_metadata_cache.c +279 -73
  98. package/deps/librdkafka/src/rdkafka_mock.c +795 -19
  99. package/deps/librdkafka/src/rdkafka_mock.h +119 -0
  100. package/deps/librdkafka/src/rdkafka_mock_cgrp.c +1298 -132
  101. package/deps/librdkafka/src/rdkafka_mock_handlers.c +345 -49
  102. package/deps/librdkafka/src/rdkafka_mock_int.h +180 -61
  103. package/deps/librdkafka/src/rdkafka_msg.c +35 -19
  104. package/deps/librdkafka/src/rdkafka_msg.h +3 -3
  105. package/deps/librdkafka/src/rdkafka_msgset_writer.c +14 -10
  106. package/deps/librdkafka/src/rdkafka_offset.c +33 -5
  107. package/deps/librdkafka/src/rdkafka_op.c +1 -1
  108. package/deps/librdkafka/src/rdkafka_op.h +45 -21
  109. package/deps/librdkafka/src/rdkafka_partition.c +118 -23
  110. package/deps/librdkafka/src/rdkafka_partition.h +16 -7
  111. package/deps/librdkafka/src/rdkafka_proto.h +4 -1
  112. package/deps/librdkafka/src/rdkafka_protocol.h +1 -0
  113. package/deps/librdkafka/src/rdkafka_queue.c +125 -48
  114. package/deps/librdkafka/src/rdkafka_queue.h +19 -0
  115. package/deps/librdkafka/src/rdkafka_range_assignor.c +1 -1
  116. package/deps/librdkafka/src/rdkafka_request.c +336 -64
  117. package/deps/librdkafka/src/rdkafka_request.h +24 -1
  118. package/deps/librdkafka/src/rdkafka_sasl.c +5 -3
  119. package/deps/librdkafka/src/rdkafka_sasl_oauthbearer.c +14 -10
  120. package/deps/librdkafka/src/rdkafka_sasl_oauthbearer_oidc.c +1166 -89
  121. package/deps/librdkafka/src/rdkafka_sasl_oauthbearer_oidc.h +13 -3
  122. package/deps/librdkafka/src/rdkafka_sasl_plain.c +3 -3
  123. package/deps/librdkafka/src/rdkafka_sasl_scram.c +4 -3
  124. package/deps/librdkafka/src/rdkafka_ssl.c +306 -81
  125. package/deps/librdkafka/src/rdkafka_ssl.h +22 -0
  126. package/deps/librdkafka/src/rdkafka_sticky_assignor.c +4 -0
  127. package/deps/librdkafka/src/rdkafka_telemetry.c +80 -23
  128. package/deps/librdkafka/src/rdkafka_telemetry_encode.c +5 -1
  129. package/deps/librdkafka/src/rdkafka_telemetry_encode.h +20 -20
  130. package/deps/librdkafka/src/rdkafka_topic.c +220 -137
  131. package/deps/librdkafka/src/rdkafka_topic.h +14 -8
  132. package/deps/librdkafka/src/rdkafka_transport.c +59 -47
  133. package/deps/librdkafka/src/rdkafka_transport.h +5 -0
  134. package/deps/librdkafka/src/rdkafka_txnmgr.c +6 -1
  135. package/deps/librdkafka/src/rdmap.c +6 -1
  136. package/deps/librdkafka/src/rdrand.c +11 -1
  137. package/deps/librdkafka/src/rdtime.h +48 -17
  138. package/deps/librdkafka/src/rdunittest.c +42 -25
  139. package/deps/librdkafka/src/rdunittest.h +2 -0
  140. package/deps/librdkafka/src/rdwin32.h +1 -1
  141. package/deps/librdkafka/src/regexp.c +47 -42
  142. package/deps/librdkafka/src/tinycthread_extra.c +45 -21
  143. package/deps/librdkafka/src/tinycthread_extra.h +7 -3
  144. package/deps/librdkafka/src-cpp/rdkafkacpp.h +28 -2
  145. package/deps/librdkafka/tests/0001-multiobj.c +4 -0
  146. package/deps/librdkafka/tests/0004-conf.c +103 -36
  147. package/deps/librdkafka/tests/0009-mock_cluster.c +1 -0
  148. package/deps/librdkafka/tests/0011-produce_batch.c +2 -1
  149. package/deps/librdkafka/tests/0016-client_swname.c +18 -3
  150. package/deps/librdkafka/tests/0017-compression.c +6 -8
  151. package/deps/librdkafka/tests/0018-cgrp_term.c +8 -3
  152. package/deps/librdkafka/tests/0021-rkt_destroy.c +1 -0
  153. package/deps/librdkafka/tests/0022-consume_batch.c +4 -1
  154. package/deps/librdkafka/tests/0026-consume_pause.c +12 -14
  155. package/deps/librdkafka/tests/0028-long_topicnames.c +1 -1
  156. package/deps/librdkafka/tests/0029-assign_offset.c +6 -8
  157. package/deps/librdkafka/tests/0030-offset_commit.c +2 -2
  158. package/deps/librdkafka/tests/0033-regex_subscribe.c +33 -17
  159. package/deps/librdkafka/tests/0034-offset_reset.c +25 -4
  160. package/deps/librdkafka/tests/0036-partial_fetch.c +1 -0
  161. package/deps/librdkafka/tests/0038-performance.c +1 -0
  162. package/deps/librdkafka/tests/0040-io_event.c +11 -5
  163. package/deps/librdkafka/tests/0041-fetch_max_bytes.c +1 -0
  164. package/deps/librdkafka/tests/0044-partition_cnt.c +3 -2
  165. package/deps/librdkafka/tests/0045-subscribe_update.c +284 -20
  166. package/deps/librdkafka/tests/0047-partial_buf_tmout.c +1 -0
  167. package/deps/librdkafka/tests/0048-partitioner.c +1 -1
  168. package/deps/librdkafka/tests/0050-subscribe_adds.c +1 -0
  169. package/deps/librdkafka/tests/0051-assign_adds.c +1 -0
  170. package/deps/librdkafka/tests/0052-msg_timestamps.c +22 -4
  171. package/deps/librdkafka/tests/0053-stats_cb.cpp +12 -20
  172. package/deps/librdkafka/tests/0055-producer_latency.c +176 -3
  173. package/deps/librdkafka/tests/0056-balanced_group_mt.c +6 -2
  174. package/deps/librdkafka/tests/0058-log.cpp +3 -3
  175. package/deps/librdkafka/tests/0059-bsearch.cpp +8 -4
  176. package/deps/librdkafka/tests/0061-consumer_lag.cpp +25 -5
  177. package/deps/librdkafka/tests/0067-empty_topic.cpp +3 -0
  178. package/deps/librdkafka/tests/0068-produce_timeout.c +21 -23
  179. package/deps/librdkafka/tests/0069-consumer_add_parts.c +3 -7
  180. package/deps/librdkafka/tests/0075-retry.c +38 -1
  181. package/deps/librdkafka/tests/0076-produce_retry.c +2 -0
  182. package/deps/librdkafka/tests/0077-compaction.c +8 -2
  183. package/deps/librdkafka/tests/0080-admin_ut.c +34 -4
  184. package/deps/librdkafka/tests/0081-admin.c +455 -155
  185. package/deps/librdkafka/tests/0082-fetch_max_bytes.cpp +4 -0
  186. package/deps/librdkafka/tests/0083-cb_event.c +8 -3
  187. package/deps/librdkafka/tests/0084-destroy_flags.c +14 -18
  188. package/deps/librdkafka/tests/0085-headers.cpp +4 -0
  189. package/deps/librdkafka/tests/0086-purge.c +40 -7
  190. package/deps/librdkafka/tests/0088-produce_metadata_timeout.c +1 -1
  191. package/deps/librdkafka/tests/0089-max_poll_interval.c +12 -7
  192. package/deps/librdkafka/tests/0090-idempotence.c +1 -2
  193. package/deps/librdkafka/tests/0091-max_poll_interval_timeout.c +5 -7
  194. package/deps/librdkafka/tests/0092-mixed_msgver.c +6 -0
  195. package/deps/librdkafka/tests/0093-holb.c +8 -5
  196. package/deps/librdkafka/tests/0094-idempotence_msg_timeout.c +1 -0
  197. package/deps/librdkafka/tests/0097-ssl_verify.cpp +262 -70
  198. package/deps/librdkafka/tests/0098-consumer-txn.cpp +16 -16
  199. package/deps/librdkafka/tests/0099-commit_metadata.c +1 -1
  200. package/deps/librdkafka/tests/0101-fetch-from-follower.cpp +1 -1
  201. package/deps/librdkafka/tests/0102-static_group_rebalance.c +317 -16
  202. package/deps/librdkafka/tests/0103-transactions.c +7 -7
  203. package/deps/librdkafka/tests/0104-fetch_from_follower_mock.c +1 -0
  204. package/deps/librdkafka/tests/0105-transactions_mock.c +18 -11
  205. package/deps/librdkafka/tests/0106-cgrp_sess_timeout.c +35 -14
  206. package/deps/librdkafka/tests/0107-topic_recreate.c +2 -2
  207. package/deps/librdkafka/tests/0109-auto_create_topics.cpp +86 -26
  208. package/deps/librdkafka/tests/0110-batch_size.cpp +1 -2
  209. package/deps/librdkafka/tests/0112-assign_unknown_part.c +3 -14
  210. package/deps/librdkafka/tests/0113-cooperative_rebalance.cpp +248 -104
  211. package/deps/librdkafka/tests/0114-sticky_partitioning.cpp +3 -3
  212. package/deps/librdkafka/tests/0115-producer_auth.cpp +4 -1
  213. package/deps/librdkafka/tests/0116-kafkaconsumer_close.cpp +7 -5
  214. package/deps/librdkafka/tests/0117-mock_errors.c +15 -5
  215. package/deps/librdkafka/tests/0118-commit_rebalance.c +41 -8
  216. package/deps/librdkafka/tests/0119-consumer_auth.cpp +20 -1
  217. package/deps/librdkafka/tests/0120-asymmetric_subscription.c +8 -3
  218. package/deps/librdkafka/tests/0125-immediate_flush.c +1 -1
  219. package/deps/librdkafka/tests/0126-oauthbearer_oidc.c +323 -8
  220. package/deps/librdkafka/tests/0129-fetch_aborted_msgs.c +1 -0
  221. package/deps/librdkafka/tests/0132-strategy_ordering.c +12 -4
  222. package/deps/librdkafka/tests/0133-ssl_keys.c +28 -6
  223. package/deps/librdkafka/tests/0137-barrier_batch_consume.c +24 -14
  224. package/deps/librdkafka/tests/0139-offset_validation_mock.c +510 -2
  225. package/deps/librdkafka/tests/0140-commit_metadata.cpp +1 -1
  226. package/deps/librdkafka/tests/0142-reauthentication.c +37 -17
  227. package/deps/librdkafka/tests/0143-exponential_backoff_mock.c +39 -40
  228. package/deps/librdkafka/tests/0146-metadata_mock.c +76 -15
  229. package/deps/librdkafka/tests/0147-consumer_group_consumer_mock.c +952 -0
  230. package/deps/librdkafka/tests/0148-offset_fetch_commit_error_mock.c +563 -0
  231. package/deps/librdkafka/tests/0149-broker-same-host-port.c +140 -0
  232. package/deps/librdkafka/tests/0150-telemetry_mock.c +9 -6
  233. package/deps/librdkafka/tests/0151-purge-brokers.c +566 -0
  234. package/deps/librdkafka/tests/0152-rebootstrap.c +59 -0
  235. package/deps/librdkafka/tests/0153-memberid.c +128 -0
  236. package/deps/librdkafka/tests/CMakeLists.txt +6 -0
  237. package/deps/librdkafka/tests/LibrdkafkaTestApp.py +34 -9
  238. package/deps/librdkafka/tests/autotest.sh +0 -0
  239. package/deps/librdkafka/tests/broker_version_tests.py +0 -0
  240. package/deps/librdkafka/tests/buildbox.sh +0 -0
  241. package/deps/librdkafka/tests/cleanup-checker-tests.sh +0 -0
  242. package/deps/librdkafka/tests/cluster_testing.py +0 -0
  243. package/deps/librdkafka/tests/delete-test-topics.sh +0 -0
  244. package/deps/librdkafka/tests/fixtures/oauthbearer/jwt_assertion_template.json +10 -0
  245. package/deps/librdkafka/tests/fixtures/ssl/client.keystore.intermediate.p12 +0 -0
  246. package/deps/librdkafka/tests/fixtures/ssl/client.keystore.p12 +0 -0
  247. package/deps/librdkafka/tests/fixtures/ssl/client2.certificate.intermediate.pem +72 -0
  248. package/deps/librdkafka/tests/fixtures/ssl/client2.certificate.pem +42 -101
  249. package/deps/librdkafka/tests/fixtures/ssl/client2.intermediate.key +46 -0
  250. package/deps/librdkafka/tests/fixtures/ssl/client2.key +41 -29
  251. package/deps/librdkafka/tests/fixtures/ssl/create_keys.sh +112 -37
  252. package/deps/librdkafka/tests/gen-ssl-certs.sh +0 -0
  253. package/deps/librdkafka/tests/interactive_broker_version.py +0 -0
  254. package/deps/librdkafka/tests/java/Makefile +2 -1
  255. package/deps/librdkafka/tests/java/run-class.sh +0 -0
  256. package/deps/librdkafka/tests/lz4_manual_test.sh +0 -0
  257. package/deps/librdkafka/tests/multi-broker-version-test.sh +0 -0
  258. package/deps/librdkafka/tests/parse-refcnt.sh +0 -0
  259. package/deps/librdkafka/tests/performance_plot.py +0 -0
  260. package/deps/librdkafka/tests/requirements.txt +1 -1
  261. package/deps/librdkafka/tests/run-all-tests.sh +79 -0
  262. package/deps/librdkafka/tests/run-consumer-tests.sh +0 -0
  263. package/deps/librdkafka/tests/run-producer-tests.sh +0 -0
  264. package/deps/librdkafka/tests/run-test-batches.py +157 -0
  265. package/deps/librdkafka/tests/run-test.sh +0 -0
  266. package/deps/librdkafka/tests/sasl_test.py +0 -0
  267. package/deps/librdkafka/tests/test.c +478 -18
  268. package/deps/librdkafka/tests/test.h +62 -13
  269. package/deps/librdkafka/tests/testcpp.cpp +6 -1
  270. package/deps/librdkafka/tests/testcpp.h +30 -2
  271. package/deps/librdkafka/tests/testshared.h +16 -2
  272. package/deps/librdkafka/tests/tools/stats/graph.py +0 -0
  273. package/deps/librdkafka/tests/tools/stats/to_csv.py +1 -1
  274. package/deps/librdkafka/tests/trivup/trivup-0.14.0.tar.gz +0 -0
  275. package/deps/librdkafka/tests/until-fail.sh +0 -0
  276. package/deps/librdkafka/tests/xxxx-metadata.cpp +1 -1
  277. package/deps/librdkafka/vcpkg.json +1 -1
  278. package/deps/librdkafka/win32/setup-msys2.ps1 +24 -8
  279. package/deps/librdkafka/win32/setup-vcpkg.ps1 +28 -6
  280. package/deps/librdkafka/win32/tests/tests.vcxproj +6 -0
  281. package/deps/librdkafka/win32/wingetopt.h +5 -4
  282. package/errors.d.ts +27 -1
  283. package/lib/error.js +29 -3
  284. package/make_docs.sh +0 -0
  285. package/package.json +12 -13
  286. package/run_docker.sh +0 -0
  287. package/src/callbacks.cc +6 -9
  288. package/src/callbacks.h +1 -5
  289. package/test/kafka-consumer-worker.js +10 -7
  290. package/test/kafka-consumer.spec.js +32 -21
  291. package/deps/librdkafka/.semaphore/project.yml +0 -43
  292. package/deps/librdkafka/.semaphore/project_public.yml +0 -20
  293. package/deps/librdkafka/win32/install-openssl.ps1 +0 -33
package/README.md CHANGED
@@ -11,7 +11,7 @@ This project was forked from the great [https://github.com/blizzard/node-rdkafka
11
11
 
12
12
  The `@platformatic/rdkafka` library is a high-performance NodeJS client for [Apache Kafka](http://kafka.apache.org/) that wraps the native [librdkafka](https://github.com/edenhill/librdkafka) library. All the complexity of balancing writes across partitions and managing (possibly ever-changing) brokers should be encapsulated in the library.
13
13
 
14
- __This library currently uses `librdkafka` version `2.6.1`.__
14
+ __This library currently uses `librdkafka` version `2.12.0`.__
15
15
 
16
16
  ## Reference Docs
17
17
 
@@ -54,7 +54,7 @@ Using Alpine Linux? Check out the [docs](https://github.com/platformatic/rdkafka
54
54
 
55
55
  ### Windows
56
56
 
57
- Windows build **is not** compiled from `librdkafka` source but it is rather linked against the appropriate version of [NuGet librdkafka.redist](https://www.nuget.org/packages/librdkafka.redist/) static binary that gets downloaded from `https://globalcdn.nuget.org/packages/librdkafka.redist.2.6.1.nupkg` during installation. This download link can be changed using the environment variable `NODE_RDKAFKA_NUGET_BASE_URL` that defaults to `https://globalcdn.nuget.org/packages/` when it's no set.
57
+ Windows build **is not** compiled from `librdkafka` source but it is rather linked against the appropriate version of [NuGet librdkafka.redist](https://www.nuget.org/packages/librdkafka.redist/) static binary that gets downloaded from `https://globalcdn.nuget.org/packages/librdkafka.redist.2.12.0.nupkg` during installation. This download link can be changed using the environment variable `NODE_RDKAFKA_NUGET_BASE_URL` that defaults to `https://globalcdn.nuget.org/packages/` when it's no set.
58
58
 
59
59
  Requirements:
60
60
  * [node-gyp for Windows](https://github.com/nodejs/node-gyp#on-windows)
@@ -91,7 +91,7 @@ const Kafka = require('@platformatic/rdkafka');
91
91
 
92
92
  ## Configuration
93
93
 
94
- You can pass many configuration options to `librdkafka`. A full list can be found in `librdkafka`'s [Configuration.md](https://github.com/edenhill/librdkafka/blob/v2.6.1/CONFIGURATION.md)
94
+ You can pass many configuration options to `librdkafka`. A full list can be found in `librdkafka`'s [Configuration.md](https://github.com/edenhill/librdkafka/blob/v2.12.0/CONFIGURATION.md)
95
95
 
96
96
  Configuration keys that have the suffix `_cb` are designated as callbacks. Some
97
97
  of these keys are informational and you can choose to opt-in (for example, `dr_cb`). Others are callbacks designed to
@@ -126,7 +126,7 @@ You can also get the version of `librdkafka`
126
126
  const Kafka = require('@platformatic/rdkafka');
127
127
  console.log(Kafka.librdkafkaVersion);
128
128
 
129
- // #=> 2.6.1
129
+ // #=> 2.12.0
130
130
  ```
131
131
 
132
132
  ## Sending Messages
@@ -139,7 +139,7 @@ const producer = new Kafka.Producer({
139
139
  });
140
140
  ```
141
141
 
142
- A `Producer` requires only `metadata.broker.list` (the Kafka brokers) to be created. The values in this list are separated by commas. For other configuration options, see the [Configuration.md](https://github.com/edenhill/librdkafka/blob/v2.6.1/CONFIGURATION.md) file described previously.
142
+ A `Producer` requires only `metadata.broker.list` (the Kafka brokers) to be created. The values in this list are separated by commas. For other configuration options, see the [Configuration.md](https://github.com/edenhill/librdkafka/blob/v2.12.0/CONFIGURATION.md) file described previously.
143
143
 
144
144
  The following example illustrates a list with several `librdkafka` options set.
145
145
 
package/bench/seed.sh CHANGED
File without changes
package/binding.gyp CHANGED
@@ -44,7 +44,7 @@
44
44
  }
45
45
  ],
46
46
  'cflags_cc' : [
47
- '-std=c++17'
47
+ '-std=c++20'
48
48
  ],
49
49
  'msvs_settings': {
50
50
  'VCLinkerTool': {
@@ -123,7 +123,7 @@
123
123
  'OS=="linux"',
124
124
  {
125
125
  'cflags_cc' : [
126
- '-std=c++17'
126
+ '-std=c++20'
127
127
  ],
128
128
  'cflags_cc!': [
129
129
  '-fno-rtti'
@@ -141,7 +141,7 @@
141
141
  ],
142
142
  'OTHER_CPLUSPLUSFLAGS': [
143
143
  '-I/usr/local/opt/openssl/include',
144
- '-std=c++17'
144
+ '-std=c++20'
145
145
  ],
146
146
  },
147
147
  }
package/ci/prepublish.js CHANGED
@@ -1,3 +1,4 @@
1
- require('./checks/librdkafka-exists');
2
- require('./checks/librdkafka-correct-version');
3
- require('./librdkafka-defs-generator.js');
1
+ require("./checks/librdkafka-exists");
2
+ require("./checks/librdkafka-correct-version");
3
+ require("./librdkafka-defs-generator.js");
4
+ // require('./update-version');
@@ -0,0 +1,123 @@
1
+ const path = require('path');
2
+ const semver = require('semver');
3
+ const { spawn } = require('child_process');
4
+ const fs = require('fs');
5
+
6
+ const root = path.resolve(__dirname, '..');
7
+ const pjsPath = path.resolve(root, 'package.json');
8
+ const pjs = require(pjsPath);
9
+
10
+ function parseVersion(tag) {
11
+ const { major, minor, prerelease, patch } = semver.parse(tag);
12
+
13
+ // Describe will give is commits since last tag
14
+ const [commitsSinceTag, hash] = prerelease[0] ? prerelease[0].split('-') : [
15
+ 1,
16
+ process.env.TRAVIS_COMMIT || ''
17
+ ];
18
+
19
+ return {
20
+ major,
21
+ minor,
22
+ prerelease,
23
+ patch,
24
+ commit: commitsSinceTag - 1,
25
+ hash
26
+ };
27
+ }
28
+
29
+ function getCommandOutput(command, args, cb) {
30
+ let output = '';
31
+
32
+ const cmd = spawn(command, args);
33
+
34
+ cmd.stdout.on('data', (data) => {
35
+ output += data;
36
+ });
37
+
38
+ cmd.on('close', (code) => {
39
+ if (code != 0) {
40
+ cb(new Error(`Command returned unsuccessful code: ${code}`));
41
+ return;
42
+ }
43
+
44
+ cb(null, output.trim());
45
+ });
46
+ }
47
+
48
+ function getVersion(cb) {
49
+ // https://docs.travis-ci.com/user/environment-variables/
50
+ if (process.env.TRAVIS_TAG) {
51
+ setImmediate(() => cb(null, parseVersion(process.env.TRAVIS_TAG.trim())));
52
+ return;
53
+ }
54
+
55
+ getCommandOutput('git', ['describe', '--tags'], (err, result) => {
56
+ if (err) {
57
+ cb(err);
58
+ return;
59
+ }
60
+
61
+ cb(null, parseVersion(result.trim()));
62
+ });
63
+ }
64
+
65
+ function getBranch(cb) {
66
+ if (process.env.TRAVIS_TAG) {
67
+ // TRAVIS_BRANCH matches TRAVIS_TAG when TRAVIS_TAG is set
68
+ // "git branch --contains tags/TRAVIS_TAG" doesn't work on travis so we have to assume 'master'
69
+ setImmediate(() => cb(null, 'master'));
70
+ return;
71
+ } else if (process.env.TRAVIS_BRANCH) {
72
+ setImmediate(() => cb(null, process.env.TRAVIS_BRANCH.trim()));
73
+ return;
74
+ }
75
+
76
+ getCommandOutput('git', ['rev-parse', '--abbrev-ref', 'HEAD'], (err, result) => {
77
+ if (err) {
78
+ cb(err);
79
+ return;
80
+ }
81
+
82
+ cb(null, result.trim());
83
+ });
84
+ }
85
+
86
+ function getPackageVersion(tag, branch) {
87
+ const baseVersion = `v${tag.major}.${tag.minor}.${tag.patch}`;
88
+
89
+ console.log(`Package version is "${baseVersion}"`);
90
+
91
+ // never publish with an suffix
92
+ // fixes https://github.com/Blizzard/node-rdkafka/issues/981
93
+ // baseVersion += '-';
94
+
95
+ // if (tag.commit === 0 && branch === 'master') {
96
+ // return baseVersion;
97
+ // }
98
+
99
+ // if (branch !== 'master') {
100
+ // baseVersion += (tag.commit + 1 + '.' + branch);
101
+ // } else {
102
+ // baseVersion += (tag.commit + 1);
103
+ // }
104
+
105
+ return baseVersion;
106
+ }
107
+
108
+ getVersion((err, tag) => {
109
+ if (err) {
110
+ throw err;
111
+ }
112
+
113
+ getBranch((err, branch) => {
114
+ if (err) {
115
+ throw err;
116
+ }
117
+
118
+ pjs.version = getPackageVersion(tag, branch);
119
+
120
+ fs.writeFileSync(pjsPath, JSON.stringify(pjs, null, 2));
121
+ })
122
+
123
+ });
package/config.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- // ====== Generated from librdkafka 2.6.1 file CONFIGURATION.md ======
1
+ // ====== Generated from librdkafka 2.12.0 file CONFIGURATION.md ======
2
2
  // Code that generated this is a derivative work of the code from Nam Nguyen
3
3
  // https://gist.github.com/ntgn81/066c2c8ec5b4238f85d1e9168a04e3fb
4
4
 
@@ -62,6 +62,20 @@ export interface GlobalConfig {
62
62
  */
63
63
  "max.in.flight"?: number;
64
64
 
65
+ /**
66
+ * Controls how the client recovers when none of the brokers known to it is available. If set to `none`, the client doesn't re-bootstrap. If set to `rebootstrap`, the client repeats the bootstrap process using `bootstrap.servers` and brokers added through `rd_kafka_brokers_add()`. Rebootstrapping is useful when a client communicates with brokers so infrequently that the set of brokers may change entirely before the client refreshes metadata. Metadata recovery is triggered when all last-known brokers appear unavailable simultaneously or the client cannot refresh metadata within `metadata.recovery.rebootstrap.trigger.ms` or it's requested in a metadata response.
67
+ *
68
+ * @default rebootstrap
69
+ */
70
+ "metadata.recovery.strategy"?: 'none' | 'rebootstrap';
71
+
72
+ /**
73
+ * If a client configured to rebootstrap using `metadata.recovery.strategy=rebootstrap` is unable to obtain metadata from any of the brokers for this interval, client repeats the bootstrap process using `bootstrap.servers` configuration and brokers added through `rd_kafka_brokers_add()`.
74
+ *
75
+ * @default 300000
76
+ */
77
+ "metadata.recovery.rebootstrap.trigger.ms"?: number;
78
+
65
79
  /**
66
80
  * Period of time in milliseconds at which topic and broker metadata is refreshed in order to proactively discover any new brokers, topics, partitions or partition leader changes. Use -1 to disable the intervalled refresh (not recommended). If there are no locally referenced topics (no topic objects created, no messages produced, no subscription or no assignment) then only the broker list will be refreshed every interval but no more often than every 10s.
67
81
  *
@@ -152,7 +166,7 @@ export interface GlobalConfig {
152
166
  /**
153
167
  * Disable the Nagle algorithm (TCP_NODELAY) on broker sockets.
154
168
  *
155
- * @default false
169
+ * @default true
156
170
  */
157
171
  "socket.nagle.disable"?: boolean;
158
172
 
@@ -185,7 +199,7 @@ export interface GlobalConfig {
185
199
  "socket.connection.setup.timeout.ms"?: number;
186
200
 
187
201
  /**
188
- * Close broker connections after the specified time of inactivity. Disable with 0. If this property is left at its default value some heuristics are performed to determine a suitable default value, this is currently limited to identifying brokers on Azure (see librdkafka issue #3109 for more info).
202
+ * Close broker connections after the specified time of inactivity. Disable with 0. If this property is left at its default value some heuristics are performed to determine a suitable default value, this is currently limited to identifying brokers on Azure (see librdkafka issue #3109 for more info). Actual value can be lower, up to 2s lower, only if `connections.max.idle.ms` >= 4s, as jitter is added to avoid disconnecting all brokers at the same time.
189
203
  *
190
204
  * @default 0
191
205
  */
@@ -329,7 +343,7 @@ export interface GlobalConfig {
329
343
  "internal.termination.signal"?: number;
330
344
 
331
345
  /**
332
- * Request broker's supported API versions to adjust functionality to available protocol features. If set to false, or the ApiVersionRequest fails, the fallback version `broker.version.fallback` will be used. **NOTE**: Depends on broker version >=0.10.0. If the request is not supported by (an older) broker the `broker.version.fallback` fallback is used.
346
+ * **DEPRECATED** **Post-deprecation actions: remove this configuration property, brokers < 0.10.0 won't be supported anymore in librdkafka 3.x.** Request broker's supported API versions to adjust functionality to available protocol features. If set to false, or the ApiVersionRequest fails, the fallback version `broker.version.fallback` will be used. **NOTE**: Depends on broker version >=0.10.0. If the request is not supported by (an older) broker the `broker.version.fallback` fallback is used.
333
347
  *
334
348
  * @default true
335
349
  */
@@ -343,14 +357,14 @@ export interface GlobalConfig {
343
357
  "api.version.request.timeout.ms"?: number;
344
358
 
345
359
  /**
346
- * Dictates how long the `broker.version.fallback` fallback is used in the case the ApiVersionRequest fails. **NOTE**: The ApiVersionRequest is only issued when a new connection to the broker is made (such as after an upgrade).
360
+ * **DEPRECATED** **Post-deprecation actions: remove this configuration property, brokers < 0.10.0 won't be supported anymore in librdkafka 3.x.** Dictates how long the `broker.version.fallback` fallback is used in the case the ApiVersionRequest fails. **NOTE**: The ApiVersionRequest is only issued when a new connection to the broker is made (such as after an upgrade).
347
361
  *
348
362
  * @default 0
349
363
  */
350
364
  "api.version.fallback.ms"?: number;
351
365
 
352
366
  /**
353
- * Older broker versions (before 0.10.0) provide no way for a client to query for supported protocol features (ApiVersionRequest, see `api.version.request`) making it impossible for the client to know what features it may use. As a workaround a user may set this property to the expected broker version and the client will automatically adjust its feature set accordingly if the ApiVersionRequest fails (or is disabled). The fallback broker version will be used for `api.version.fallback.ms`. Valid values are: 0.9.0, 0.8.2, 0.8.1, 0.8.0. Any other value >= 0.10, such as 0.10.2.1, enables ApiVersionRequests.
367
+ * **DEPRECATED** **Post-deprecation actions: remove this configuration property, brokers < 0.10.0 won't be supported anymore in librdkafka 3.x.** Older broker versions (before 0.10.0) provide no way for a client to query for supported protocol features (ApiVersionRequest, see `api.version.request`) making it impossible for the client to know what features it may use. As a workaround a user may set this property to the expected broker version and the client will automatically adjust its feature set accordingly if the ApiVersionRequest fails (or is disabled). The fallback broker version will be used for `api.version.fallback.ms`. Valid values are: 0.9.0, 0.8.2, 0.8.1, 0.8.0. Any other value >= 0.10, such as 0.10.2.1, enables ApiVersionRequests.
354
368
  *
355
369
  * @default 0.10.0
356
370
  */
@@ -425,6 +439,16 @@ export interface GlobalConfig {
425
439
  */
426
440
  "ssl.ca.location"?: string;
427
441
 
442
+ /**
443
+ * File or directory path to CA certificate(s) for verifying HTTPS endpoints, like `sasl.oauthbearer.token.endpoint.url` used for OAUTHBEARER/OIDC authentication. Mutually exclusive with `https.ca.pem`. Defaults: On Windows the system's CA certificates are automatically looked up in the Windows Root certificate store. On Mac OSX this configuration defaults to `probe`. It is recommended to install openssl using Homebrew, to provide CA certificates. On Linux install the distribution's ca-certificates package. If OpenSSL is statically linked or `https.ca.location` is set to `probe` a list of standard paths will be probed and the first one found will be used as the default CA certificate location path. If OpenSSL is dynamically linked the OpenSSL library's default path will be used (see `OPENSSLDIR` in `openssl version -a`).
444
+ */
445
+ "https.ca.location"?: string;
446
+
447
+ /**
448
+ * CA certificate string (PEM format) for verifying HTTPS endpoints. Mutually exclusive with `https.ca.location`. Optional: see `https.ca.location`.
449
+ */
450
+ "https.ca.pem"?: string;
451
+
428
452
  /**
429
453
  * CA certificate string (PEM format) for verifying the broker's key.
430
454
  */
@@ -584,6 +608,16 @@ export interface GlobalConfig {
584
608
  */
585
609
  "sasl.oauthbearer.client.id"?: string;
586
610
 
611
+ /**
612
+ * Alias for `sasl.oauthbearer.client.id`: Public identifier for the application. Must be unique across all clients that the authorization server handles. Only used when `sasl.oauthbearer.method` is set to "oidc".
613
+ */
614
+ "sasl.oauthbearer.client.credentials.client.id"?: string;
615
+
616
+ /**
617
+ * Alias for `sasl.oauthbearer.client.secret`: Client secret only known to the application and the authorization server. This should be a sufficiently random string that is not guessable. Only used when `sasl.oauthbearer.method` is set to "oidc".
618
+ */
619
+ "sasl.oauthbearer.client.credentials.client.secret"?: string;
620
+
587
621
  /**
588
622
  * Client secret only known to the application and the authorization server. This should be a sufficiently random string that is not guessable. Only used when `sasl.oauthbearer.method` is set to "oidc".
589
623
  */
@@ -604,6 +638,88 @@ export interface GlobalConfig {
604
638
  */
605
639
  "sasl.oauthbearer.token.endpoint.url"?: string;
606
640
 
641
+ /**
642
+ * OAuth grant type to use when communicating with the identity provider.
643
+ *
644
+ * @default client_credentials
645
+ */
646
+ "sasl.oauthbearer.grant.type"?: 'client_credentials' | 'urn:ietf:params:oauth:grant-type:jwt-bearer';
647
+
648
+ /**
649
+ * Algorithm the client should use to sign the assertion sent to the identity provider and in the OAuth alg header in the JWT assertion.
650
+ *
651
+ * @default RS256
652
+ */
653
+ "sasl.oauthbearer.assertion.algorithm"?: 'RS256' | 'ES256';
654
+
655
+ /**
656
+ * Path to client's private key (PEM) used for authentication when using the JWT assertion.
657
+ */
658
+ "sasl.oauthbearer.assertion.private.key.file"?: string;
659
+
660
+ /**
661
+ * Private key passphrase for `sasl.oauthbearer.assertion.private.key.file` or `sasl.oauthbearer.assertion.private.key.pem`.
662
+ */
663
+ "sasl.oauthbearer.assertion.private.key.passphrase"?: string;
664
+
665
+ /**
666
+ * Client's private key (PEM) used for authentication when using the JWT assertion.
667
+ */
668
+ "sasl.oauthbearer.assertion.private.key.pem"?: string;
669
+
670
+ /**
671
+ * Path to the assertion file. Only used when `sasl.oauthbearer.method` is set to "oidc" and JWT assertion is needed.
672
+ */
673
+ "sasl.oauthbearer.assertion.file"?: string;
674
+
675
+ /**
676
+ * JWT audience claim. Only used when `sasl.oauthbearer.method` is set to "oidc" and JWT assertion is needed.
677
+ */
678
+ "sasl.oauthbearer.assertion.claim.aud"?: string;
679
+
680
+ /**
681
+ * Assertion expiration time in seconds. Only used when `sasl.oauthbearer.method` is set to "oidc" and JWT assertion is needed.
682
+ *
683
+ * @default 300
684
+ */
685
+ "sasl.oauthbearer.assertion.claim.exp.seconds"?: number;
686
+
687
+ /**
688
+ * JWT issuer claim. Only used when `sasl.oauthbearer.method` is set to "oidc" and JWT assertion is needed.
689
+ */
690
+ "sasl.oauthbearer.assertion.claim.iss"?: string;
691
+
692
+ /**
693
+ * JWT ID claim. When set to `true`, a random UUID is generated. Only used when `sasl.oauthbearer.method` is set to "oidc" and JWT assertion is needed.
694
+ *
695
+ * @default false
696
+ */
697
+ "sasl.oauthbearer.assertion.claim.jti.include"?: boolean;
698
+
699
+ /**
700
+ * Assertion not before time in seconds. Only used when `sasl.oauthbearer.method` is set to "oidc" and JWT assertion is needed.
701
+ *
702
+ * @default 60
703
+ */
704
+ "sasl.oauthbearer.assertion.claim.nbf.seconds"?: number;
705
+
706
+ /**
707
+ * JWT subject claim. Only used when `sasl.oauthbearer.method` is set to "oidc" and JWT assertion is needed.
708
+ */
709
+ "sasl.oauthbearer.assertion.claim.sub"?: string;
710
+
711
+ /**
712
+ * Path to the JWT template file. Only used when `sasl.oauthbearer.method` is set to "oidc" and JWT assertion is needed.
713
+ */
714
+ "sasl.oauthbearer.assertion.jwt.template.file"?: string;
715
+
716
+ /**
717
+ * Type of metadata-based authentication to use for OAUTHBEARER/OIDC `azure_imds` authenticates using the Azure IMDS endpoint. Sets a default value for `sasl.oauthbearer.token.endpoint.url` if missing. Configuration values specific of chosen authentication type can be passed through `sasl.oauthbearer.config`.
718
+ *
719
+ * @default none
720
+ */
721
+ "sasl.oauthbearer.metadata.authentication.type"?: 'none' | 'azure_imds';
722
+
607
723
  /**
608
724
  * List of plugin libraries to load (; separated). The library search path is platform dependent (see dlopen(3) for Unix and LoadLibrary() for Windows). If no filename extension is specified the platform-specific extension (such as .dll or .so) will be appended automatically.
609
725
  */
@@ -796,28 +912,28 @@ export interface ConsumerGlobalConfig extends GlobalConfig {
796
912
  "group.instance.id"?: string;
797
913
 
798
914
  /**
799
- * The name of one or more partition assignment strategies. The elected group leader will use a strategy supported by all members of the group to assign partitions to group members. If there is more than one eligible strategy, preference is determined by the order of this list (strategies earlier in the list have higher priority). Cooperative and non-cooperative (eager) strategies must not be mixed. Available strategies: range, roundrobin, cooperative-sticky.
915
+ * The name of one or more partition assignment strategies. The elected group leader will use a strategy supported by all members of the group to assign partitions to group members. If there is more than one eligible strategy, preference is determined by the order of this list (strategies earlier in the list have higher priority). Cooperative and non-cooperative (eager)strategies must not be mixed. `partition.assignment.strategy` is not supported for `group.protocol=consumer`. Use `group.remote.assignor` instead. Available strategies: range, roundrobin, cooperative-sticky.
800
916
  *
801
917
  * @default range,roundrobin
802
918
  */
803
919
  "partition.assignment.strategy"?: string;
804
920
 
805
921
  /**
806
- * Client group session and failure detection timeout. The consumer sends periodic heartbeats (heartbeat.interval.ms) to indicate its liveness to the broker. If no hearts are received by the broker for a group member within the session timeout, the broker will remove the consumer from the group and trigger a rebalance. The allowed range is configured with the **broker** configuration properties `group.min.session.timeout.ms` and `group.max.session.timeout.ms`. Also see `max.poll.interval.ms`.
922
+ * Client group session and failure detection timeout. The consumer sends periodic heartbeats (heartbeat.interval.ms) to indicate its liveness to the broker. If no hearts are received by the broker for a group member within the session timeout, the broker will remove the consumer from the group and trigger a rebalance. The allowed range is configured with the **broker** configuration properties `group.min.session.timeout.ms` and `group.max.session.timeout.ms`. `session.timeout.ms` is not supported for `group.protocol=consumer`. It is set with the broker configuration property `group.consumer.session.timeout.ms` by default or can be configured through the AdminClient IncrementalAlterConfigs API. The allowed range is configured with the broker configuration properties `group.consumer.min.session.timeout.ms` and `group.consumer.max.session.timeout.ms`. Also see `max.poll.interval.ms`.
807
923
  *
808
924
  * @default 45000
809
925
  */
810
926
  "session.timeout.ms"?: number;
811
927
 
812
928
  /**
813
- * Group session keepalive heartbeat interval.
929
+ * Group session keepalive heartbeat interval. `heartbeat.interval.ms` is not supported for `group.protocol=consumer`. It is set with the broker configuration property `group.consumer.heartbeat.interval.ms` by default or can be configured through the AdminClient IncrementalAlterConfigs API. The allowed range is configured with the broker configuration properties `group.consumer.min.heartbeat.interval.ms` and `group.consumer.max.heartbeat.interval.ms`.
814
930
  *
815
931
  * @default 3000
816
932
  */
817
933
  "heartbeat.interval.ms"?: number;
818
934
 
819
935
  /**
820
- * Group protocol type for the `classic` group protocol. NOTE: Currently, the only supported group protocol type is `consumer`.
936
+ * Group protocol type for the `classic` group protocol. NOTE: Currently, the only supported group protocol type is `consumer`. `group.protocol.type` is not supported for `group.protocol=consumer`
821
937
  *
822
938
  * @default consumer
823
939
  */
package/configure CHANGED
File without changes
@@ -0,0 +1,77 @@
1
+ version: v1.0
2
+ name: run-all-tests
3
+
4
+ agent:
5
+ machine:
6
+ type: s1-prod-ubuntu24-04-amd64-00
7
+
8
+ execution_time_limit:
9
+ hours: 3
10
+
11
+ global_job_config:
12
+ prologue:
13
+ commands:
14
+ - checkout
15
+ - '[[ -z "$GIT_REF" ]] || git checkout $GIT_REF'
16
+ - wget -O rapidjson-dev.deb https://launchpad.net/ubuntu/+archive/primary/+files/rapidjson-dev_1.1.0+dfsg2-3_all.deb
17
+ - sudo dpkg -i rapidjson-dev.deb
18
+ - sudo apt update
19
+ - sudo apt remove -y needrestart
20
+ - sudo apt install -y valgrind
21
+ - python3 -m pip install -U pip
22
+ - python3 -m pip -V
23
+ - (cd tests && python3 -m pip install -r requirements.txt)
24
+ - ./configure --install-deps --enable-werror --enable-devel
25
+ - make -j all
26
+ - make -j -C tests build
27
+ - sem-version java 17
28
+
29
+ blocks:
30
+ - name: "Run all tests (x86_64)"
31
+ dependencies: []
32
+ task:
33
+ agent:
34
+ machine:
35
+ type: s1-prod-ubuntu24-04-amd64-1
36
+ prologue:
37
+ commands:
38
+ - if [[ "$TEST_ARCHES" != *"x86_64"* ]]; then exit 0; fi
39
+ jobs:
40
+ - name: "PLAINTEXT cluster (x86_64)"
41
+ env_vars:
42
+ - name: TEST_SSL
43
+ value: "False"
44
+ commands:
45
+ - if [[ "$TEST_TYPE" != *"plaintext"* ]]; then exit 0; fi
46
+ - ./tests/run-all-tests.sh
47
+ - name: "SSL cluster (x86_64)"
48
+ env_vars:
49
+ - name: TEST_SSL
50
+ value: "True"
51
+ commands:
52
+ - if [[ "$TEST_TYPE" != *"ssl"* ]]; then exit 0; fi
53
+ - ./tests/run-all-tests.sh
54
+ - name: "Run all tests (aarch64)"
55
+ dependencies: []
56
+ task:
57
+ agent:
58
+ machine:
59
+ type: s1-prod-ubuntu24-04-arm64-1
60
+ prologue:
61
+ commands:
62
+ - if [[ "$TEST_ARCHES" != *"aarch64"* ]]; then exit 0; fi
63
+ jobs:
64
+ - name: "PLAINTEXT cluster (aarch64)"
65
+ env_vars:
66
+ - name: TEST_SSL
67
+ value: "False"
68
+ commands:
69
+ - if [[ "$TEST_TYPE" != *"plaintext"* ]]; then exit 0; fi
70
+ - ./tests/run-all-tests.sh
71
+ - name: "SSL cluster (aarch64)"
72
+ env_vars:
73
+ - name: TEST_SSL
74
+ value: "True"
75
+ commands:
76
+ - if [[ "$TEST_TYPE" != *"ssl"* ]]; then exit 0; fi
77
+ - ./tests/run-all-tests.sh