@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.
- package/LICENSE.txt +20 -0
- package/README.md +636 -0
- package/binding.gyp +154 -0
- package/deps/librdkafka/.clang-format +136 -0
- package/deps/librdkafka/.clang-format-cpp +103 -0
- package/deps/librdkafka/.dir-locals.el +10 -0
- package/deps/librdkafka/.formatignore +33 -0
- package/deps/librdkafka/.gdbmacros +19 -0
- package/deps/librdkafka/.github/CODEOWNERS +1 -0
- package/deps/librdkafka/.github/ISSUE_TEMPLATE +34 -0
- package/deps/librdkafka/.semaphore/run-all-tests.yml +77 -0
- package/deps/librdkafka/.semaphore/semaphore-integration.yml +250 -0
- package/deps/librdkafka/.semaphore/semaphore.yml +378 -0
- package/deps/librdkafka/.semaphore/verify-linux-packages.yml +41 -0
- package/deps/librdkafka/CHANGELOG.md +2208 -0
- package/deps/librdkafka/CMakeLists.txt +291 -0
- package/deps/librdkafka/CODE_OF_CONDUCT.md +46 -0
- package/deps/librdkafka/CONFIGURATION.md +209 -0
- package/deps/librdkafka/CONTRIBUTING.md +431 -0
- package/deps/librdkafka/Doxyfile +2375 -0
- package/deps/librdkafka/INTRODUCTION.md +2481 -0
- package/deps/librdkafka/LICENSE +26 -0
- package/deps/librdkafka/LICENSE.cjson +22 -0
- package/deps/librdkafka/LICENSE.crc32c +28 -0
- package/deps/librdkafka/LICENSE.fnv1a +18 -0
- package/deps/librdkafka/LICENSE.hdrhistogram +27 -0
- package/deps/librdkafka/LICENSE.lz4 +26 -0
- package/deps/librdkafka/LICENSE.murmur2 +25 -0
- package/deps/librdkafka/LICENSE.nanopb +22 -0
- package/deps/librdkafka/LICENSE.opentelemetry +203 -0
- package/deps/librdkafka/LICENSE.pycrc +23 -0
- package/deps/librdkafka/LICENSE.queue +31 -0
- package/deps/librdkafka/LICENSE.regexp +5 -0
- package/deps/librdkafka/LICENSE.snappy +36 -0
- package/deps/librdkafka/LICENSE.tinycthread +26 -0
- package/deps/librdkafka/LICENSE.wingetopt +49 -0
- package/deps/librdkafka/LICENSES.txt +625 -0
- package/deps/librdkafka/Makefile +125 -0
- package/deps/librdkafka/README.md +199 -0
- package/deps/librdkafka/README.win32 +26 -0
- package/deps/librdkafka/STATISTICS.md +624 -0
- package/deps/librdkafka/configure +214 -0
- package/deps/librdkafka/configure.self +331 -0
- package/deps/librdkafka/debian/changelog +111 -0
- package/deps/librdkafka/debian/compat +1 -0
- package/deps/librdkafka/debian/control +71 -0
- package/deps/librdkafka/debian/copyright +99 -0
- package/deps/librdkafka/debian/gbp.conf +9 -0
- package/deps/librdkafka/debian/librdkafka++1.install +1 -0
- package/deps/librdkafka/debian/librdkafka-dev.examples +2 -0
- package/deps/librdkafka/debian/librdkafka-dev.install +9 -0
- package/deps/librdkafka/debian/librdkafka1.docs +5 -0
- package/deps/librdkafka/debian/librdkafka1.install +1 -0
- package/deps/librdkafka/debian/librdkafka1.symbols +135 -0
- package/deps/librdkafka/debian/rules +19 -0
- package/deps/librdkafka/debian/source/format +1 -0
- package/deps/librdkafka/debian/watch +2 -0
- package/deps/librdkafka/dev-conf.sh +123 -0
- package/deps/librdkafka/examples/CMakeLists.txt +79 -0
- package/deps/librdkafka/examples/Makefile +167 -0
- package/deps/librdkafka/examples/README.md +42 -0
- package/deps/librdkafka/examples/alter_consumer_group_offsets.c +338 -0
- package/deps/librdkafka/examples/consumer.c +271 -0
- package/deps/librdkafka/examples/delete_records.c +233 -0
- package/deps/librdkafka/examples/describe_cluster.c +322 -0
- package/deps/librdkafka/examples/describe_consumer_groups.c +455 -0
- package/deps/librdkafka/examples/describe_topics.c +427 -0
- package/deps/librdkafka/examples/elect_leaders.c +317 -0
- package/deps/librdkafka/examples/globals.json +11 -0
- package/deps/librdkafka/examples/idempotent_producer.c +344 -0
- package/deps/librdkafka/examples/incremental_alter_configs.c +347 -0
- package/deps/librdkafka/examples/kafkatest_verifiable_client.cpp +945 -0
- package/deps/librdkafka/examples/list_consumer_group_offsets.c +359 -0
- package/deps/librdkafka/examples/list_consumer_groups.c +365 -0
- package/deps/librdkafka/examples/list_offsets.c +327 -0
- package/deps/librdkafka/examples/misc.c +287 -0
- package/deps/librdkafka/examples/openssl_engine_example.cpp +248 -0
- package/deps/librdkafka/examples/producer.c +251 -0
- package/deps/librdkafka/examples/producer.cpp +228 -0
- package/deps/librdkafka/examples/rdkafka_complex_consumer_example.c +617 -0
- package/deps/librdkafka/examples/rdkafka_complex_consumer_example.cpp +467 -0
- package/deps/librdkafka/examples/rdkafka_consume_batch.cpp +264 -0
- package/deps/librdkafka/examples/rdkafka_example.c +853 -0
- package/deps/librdkafka/examples/rdkafka_example.cpp +679 -0
- package/deps/librdkafka/examples/rdkafka_performance.c +1781 -0
- package/deps/librdkafka/examples/transactions-older-broker.c +668 -0
- package/deps/librdkafka/examples/transactions.c +665 -0
- package/deps/librdkafka/examples/user_scram.c +491 -0
- package/deps/librdkafka/examples/win_ssl_cert_store.cpp +396 -0
- package/deps/librdkafka/lds-gen.py +73 -0
- package/deps/librdkafka/mainpage.doxy +40 -0
- package/deps/librdkafka/mklove/Makefile.base +329 -0
- package/deps/librdkafka/mklove/modules/configure.atomics +144 -0
- package/deps/librdkafka/mklove/modules/configure.base +2484 -0
- package/deps/librdkafka/mklove/modules/configure.builtin +70 -0
- package/deps/librdkafka/mklove/modules/configure.cc +186 -0
- package/deps/librdkafka/mklove/modules/configure.cxx +8 -0
- package/deps/librdkafka/mklove/modules/configure.fileversion +65 -0
- package/deps/librdkafka/mklove/modules/configure.gitversion +29 -0
- package/deps/librdkafka/mklove/modules/configure.good_cflags +18 -0
- package/deps/librdkafka/mklove/modules/configure.host +132 -0
- package/deps/librdkafka/mklove/modules/configure.lib +49 -0
- package/deps/librdkafka/mklove/modules/configure.libcurl +99 -0
- package/deps/librdkafka/mklove/modules/configure.libsasl2 +36 -0
- package/deps/librdkafka/mklove/modules/configure.libssl +147 -0
- package/deps/librdkafka/mklove/modules/configure.libzstd +58 -0
- package/deps/librdkafka/mklove/modules/configure.parseversion +95 -0
- package/deps/librdkafka/mklove/modules/configure.pic +16 -0
- package/deps/librdkafka/mklove/modules/configure.socket +20 -0
- package/deps/librdkafka/mklove/modules/configure.zlib +61 -0
- package/deps/librdkafka/mklove/modules/patches/README.md +8 -0
- package/deps/librdkafka/mklove/modules/patches/libcurl.0000-no-runtime-linking-check.patch +11 -0
- package/deps/librdkafka/mklove/modules/patches/libssl.0000-osx-rand-include-fix-OpenSSL-PR16409.patch +56 -0
- package/deps/librdkafka/packaging/RELEASE.md +319 -0
- package/deps/librdkafka/packaging/alpine/build-alpine.sh +38 -0
- package/deps/librdkafka/packaging/archlinux/PKGBUILD +30 -0
- package/deps/librdkafka/packaging/cmake/Config.cmake.in +37 -0
- package/deps/librdkafka/packaging/cmake/Modules/FindLZ4.cmake +38 -0
- package/deps/librdkafka/packaging/cmake/Modules/FindZSTD.cmake +27 -0
- package/deps/librdkafka/packaging/cmake/Modules/LICENSE.FindZstd +178 -0
- package/deps/librdkafka/packaging/cmake/README.md +38 -0
- package/deps/librdkafka/packaging/cmake/config.h.in +52 -0
- package/deps/librdkafka/packaging/cmake/parseversion.cmake +60 -0
- package/deps/librdkafka/packaging/cmake/rdkafka.pc.in +12 -0
- package/deps/librdkafka/packaging/cmake/try_compile/atomic_32_test.c +8 -0
- package/deps/librdkafka/packaging/cmake/try_compile/atomic_64_test.c +8 -0
- package/deps/librdkafka/packaging/cmake/try_compile/c11threads_test.c +14 -0
- package/deps/librdkafka/packaging/cmake/try_compile/crc32c_hw_test.c +27 -0
- package/deps/librdkafka/packaging/cmake/try_compile/dlopen_test.c +11 -0
- package/deps/librdkafka/packaging/cmake/try_compile/libsasl2_test.c +7 -0
- package/deps/librdkafka/packaging/cmake/try_compile/pthread_setname_darwin_test.c +6 -0
- package/deps/librdkafka/packaging/cmake/try_compile/pthread_setname_freebsd_test.c +7 -0
- package/deps/librdkafka/packaging/cmake/try_compile/pthread_setname_gnu_test.c +5 -0
- package/deps/librdkafka/packaging/cmake/try_compile/rand_r_test.c +7 -0
- package/deps/librdkafka/packaging/cmake/try_compile/rdkafka_setup.cmake +122 -0
- package/deps/librdkafka/packaging/cmake/try_compile/regex_test.c +10 -0
- package/deps/librdkafka/packaging/cmake/try_compile/strndup_test.c +5 -0
- package/deps/librdkafka/packaging/cmake/try_compile/sync_32_test.c +8 -0
- package/deps/librdkafka/packaging/cmake/try_compile/sync_64_test.c +8 -0
- package/deps/librdkafka/packaging/cp/README.md +16 -0
- package/deps/librdkafka/packaging/cp/check_features.c +72 -0
- package/deps/librdkafka/packaging/cp/verify-deb.sh +33 -0
- package/deps/librdkafka/packaging/cp/verify-packages.sh +69 -0
- package/deps/librdkafka/packaging/cp/verify-rpm.sh +32 -0
- package/deps/librdkafka/packaging/debian/changelog +66 -0
- package/deps/librdkafka/packaging/debian/compat +1 -0
- package/deps/librdkafka/packaging/debian/control +49 -0
- package/deps/librdkafka/packaging/debian/copyright +84 -0
- package/deps/librdkafka/packaging/debian/docs +5 -0
- package/deps/librdkafka/packaging/debian/gbp.conf +9 -0
- package/deps/librdkafka/packaging/debian/librdkafka-dev.dirs +2 -0
- package/deps/librdkafka/packaging/debian/librdkafka-dev.examples +2 -0
- package/deps/librdkafka/packaging/debian/librdkafka-dev.install +6 -0
- package/deps/librdkafka/packaging/debian/librdkafka-dev.substvars +1 -0
- package/deps/librdkafka/packaging/debian/librdkafka.dsc +16 -0
- package/deps/librdkafka/packaging/debian/librdkafka1-dbg.substvars +1 -0
- package/deps/librdkafka/packaging/debian/librdkafka1.dirs +1 -0
- package/deps/librdkafka/packaging/debian/librdkafka1.install +2 -0
- package/deps/librdkafka/packaging/debian/librdkafka1.postinst.debhelper +5 -0
- package/deps/librdkafka/packaging/debian/librdkafka1.postrm.debhelper +5 -0
- package/deps/librdkafka/packaging/debian/librdkafka1.symbols +64 -0
- package/deps/librdkafka/packaging/debian/rules +19 -0
- package/deps/librdkafka/packaging/debian/source/format +1 -0
- package/deps/librdkafka/packaging/debian/watch +2 -0
- package/deps/librdkafka/packaging/get_version.py +21 -0
- package/deps/librdkafka/packaging/homebrew/README.md +15 -0
- package/deps/librdkafka/packaging/homebrew/brew-update-pr.sh +31 -0
- package/deps/librdkafka/packaging/mingw-w64/configure-build-msys2-mingw-static.sh +52 -0
- package/deps/librdkafka/packaging/mingw-w64/configure-build-msys2-mingw.sh +21 -0
- package/deps/librdkafka/packaging/mingw-w64/export-variables.sh +13 -0
- package/deps/librdkafka/packaging/mingw-w64/run-tests.sh +6 -0
- package/deps/librdkafka/packaging/mingw-w64/semaphoreci-build.sh +38 -0
- package/deps/librdkafka/packaging/nuget/README.md +84 -0
- package/deps/librdkafka/packaging/nuget/artifact.py +177 -0
- package/deps/librdkafka/packaging/nuget/cleanup-s3.py +143 -0
- package/deps/librdkafka/packaging/nuget/common/p-common__plat-windows__arch-win32__bldtype-Release/msvcr120.zip +0 -0
- package/deps/librdkafka/packaging/nuget/common/p-common__plat-windows__arch-win32__bldtype-Release/msvcr140.zip +0 -0
- package/deps/librdkafka/packaging/nuget/common/p-common__plat-windows__arch-x64__bldtype-Release/msvcr120.zip +0 -0
- package/deps/librdkafka/packaging/nuget/common/p-common__plat-windows__arch-x64__bldtype-Release/msvcr140.zip +0 -0
- package/deps/librdkafka/packaging/nuget/nuget.sh +21 -0
- package/deps/librdkafka/packaging/nuget/nugetpackage.py +278 -0
- package/deps/librdkafka/packaging/nuget/packaging.py +448 -0
- package/deps/librdkafka/packaging/nuget/push-to-nuget.sh +21 -0
- package/deps/librdkafka/packaging/nuget/release.py +167 -0
- package/deps/librdkafka/packaging/nuget/requirements.txt +3 -0
- package/deps/librdkafka/packaging/nuget/staticpackage.py +178 -0
- package/deps/librdkafka/packaging/nuget/templates/librdkafka.redist.nuspec +21 -0
- package/deps/librdkafka/packaging/nuget/templates/librdkafka.redist.props +18 -0
- package/deps/librdkafka/packaging/nuget/templates/librdkafka.redist.targets +19 -0
- package/deps/librdkafka/packaging/nuget/zfile/__init__.py +0 -0
- package/deps/librdkafka/packaging/nuget/zfile/zfile.py +98 -0
- package/deps/librdkafka/packaging/rpm/Makefile +92 -0
- package/deps/librdkafka/packaging/rpm/README.md +23 -0
- package/deps/librdkafka/packaging/rpm/el7-x86_64.cfg +40 -0
- package/deps/librdkafka/packaging/rpm/librdkafka.spec +118 -0
- package/deps/librdkafka/packaging/rpm/mock-on-docker.sh +96 -0
- package/deps/librdkafka/packaging/rpm/tests/Makefile +25 -0
- package/deps/librdkafka/packaging/rpm/tests/README.md +8 -0
- package/deps/librdkafka/packaging/rpm/tests/run-test.sh +42 -0
- package/deps/librdkafka/packaging/rpm/tests/test-on-docker.sh +56 -0
- package/deps/librdkafka/packaging/rpm/tests/test.c +77 -0
- package/deps/librdkafka/packaging/rpm/tests/test.cpp +34 -0
- package/deps/librdkafka/packaging/tools/Dockerfile +31 -0
- package/deps/librdkafka/packaging/tools/build-configurations-checks.sh +12 -0
- package/deps/librdkafka/packaging/tools/build-deb-package.sh +64 -0
- package/deps/librdkafka/packaging/tools/build-debian.sh +65 -0
- package/deps/librdkafka/packaging/tools/build-manylinux.sh +68 -0
- package/deps/librdkafka/packaging/tools/build-release-artifacts.sh +139 -0
- package/deps/librdkafka/packaging/tools/distro-build.sh +38 -0
- package/deps/librdkafka/packaging/tools/gh-release-checksums.py +39 -0
- package/deps/librdkafka/packaging/tools/rdutcoverage.sh +25 -0
- package/deps/librdkafka/packaging/tools/requirements.txt +2 -0
- package/deps/librdkafka/packaging/tools/run-in-docker.sh +28 -0
- package/deps/librdkafka/packaging/tools/run-integration-tests.sh +31 -0
- package/deps/librdkafka/packaging/tools/run-style-check.sh +4 -0
- package/deps/librdkafka/packaging/tools/style-format.sh +149 -0
- package/deps/librdkafka/packaging/tools/update_rpcs_max_versions.py +100 -0
- package/deps/librdkafka/service.yml +172 -0
- package/deps/librdkafka/src/CMakeLists.txt +374 -0
- package/deps/librdkafka/src/Makefile +103 -0
- package/deps/librdkafka/src/README.lz4.md +30 -0
- package/deps/librdkafka/src/cJSON.c +2834 -0
- package/deps/librdkafka/src/cJSON.h +398 -0
- package/deps/librdkafka/src/crc32c.c +430 -0
- package/deps/librdkafka/src/crc32c.h +38 -0
- package/deps/librdkafka/src/generate_proto.sh +66 -0
- package/deps/librdkafka/src/librdkafka_cgrp_synch.png +0 -0
- package/deps/librdkafka/src/lz4.c +2727 -0
- package/deps/librdkafka/src/lz4.h +842 -0
- package/deps/librdkafka/src/lz4frame.c +2078 -0
- package/deps/librdkafka/src/lz4frame.h +692 -0
- package/deps/librdkafka/src/lz4frame_static.h +47 -0
- package/deps/librdkafka/src/lz4hc.c +1631 -0
- package/deps/librdkafka/src/lz4hc.h +413 -0
- package/deps/librdkafka/src/nanopb/pb.h +917 -0
- package/deps/librdkafka/src/nanopb/pb_common.c +388 -0
- package/deps/librdkafka/src/nanopb/pb_common.h +49 -0
- package/deps/librdkafka/src/nanopb/pb_decode.c +1727 -0
- package/deps/librdkafka/src/nanopb/pb_decode.h +193 -0
- package/deps/librdkafka/src/nanopb/pb_encode.c +1000 -0
- package/deps/librdkafka/src/nanopb/pb_encode.h +185 -0
- package/deps/librdkafka/src/opentelemetry/common.pb.c +32 -0
- package/deps/librdkafka/src/opentelemetry/common.pb.h +170 -0
- package/deps/librdkafka/src/opentelemetry/metrics.options +2 -0
- package/deps/librdkafka/src/opentelemetry/metrics.pb.c +67 -0
- package/deps/librdkafka/src/opentelemetry/metrics.pb.h +966 -0
- package/deps/librdkafka/src/opentelemetry/resource.pb.c +12 -0
- package/deps/librdkafka/src/opentelemetry/resource.pb.h +58 -0
- package/deps/librdkafka/src/queue.h +850 -0
- package/deps/librdkafka/src/rd.h +584 -0
- package/deps/librdkafka/src/rdaddr.c +255 -0
- package/deps/librdkafka/src/rdaddr.h +202 -0
- package/deps/librdkafka/src/rdatomic.h +230 -0
- package/deps/librdkafka/src/rdavg.h +260 -0
- package/deps/librdkafka/src/rdavl.c +210 -0
- package/deps/librdkafka/src/rdavl.h +250 -0
- package/deps/librdkafka/src/rdbase64.c +200 -0
- package/deps/librdkafka/src/rdbase64.h +43 -0
- package/deps/librdkafka/src/rdbuf.c +1884 -0
- package/deps/librdkafka/src/rdbuf.h +375 -0
- package/deps/librdkafka/src/rdcrc32.c +114 -0
- package/deps/librdkafka/src/rdcrc32.h +170 -0
- package/deps/librdkafka/src/rddl.c +179 -0
- package/deps/librdkafka/src/rddl.h +43 -0
- package/deps/librdkafka/src/rdendian.h +175 -0
- package/deps/librdkafka/src/rdfloat.h +67 -0
- package/deps/librdkafka/src/rdfnv1a.c +113 -0
- package/deps/librdkafka/src/rdfnv1a.h +35 -0
- package/deps/librdkafka/src/rdgz.c +120 -0
- package/deps/librdkafka/src/rdgz.h +46 -0
- package/deps/librdkafka/src/rdhdrhistogram.c +721 -0
- package/deps/librdkafka/src/rdhdrhistogram.h +87 -0
- package/deps/librdkafka/src/rdhttp.c +830 -0
- package/deps/librdkafka/src/rdhttp.h +101 -0
- package/deps/librdkafka/src/rdinterval.h +177 -0
- package/deps/librdkafka/src/rdkafka.c +5505 -0
- package/deps/librdkafka/src/rdkafka.h +10686 -0
- package/deps/librdkafka/src/rdkafka_admin.c +9794 -0
- package/deps/librdkafka/src/rdkafka_admin.h +661 -0
- package/deps/librdkafka/src/rdkafka_assignment.c +1010 -0
- package/deps/librdkafka/src/rdkafka_assignment.h +73 -0
- package/deps/librdkafka/src/rdkafka_assignor.c +1786 -0
- package/deps/librdkafka/src/rdkafka_assignor.h +402 -0
- package/deps/librdkafka/src/rdkafka_aux.c +409 -0
- package/deps/librdkafka/src/rdkafka_aux.h +174 -0
- package/deps/librdkafka/src/rdkafka_background.c +221 -0
- package/deps/librdkafka/src/rdkafka_broker.c +6337 -0
- package/deps/librdkafka/src/rdkafka_broker.h +744 -0
- package/deps/librdkafka/src/rdkafka_buf.c +543 -0
- package/deps/librdkafka/src/rdkafka_buf.h +1525 -0
- package/deps/librdkafka/src/rdkafka_cert.c +576 -0
- package/deps/librdkafka/src/rdkafka_cert.h +62 -0
- package/deps/librdkafka/src/rdkafka_cgrp.c +7587 -0
- package/deps/librdkafka/src/rdkafka_cgrp.h +477 -0
- package/deps/librdkafka/src/rdkafka_conf.c +4880 -0
- package/deps/librdkafka/src/rdkafka_conf.h +732 -0
- package/deps/librdkafka/src/rdkafka_confval.h +97 -0
- package/deps/librdkafka/src/rdkafka_coord.c +623 -0
- package/deps/librdkafka/src/rdkafka_coord.h +132 -0
- package/deps/librdkafka/src/rdkafka_error.c +228 -0
- package/deps/librdkafka/src/rdkafka_error.h +80 -0
- package/deps/librdkafka/src/rdkafka_event.c +502 -0
- package/deps/librdkafka/src/rdkafka_event.h +126 -0
- package/deps/librdkafka/src/rdkafka_feature.c +898 -0
- package/deps/librdkafka/src/rdkafka_feature.h +104 -0
- package/deps/librdkafka/src/rdkafka_fetcher.c +1422 -0
- package/deps/librdkafka/src/rdkafka_fetcher.h +44 -0
- package/deps/librdkafka/src/rdkafka_header.c +220 -0
- package/deps/librdkafka/src/rdkafka_header.h +76 -0
- package/deps/librdkafka/src/rdkafka_idempotence.c +807 -0
- package/deps/librdkafka/src/rdkafka_idempotence.h +144 -0
- package/deps/librdkafka/src/rdkafka_int.h +1260 -0
- package/deps/librdkafka/src/rdkafka_interceptor.c +819 -0
- package/deps/librdkafka/src/rdkafka_interceptor.h +104 -0
- package/deps/librdkafka/src/rdkafka_lz4.c +450 -0
- package/deps/librdkafka/src/rdkafka_lz4.h +49 -0
- package/deps/librdkafka/src/rdkafka_metadata.c +2209 -0
- package/deps/librdkafka/src/rdkafka_metadata.h +345 -0
- package/deps/librdkafka/src/rdkafka_metadata_cache.c +1183 -0
- package/deps/librdkafka/src/rdkafka_mock.c +3661 -0
- package/deps/librdkafka/src/rdkafka_mock.h +610 -0
- package/deps/librdkafka/src/rdkafka_mock_cgrp.c +1876 -0
- package/deps/librdkafka/src/rdkafka_mock_handlers.c +3113 -0
- package/deps/librdkafka/src/rdkafka_mock_int.h +710 -0
- package/deps/librdkafka/src/rdkafka_msg.c +2589 -0
- package/deps/librdkafka/src/rdkafka_msg.h +614 -0
- package/deps/librdkafka/src/rdkafka_msgbatch.h +62 -0
- package/deps/librdkafka/src/rdkafka_msgset.h +98 -0
- package/deps/librdkafka/src/rdkafka_msgset_reader.c +1806 -0
- package/deps/librdkafka/src/rdkafka_msgset_writer.c +1474 -0
- package/deps/librdkafka/src/rdkafka_offset.c +1565 -0
- package/deps/librdkafka/src/rdkafka_offset.h +150 -0
- package/deps/librdkafka/src/rdkafka_op.c +997 -0
- package/deps/librdkafka/src/rdkafka_op.h +858 -0
- package/deps/librdkafka/src/rdkafka_partition.c +4896 -0
- package/deps/librdkafka/src/rdkafka_partition.h +1182 -0
- package/deps/librdkafka/src/rdkafka_pattern.c +228 -0
- package/deps/librdkafka/src/rdkafka_pattern.h +70 -0
- package/deps/librdkafka/src/rdkafka_plugin.c +213 -0
- package/deps/librdkafka/src/rdkafka_plugin.h +41 -0
- package/deps/librdkafka/src/rdkafka_proto.h +736 -0
- package/deps/librdkafka/src/rdkafka_protocol.h +128 -0
- package/deps/librdkafka/src/rdkafka_queue.c +1230 -0
- package/deps/librdkafka/src/rdkafka_queue.h +1220 -0
- package/deps/librdkafka/src/rdkafka_range_assignor.c +1748 -0
- package/deps/librdkafka/src/rdkafka_request.c +7089 -0
- package/deps/librdkafka/src/rdkafka_request.h +732 -0
- package/deps/librdkafka/src/rdkafka_roundrobin_assignor.c +123 -0
- package/deps/librdkafka/src/rdkafka_sasl.c +530 -0
- package/deps/librdkafka/src/rdkafka_sasl.h +63 -0
- package/deps/librdkafka/src/rdkafka_sasl_cyrus.c +722 -0
- package/deps/librdkafka/src/rdkafka_sasl_int.h +89 -0
- package/deps/librdkafka/src/rdkafka_sasl_oauthbearer.c +1833 -0
- package/deps/librdkafka/src/rdkafka_sasl_oauthbearer.h +52 -0
- package/deps/librdkafka/src/rdkafka_sasl_oauthbearer_oidc.c +1666 -0
- package/deps/librdkafka/src/rdkafka_sasl_oauthbearer_oidc.h +47 -0
- package/deps/librdkafka/src/rdkafka_sasl_plain.c +142 -0
- package/deps/librdkafka/src/rdkafka_sasl_scram.c +858 -0
- package/deps/librdkafka/src/rdkafka_sasl_win32.c +550 -0
- package/deps/librdkafka/src/rdkafka_ssl.c +2129 -0
- package/deps/librdkafka/src/rdkafka_ssl.h +86 -0
- package/deps/librdkafka/src/rdkafka_sticky_assignor.c +4785 -0
- package/deps/librdkafka/src/rdkafka_subscription.c +278 -0
- package/deps/librdkafka/src/rdkafka_telemetry.c +760 -0
- package/deps/librdkafka/src/rdkafka_telemetry.h +52 -0
- package/deps/librdkafka/src/rdkafka_telemetry_decode.c +1053 -0
- package/deps/librdkafka/src/rdkafka_telemetry_decode.h +59 -0
- package/deps/librdkafka/src/rdkafka_telemetry_encode.c +997 -0
- package/deps/librdkafka/src/rdkafka_telemetry_encode.h +301 -0
- package/deps/librdkafka/src/rdkafka_timer.c +402 -0
- package/deps/librdkafka/src/rdkafka_timer.h +117 -0
- package/deps/librdkafka/src/rdkafka_topic.c +2161 -0
- package/deps/librdkafka/src/rdkafka_topic.h +334 -0
- package/deps/librdkafka/src/rdkafka_transport.c +1309 -0
- package/deps/librdkafka/src/rdkafka_transport.h +99 -0
- package/deps/librdkafka/src/rdkafka_transport_int.h +100 -0
- package/deps/librdkafka/src/rdkafka_txnmgr.c +3256 -0
- package/deps/librdkafka/src/rdkafka_txnmgr.h +171 -0
- package/deps/librdkafka/src/rdkafka_zstd.c +226 -0
- package/deps/librdkafka/src/rdkafka_zstd.h +57 -0
- package/deps/librdkafka/src/rdlist.c +576 -0
- package/deps/librdkafka/src/rdlist.h +434 -0
- package/deps/librdkafka/src/rdlog.c +89 -0
- package/deps/librdkafka/src/rdlog.h +41 -0
- package/deps/librdkafka/src/rdmap.c +508 -0
- package/deps/librdkafka/src/rdmap.h +492 -0
- package/deps/librdkafka/src/rdmurmur2.c +167 -0
- package/deps/librdkafka/src/rdmurmur2.h +35 -0
- package/deps/librdkafka/src/rdports.c +61 -0
- package/deps/librdkafka/src/rdports.h +38 -0
- package/deps/librdkafka/src/rdposix.h +250 -0
- package/deps/librdkafka/src/rdrand.c +80 -0
- package/deps/librdkafka/src/rdrand.h +43 -0
- package/deps/librdkafka/src/rdregex.c +156 -0
- package/deps/librdkafka/src/rdregex.h +43 -0
- package/deps/librdkafka/src/rdsignal.h +57 -0
- package/deps/librdkafka/src/rdstring.c +645 -0
- package/deps/librdkafka/src/rdstring.h +98 -0
- package/deps/librdkafka/src/rdsysqueue.h +404 -0
- package/deps/librdkafka/src/rdtime.h +356 -0
- package/deps/librdkafka/src/rdtypes.h +86 -0
- package/deps/librdkafka/src/rdunittest.c +549 -0
- package/deps/librdkafka/src/rdunittest.h +232 -0
- package/deps/librdkafka/src/rdvarint.c +134 -0
- package/deps/librdkafka/src/rdvarint.h +165 -0
- package/deps/librdkafka/src/rdwin32.h +382 -0
- package/deps/librdkafka/src/rdxxhash.c +1030 -0
- package/deps/librdkafka/src/rdxxhash.h +328 -0
- package/deps/librdkafka/src/regexp.c +1352 -0
- package/deps/librdkafka/src/regexp.h +41 -0
- package/deps/librdkafka/src/snappy.c +1866 -0
- package/deps/librdkafka/src/snappy.h +62 -0
- package/deps/librdkafka/src/snappy_compat.h +138 -0
- package/deps/librdkafka/src/statistics_schema.json +444 -0
- package/deps/librdkafka/src/tinycthread.c +932 -0
- package/deps/librdkafka/src/tinycthread.h +503 -0
- package/deps/librdkafka/src/tinycthread_extra.c +199 -0
- package/deps/librdkafka/src/tinycthread_extra.h +212 -0
- package/deps/librdkafka/src/win32_config.h +58 -0
- package/deps/librdkafka/src-cpp/CMakeLists.txt +90 -0
- package/deps/librdkafka/src-cpp/ConfImpl.cpp +84 -0
- package/deps/librdkafka/src-cpp/ConsumerImpl.cpp +244 -0
- package/deps/librdkafka/src-cpp/HandleImpl.cpp +436 -0
- package/deps/librdkafka/src-cpp/HeadersImpl.cpp +48 -0
- package/deps/librdkafka/src-cpp/KafkaConsumerImpl.cpp +296 -0
- package/deps/librdkafka/src-cpp/Makefile +55 -0
- package/deps/librdkafka/src-cpp/MessageImpl.cpp +38 -0
- package/deps/librdkafka/src-cpp/MetadataImpl.cpp +170 -0
- package/deps/librdkafka/src-cpp/ProducerImpl.cpp +197 -0
- package/deps/librdkafka/src-cpp/QueueImpl.cpp +70 -0
- package/deps/librdkafka/src-cpp/README.md +16 -0
- package/deps/librdkafka/src-cpp/RdKafka.cpp +59 -0
- package/deps/librdkafka/src-cpp/TopicImpl.cpp +124 -0
- package/deps/librdkafka/src-cpp/TopicPartitionImpl.cpp +57 -0
- package/deps/librdkafka/src-cpp/rdkafkacpp.h +3797 -0
- package/deps/librdkafka/src-cpp/rdkafkacpp_int.h +1641 -0
- package/deps/librdkafka/tests/0000-unittests.c +72 -0
- package/deps/librdkafka/tests/0001-multiobj.c +102 -0
- package/deps/librdkafka/tests/0002-unkpart.c +244 -0
- package/deps/librdkafka/tests/0003-msgmaxsize.c +173 -0
- package/deps/librdkafka/tests/0004-conf.c +934 -0
- package/deps/librdkafka/tests/0005-order.c +133 -0
- package/deps/librdkafka/tests/0006-symbols.c +163 -0
- package/deps/librdkafka/tests/0007-autotopic.c +136 -0
- package/deps/librdkafka/tests/0008-reqacks.c +179 -0
- package/deps/librdkafka/tests/0009-mock_cluster.c +97 -0
- package/deps/librdkafka/tests/0011-produce_batch.c +753 -0
- package/deps/librdkafka/tests/0012-produce_consume.c +537 -0
- package/deps/librdkafka/tests/0013-null-msgs.c +473 -0
- package/deps/librdkafka/tests/0014-reconsume-191.c +512 -0
- package/deps/librdkafka/tests/0015-offset_seeks.c +172 -0
- package/deps/librdkafka/tests/0016-client_swname.c +181 -0
- package/deps/librdkafka/tests/0017-compression.c +140 -0
- package/deps/librdkafka/tests/0018-cgrp_term.c +338 -0
- package/deps/librdkafka/tests/0019-list_groups.c +289 -0
- package/deps/librdkafka/tests/0020-destroy_hang.c +162 -0
- package/deps/librdkafka/tests/0021-rkt_destroy.c +72 -0
- package/deps/librdkafka/tests/0022-consume_batch.c +279 -0
- package/deps/librdkafka/tests/0025-timers.c +147 -0
- package/deps/librdkafka/tests/0026-consume_pause.c +547 -0
- package/deps/librdkafka/tests/0028-long_topicnames.c +79 -0
- package/deps/librdkafka/tests/0029-assign_offset.c +202 -0
- package/deps/librdkafka/tests/0030-offset_commit.c +589 -0
- package/deps/librdkafka/tests/0031-get_offsets.c +235 -0
- package/deps/librdkafka/tests/0033-regex_subscribe.c +536 -0
- package/deps/librdkafka/tests/0034-offset_reset.c +398 -0
- package/deps/librdkafka/tests/0035-api_version.c +73 -0
- package/deps/librdkafka/tests/0036-partial_fetch.c +87 -0
- package/deps/librdkafka/tests/0037-destroy_hang_local.c +85 -0
- package/deps/librdkafka/tests/0038-performance.c +121 -0
- package/deps/librdkafka/tests/0039-event.c +284 -0
- package/deps/librdkafka/tests/0040-io_event.c +257 -0
- package/deps/librdkafka/tests/0041-fetch_max_bytes.c +97 -0
- package/deps/librdkafka/tests/0042-many_topics.c +252 -0
- package/deps/librdkafka/tests/0043-no_connection.c +77 -0
- package/deps/librdkafka/tests/0044-partition_cnt.c +94 -0
- package/deps/librdkafka/tests/0045-subscribe_update.c +1010 -0
- package/deps/librdkafka/tests/0046-rkt_cache.c +65 -0
- package/deps/librdkafka/tests/0047-partial_buf_tmout.c +98 -0
- package/deps/librdkafka/tests/0048-partitioner.c +283 -0
- package/deps/librdkafka/tests/0049-consume_conn_close.c +162 -0
- package/deps/librdkafka/tests/0050-subscribe_adds.c +145 -0
- package/deps/librdkafka/tests/0051-assign_adds.c +126 -0
- package/deps/librdkafka/tests/0052-msg_timestamps.c +238 -0
- package/deps/librdkafka/tests/0053-stats_cb.cpp +527 -0
- package/deps/librdkafka/tests/0054-offset_time.cpp +236 -0
- package/deps/librdkafka/tests/0055-producer_latency.c +539 -0
- package/deps/librdkafka/tests/0056-balanced_group_mt.c +315 -0
- package/deps/librdkafka/tests/0057-invalid_topic.cpp +112 -0
- package/deps/librdkafka/tests/0058-log.cpp +123 -0
- package/deps/librdkafka/tests/0059-bsearch.cpp +241 -0
- package/deps/librdkafka/tests/0060-op_prio.cpp +163 -0
- package/deps/librdkafka/tests/0061-consumer_lag.cpp +295 -0
- package/deps/librdkafka/tests/0062-stats_event.c +126 -0
- package/deps/librdkafka/tests/0063-clusterid.cpp +180 -0
- package/deps/librdkafka/tests/0064-interceptors.c +481 -0
- package/deps/librdkafka/tests/0065-yield.cpp +140 -0
- package/deps/librdkafka/tests/0066-plugins.cpp +129 -0
- package/deps/librdkafka/tests/0067-empty_topic.cpp +151 -0
- package/deps/librdkafka/tests/0068-produce_timeout.c +136 -0
- package/deps/librdkafka/tests/0069-consumer_add_parts.c +119 -0
- package/deps/librdkafka/tests/0070-null_empty.cpp +197 -0
- package/deps/librdkafka/tests/0072-headers_ut.c +448 -0
- package/deps/librdkafka/tests/0073-headers.c +381 -0
- package/deps/librdkafka/tests/0074-producev.c +87 -0
- package/deps/librdkafka/tests/0075-retry.c +290 -0
- package/deps/librdkafka/tests/0076-produce_retry.c +452 -0
- package/deps/librdkafka/tests/0077-compaction.c +363 -0
- package/deps/librdkafka/tests/0078-c_from_cpp.cpp +96 -0
- package/deps/librdkafka/tests/0079-fork.c +93 -0
- package/deps/librdkafka/tests/0080-admin_ut.c +3095 -0
- package/deps/librdkafka/tests/0081-admin.c +5633 -0
- package/deps/librdkafka/tests/0082-fetch_max_bytes.cpp +137 -0
- package/deps/librdkafka/tests/0083-cb_event.c +233 -0
- package/deps/librdkafka/tests/0084-destroy_flags.c +208 -0
- package/deps/librdkafka/tests/0085-headers.cpp +392 -0
- package/deps/librdkafka/tests/0086-purge.c +368 -0
- package/deps/librdkafka/tests/0088-produce_metadata_timeout.c +162 -0
- package/deps/librdkafka/tests/0089-max_poll_interval.c +511 -0
- package/deps/librdkafka/tests/0090-idempotence.c +171 -0
- package/deps/librdkafka/tests/0091-max_poll_interval_timeout.c +295 -0
- package/deps/librdkafka/tests/0092-mixed_msgver.c +103 -0
- package/deps/librdkafka/tests/0093-holb.c +200 -0
- package/deps/librdkafka/tests/0094-idempotence_msg_timeout.c +231 -0
- package/deps/librdkafka/tests/0095-all_brokers_down.cpp +122 -0
- package/deps/librdkafka/tests/0097-ssl_verify.cpp +658 -0
- package/deps/librdkafka/tests/0098-consumer-txn.cpp +1218 -0
- package/deps/librdkafka/tests/0099-commit_metadata.c +194 -0
- package/deps/librdkafka/tests/0100-thread_interceptors.cpp +195 -0
- package/deps/librdkafka/tests/0101-fetch-from-follower.cpp +446 -0
- package/deps/librdkafka/tests/0102-static_group_rebalance.c +836 -0
- package/deps/librdkafka/tests/0103-transactions.c +1383 -0
- package/deps/librdkafka/tests/0104-fetch_from_follower_mock.c +625 -0
- package/deps/librdkafka/tests/0105-transactions_mock.c +3930 -0
- package/deps/librdkafka/tests/0106-cgrp_sess_timeout.c +318 -0
- package/deps/librdkafka/tests/0107-topic_recreate.c +259 -0
- package/deps/librdkafka/tests/0109-auto_create_topics.cpp +278 -0
- package/deps/librdkafka/tests/0110-batch_size.cpp +182 -0
- package/deps/librdkafka/tests/0111-delay_create_topics.cpp +127 -0
- package/deps/librdkafka/tests/0112-assign_unknown_part.c +87 -0
- package/deps/librdkafka/tests/0113-cooperative_rebalance.cpp +3473 -0
- package/deps/librdkafka/tests/0114-sticky_partitioning.cpp +176 -0
- package/deps/librdkafka/tests/0115-producer_auth.cpp +182 -0
- package/deps/librdkafka/tests/0116-kafkaconsumer_close.cpp +216 -0
- package/deps/librdkafka/tests/0117-mock_errors.c +331 -0
- package/deps/librdkafka/tests/0118-commit_rebalance.c +154 -0
- package/deps/librdkafka/tests/0119-consumer_auth.cpp +167 -0
- package/deps/librdkafka/tests/0120-asymmetric_subscription.c +185 -0
- package/deps/librdkafka/tests/0121-clusterid.c +115 -0
- package/deps/librdkafka/tests/0122-buffer_cleaning_after_rebalance.c +227 -0
- package/deps/librdkafka/tests/0123-connections_max_idle.c +98 -0
- package/deps/librdkafka/tests/0124-openssl_invalid_engine.c +69 -0
- package/deps/librdkafka/tests/0125-immediate_flush.c +144 -0
- package/deps/librdkafka/tests/0126-oauthbearer_oidc.c +528 -0
- package/deps/librdkafka/tests/0127-fetch_queue_backoff.cpp +165 -0
- package/deps/librdkafka/tests/0128-sasl_callback_queue.cpp +125 -0
- package/deps/librdkafka/tests/0129-fetch_aborted_msgs.c +79 -0
- package/deps/librdkafka/tests/0130-store_offsets.c +178 -0
- package/deps/librdkafka/tests/0131-connect_timeout.c +81 -0
- package/deps/librdkafka/tests/0132-strategy_ordering.c +179 -0
- package/deps/librdkafka/tests/0133-ssl_keys.c +150 -0
- package/deps/librdkafka/tests/0134-ssl_provider.c +92 -0
- package/deps/librdkafka/tests/0135-sasl_credentials.cpp +143 -0
- package/deps/librdkafka/tests/0136-resolve_cb.c +181 -0
- package/deps/librdkafka/tests/0137-barrier_batch_consume.c +619 -0
- package/deps/librdkafka/tests/0138-admin_mock.c +281 -0
- package/deps/librdkafka/tests/0139-offset_validation_mock.c +950 -0
- package/deps/librdkafka/tests/0140-commit_metadata.cpp +108 -0
- package/deps/librdkafka/tests/0142-reauthentication.c +515 -0
- package/deps/librdkafka/tests/0143-exponential_backoff_mock.c +552 -0
- package/deps/librdkafka/tests/0144-idempotence_mock.c +373 -0
- package/deps/librdkafka/tests/0145-pause_resume_mock.c +119 -0
- package/deps/librdkafka/tests/0146-metadata_mock.c +505 -0
- package/deps/librdkafka/tests/0147-consumer_group_consumer_mock.c +952 -0
- package/deps/librdkafka/tests/0148-offset_fetch_commit_error_mock.c +563 -0
- package/deps/librdkafka/tests/0149-broker-same-host-port.c +140 -0
- package/deps/librdkafka/tests/0150-telemetry_mock.c +651 -0
- package/deps/librdkafka/tests/0151-purge-brokers.c +566 -0
- package/deps/librdkafka/tests/0152-rebootstrap.c +59 -0
- package/deps/librdkafka/tests/0153-memberid.c +128 -0
- package/deps/librdkafka/tests/1000-unktopic.c +164 -0
- package/deps/librdkafka/tests/8000-idle.cpp +60 -0
- package/deps/librdkafka/tests/8001-fetch_from_follower_mock_manual.c +113 -0
- package/deps/librdkafka/tests/CMakeLists.txt +170 -0
- package/deps/librdkafka/tests/LibrdkafkaTestApp.py +291 -0
- package/deps/librdkafka/tests/Makefile +182 -0
- package/deps/librdkafka/tests/README.md +509 -0
- package/deps/librdkafka/tests/autotest.sh +33 -0
- package/deps/librdkafka/tests/backtrace.gdb +30 -0
- package/deps/librdkafka/tests/broker_version_tests.py +315 -0
- package/deps/librdkafka/tests/buildbox.sh +17 -0
- package/deps/librdkafka/tests/cleanup-checker-tests.sh +20 -0
- package/deps/librdkafka/tests/cluster_testing.py +191 -0
- package/deps/librdkafka/tests/delete-test-topics.sh +56 -0
- package/deps/librdkafka/tests/fixtures/oauthbearer/jwt_assertion_template.json +10 -0
- package/deps/librdkafka/tests/fixtures/ssl/Makefile +8 -0
- package/deps/librdkafka/tests/fixtures/ssl/README.md +13 -0
- package/deps/librdkafka/tests/fixtures/ssl/client.keystore.intermediate.p12 +0 -0
- package/deps/librdkafka/tests/fixtures/ssl/client.keystore.p12 +0 -0
- package/deps/librdkafka/tests/fixtures/ssl/client2.certificate.intermediate.pem +72 -0
- package/deps/librdkafka/tests/fixtures/ssl/client2.certificate.pem +50 -0
- package/deps/librdkafka/tests/fixtures/ssl/client2.intermediate.key +46 -0
- package/deps/librdkafka/tests/fixtures/ssl/client2.key +46 -0
- package/deps/librdkafka/tests/fixtures/ssl/create_keys.sh +168 -0
- package/deps/librdkafka/tests/fuzzers/Makefile +12 -0
- package/deps/librdkafka/tests/fuzzers/README.md +31 -0
- package/deps/librdkafka/tests/fuzzers/fuzz_regex.c +74 -0
- package/deps/librdkafka/tests/fuzzers/helpers.h +90 -0
- package/deps/librdkafka/tests/gen-ssl-certs.sh +165 -0
- package/deps/librdkafka/tests/interactive_broker_version.py +170 -0
- package/deps/librdkafka/tests/interceptor_test/CMakeLists.txt +16 -0
- package/deps/librdkafka/tests/interceptor_test/Makefile +22 -0
- package/deps/librdkafka/tests/interceptor_test/interceptor_test.c +314 -0
- package/deps/librdkafka/tests/interceptor_test/interceptor_test.h +54 -0
- package/deps/librdkafka/tests/java/IncrementalRebalanceCli.java +97 -0
- package/deps/librdkafka/tests/java/Makefile +13 -0
- package/deps/librdkafka/tests/java/Murmur2Cli.java +46 -0
- package/deps/librdkafka/tests/java/README.md +14 -0
- package/deps/librdkafka/tests/java/TransactionProducerCli.java +162 -0
- package/deps/librdkafka/tests/java/run-class.sh +11 -0
- package/deps/librdkafka/tests/librdkafka.suppressions +483 -0
- package/deps/librdkafka/tests/lz4_manual_test.sh +59 -0
- package/deps/librdkafka/tests/multi-broker-version-test.sh +50 -0
- package/deps/librdkafka/tests/parse-refcnt.sh +43 -0
- package/deps/librdkafka/tests/performance_plot.py +115 -0
- package/deps/librdkafka/tests/plugin_test/Makefile +19 -0
- package/deps/librdkafka/tests/plugin_test/plugin_test.c +58 -0
- package/deps/librdkafka/tests/requirements.txt +2 -0
- package/deps/librdkafka/tests/run-all-tests.sh +79 -0
- package/deps/librdkafka/tests/run-consumer-tests.sh +16 -0
- package/deps/librdkafka/tests/run-producer-tests.sh +16 -0
- package/deps/librdkafka/tests/run-test-batches.py +157 -0
- package/deps/librdkafka/tests/run-test.sh +140 -0
- package/deps/librdkafka/tests/rusage.c +249 -0
- package/deps/librdkafka/tests/sasl_test.py +289 -0
- package/deps/librdkafka/tests/scenarios/README.md +6 -0
- package/deps/librdkafka/tests/scenarios/ak23.json +6 -0
- package/deps/librdkafka/tests/scenarios/default.json +5 -0
- package/deps/librdkafka/tests/scenarios/noautocreate.json +5 -0
- package/deps/librdkafka/tests/sockem.c +801 -0
- package/deps/librdkafka/tests/sockem.h +85 -0
- package/deps/librdkafka/tests/sockem_ctrl.c +145 -0
- package/deps/librdkafka/tests/sockem_ctrl.h +61 -0
- package/deps/librdkafka/tests/test.c +7778 -0
- package/deps/librdkafka/tests/test.conf.example +27 -0
- package/deps/librdkafka/tests/test.h +1028 -0
- package/deps/librdkafka/tests/testcpp.cpp +131 -0
- package/deps/librdkafka/tests/testcpp.h +388 -0
- package/deps/librdkafka/tests/testshared.h +416 -0
- package/deps/librdkafka/tests/tools/README.md +4 -0
- package/deps/librdkafka/tests/tools/stats/README.md +21 -0
- package/deps/librdkafka/tests/tools/stats/filter.jq +42 -0
- package/deps/librdkafka/tests/tools/stats/graph.py +150 -0
- package/deps/librdkafka/tests/tools/stats/requirements.txt +3 -0
- package/deps/librdkafka/tests/tools/stats/to_csv.py +124 -0
- package/deps/librdkafka/tests/trivup/trivup-0.14.0.tar.gz +0 -0
- package/deps/librdkafka/tests/until-fail.sh +87 -0
- package/deps/librdkafka/tests/xxxx-assign_partition.c +122 -0
- package/deps/librdkafka/tests/xxxx-metadata.cpp +159 -0
- package/deps/librdkafka/vcpkg.json +23 -0
- package/deps/librdkafka/win32/README.md +5 -0
- package/deps/librdkafka/win32/build-package.bat +3 -0
- package/deps/librdkafka/win32/build.bat +19 -0
- package/deps/librdkafka/win32/common.vcxproj +84 -0
- package/deps/librdkafka/win32/interceptor_test/interceptor_test.vcxproj +87 -0
- package/deps/librdkafka/win32/librdkafka.autopkg.template +54 -0
- package/deps/librdkafka/win32/librdkafka.master.testing.targets +13 -0
- package/deps/librdkafka/win32/librdkafka.sln +226 -0
- package/deps/librdkafka/win32/librdkafka.vcxproj +276 -0
- package/deps/librdkafka/win32/librdkafkacpp/librdkafkacpp.vcxproj +104 -0
- package/deps/librdkafka/win32/msbuild.ps1 +15 -0
- package/deps/librdkafka/win32/openssl_engine_example/openssl_engine_example.vcxproj +132 -0
- package/deps/librdkafka/win32/package-zip.ps1 +46 -0
- package/deps/librdkafka/win32/packages/repositories.config +4 -0
- package/deps/librdkafka/win32/push-package.bat +4 -0
- package/deps/librdkafka/win32/rdkafka_complex_consumer_example_cpp/rdkafka_complex_consumer_example_cpp.vcxproj +67 -0
- package/deps/librdkafka/win32/rdkafka_example/rdkafka_example.vcxproj +97 -0
- package/deps/librdkafka/win32/rdkafka_performance/rdkafka_performance.vcxproj +97 -0
- package/deps/librdkafka/win32/setup-msys2.ps1 +47 -0
- package/deps/librdkafka/win32/setup-vcpkg.ps1 +34 -0
- package/deps/librdkafka/win32/tests/test.conf.example +25 -0
- package/deps/librdkafka/win32/tests/tests.vcxproj +253 -0
- package/deps/librdkafka/win32/win_ssl_cert_store/win_ssl_cert_store.vcxproj +132 -0
- package/deps/librdkafka/win32/wingetopt.c +564 -0
- package/deps/librdkafka/win32/wingetopt.h +101 -0
- package/deps/librdkafka/win32/wintime.h +33 -0
- package/deps/librdkafka.gyp +62 -0
- package/lib/admin.js +233 -0
- package/lib/client.js +573 -0
- package/lib/error.js +500 -0
- package/lib/index.js +34 -0
- package/lib/kafka-consumer-stream.js +397 -0
- package/lib/kafka-consumer.js +698 -0
- package/lib/producer/high-level-producer.js +323 -0
- package/lib/producer-stream.js +307 -0
- package/lib/producer.js +375 -0
- package/lib/tools/ref-counter.js +52 -0
- package/lib/topic-partition.js +88 -0
- package/lib/topic.js +42 -0
- package/lib/util.js +29 -0
- package/package.json +61 -0
- package/prebuilds/darwin-arm64/@point3+node-rdkafka.node +0 -0
- package/prebuilds/linux-x64/@point3+node-rdkafka.node +0 -0
- package/util/configure.js +30 -0
- package/util/get-env.js +6 -0
- package/util/test-compile.js +11 -0
- package/util/test-producer-delivery.js +100 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* librdkafka - The Apache Kafka C/C++ library
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2017-2022, Magnus Edenhill
|
|
5
|
+
* All rights reserved.
|
|
6
|
+
*
|
|
7
|
+
* Redistribution and use in source and binary forms, with or without
|
|
8
|
+
* modification, are permitted provided that the following conditions are met:
|
|
9
|
+
*
|
|
10
|
+
* 1. Redistributions of source code must retain the above copyright notice,
|
|
11
|
+
* this list of conditions and the following disclaimer.
|
|
12
|
+
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
13
|
+
* this list of conditions and the following disclaimer in the documentation
|
|
14
|
+
* and/or other materials provided with the distribution.
|
|
15
|
+
*
|
|
16
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
17
|
+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
18
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
19
|
+
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
20
|
+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
21
|
+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
22
|
+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
23
|
+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
24
|
+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
25
|
+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
26
|
+
* POSSIBILITY OF SUCH DAMAGE.
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
#ifndef _RDKAFKA_INTERCEPTOR_H
|
|
30
|
+
#define _RDKAFKA_INTERCEPTOR_H
|
|
31
|
+
|
|
32
|
+
rd_kafka_conf_res_t rd_kafka_interceptors_on_conf_set(rd_kafka_conf_t *conf,
|
|
33
|
+
const char *name,
|
|
34
|
+
const char *val,
|
|
35
|
+
char *errstr,
|
|
36
|
+
size_t errstr_size);
|
|
37
|
+
void rd_kafka_interceptors_on_conf_dup(rd_kafka_conf_t *new_conf,
|
|
38
|
+
const rd_kafka_conf_t *old_conf,
|
|
39
|
+
size_t filter_cnt,
|
|
40
|
+
const char **filter);
|
|
41
|
+
void rd_kafka_interceptors_on_conf_destroy(rd_kafka_conf_t *conf);
|
|
42
|
+
void rd_kafka_interceptors_on_new(rd_kafka_t *rk, const rd_kafka_conf_t *conf);
|
|
43
|
+
void rd_kafka_interceptors_on_destroy(rd_kafka_t *rk);
|
|
44
|
+
void rd_kafka_interceptors_on_send(rd_kafka_t *rk,
|
|
45
|
+
rd_kafka_message_t *rkmessage);
|
|
46
|
+
void rd_kafka_interceptors_on_acknowledgement(rd_kafka_t *rk,
|
|
47
|
+
rd_kafka_message_t *rkmessage);
|
|
48
|
+
void rd_kafka_interceptors_on_acknowledgement_queue(
|
|
49
|
+
rd_kafka_t *rk,
|
|
50
|
+
rd_kafka_msgq_t *rkmq,
|
|
51
|
+
rd_kafka_resp_err_t force_err);
|
|
52
|
+
|
|
53
|
+
void rd_kafka_interceptors_on_consume(rd_kafka_t *rk,
|
|
54
|
+
rd_kafka_message_t *rkmessage);
|
|
55
|
+
void rd_kafka_interceptors_on_commit(
|
|
56
|
+
rd_kafka_t *rk,
|
|
57
|
+
const rd_kafka_topic_partition_list_t *offsets,
|
|
58
|
+
rd_kafka_resp_err_t err);
|
|
59
|
+
|
|
60
|
+
void rd_kafka_interceptors_on_request_sent(rd_kafka_t *rk,
|
|
61
|
+
int sockfd,
|
|
62
|
+
const char *brokername,
|
|
63
|
+
int32_t brokerid,
|
|
64
|
+
int16_t ApiKey,
|
|
65
|
+
int16_t ApiVersion,
|
|
66
|
+
int32_t CorrId,
|
|
67
|
+
size_t size);
|
|
68
|
+
|
|
69
|
+
void rd_kafka_interceptors_on_response_received(rd_kafka_t *rk,
|
|
70
|
+
int sockfd,
|
|
71
|
+
const char *brokername,
|
|
72
|
+
int32_t brokerid,
|
|
73
|
+
int16_t ApiKey,
|
|
74
|
+
int16_t ApiVersion,
|
|
75
|
+
int32_t CorrId,
|
|
76
|
+
size_t size,
|
|
77
|
+
int64_t rtt,
|
|
78
|
+
rd_kafka_resp_err_t err);
|
|
79
|
+
|
|
80
|
+
void rd_kafka_interceptors_on_thread_start(rd_kafka_t *rk,
|
|
81
|
+
rd_kafka_thread_type_t thread_type);
|
|
82
|
+
void rd_kafka_interceptors_on_thread_exit(rd_kafka_t *rk,
|
|
83
|
+
rd_kafka_thread_type_t thread_type);
|
|
84
|
+
|
|
85
|
+
void rd_kafka_interceptors_on_broker_state_change(rd_kafka_t *rk,
|
|
86
|
+
int32_t broker_id,
|
|
87
|
+
const char *secproto,
|
|
88
|
+
const char *name,
|
|
89
|
+
int port,
|
|
90
|
+
const char *state);
|
|
91
|
+
|
|
92
|
+
void rd_kafka_conf_interceptor_ctor(int scope, void *pconf);
|
|
93
|
+
void rd_kafka_conf_interceptor_dtor(int scope, void *pconf);
|
|
94
|
+
void rd_kafka_conf_interceptor_copy(int scope,
|
|
95
|
+
void *pdst,
|
|
96
|
+
const void *psrc,
|
|
97
|
+
void *dstptr,
|
|
98
|
+
const void *srcptr,
|
|
99
|
+
size_t filter_cnt,
|
|
100
|
+
const char **filter);
|
|
101
|
+
|
|
102
|
+
void rd_kafka_interceptors_destroy(rd_kafka_conf_t *conf);
|
|
103
|
+
|
|
104
|
+
#endif /* _RDKAFKA_INTERCEPTOR_H */
|
|
@@ -0,0 +1,450 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* librdkafka - Apache Kafka C library
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2017-2022, Magnus Edenhill
|
|
5
|
+
* All rights reserved.
|
|
6
|
+
*
|
|
7
|
+
* Redistribution and use in source and binary forms, with or without
|
|
8
|
+
* modification, are permitted provided that the following conditions are met:
|
|
9
|
+
*
|
|
10
|
+
* 1. Redistributions of source code must retain the above copyright notice,
|
|
11
|
+
* this list of conditions and the following disclaimer.
|
|
12
|
+
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
13
|
+
* this list of conditions and the following disclaimer in the documentation
|
|
14
|
+
* and/or other materials provided with the distribution.
|
|
15
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
16
|
+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
17
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
18
|
+
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
19
|
+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
20
|
+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
21
|
+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
22
|
+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
23
|
+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
24
|
+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
25
|
+
* POSSIBILITY OF SUCH DAMAGE.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
#include "rdkafka_int.h"
|
|
29
|
+
#include "rdkafka_lz4.h"
|
|
30
|
+
|
|
31
|
+
#if WITH_LZ4_EXT
|
|
32
|
+
#include <lz4frame.h>
|
|
33
|
+
#else
|
|
34
|
+
#include "lz4frame.h"
|
|
35
|
+
#endif
|
|
36
|
+
#include "rdxxhash.h"
|
|
37
|
+
|
|
38
|
+
#include "rdbuf.h"
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Fix-up bad LZ4 framing caused by buggy Kafka client / broker.
|
|
42
|
+
* The LZ4F framing format is described in detail here:
|
|
43
|
+
* https://github.com/lz4/lz4/blob/master/doc/lz4_Frame_format.md
|
|
44
|
+
*
|
|
45
|
+
* NOTE: This modifies 'inbuf'.
|
|
46
|
+
*
|
|
47
|
+
* Returns an error on failure to fix (nothing modified), else NO_ERROR.
|
|
48
|
+
*/
|
|
49
|
+
static rd_kafka_resp_err_t
|
|
50
|
+
rd_kafka_lz4_decompress_fixup_bad_framing(rd_kafka_broker_t *rkb,
|
|
51
|
+
char *inbuf,
|
|
52
|
+
size_t inlen) {
|
|
53
|
+
static const char magic[4] = {0x04, 0x22, 0x4d, 0x18};
|
|
54
|
+
uint8_t FLG, HC, correct_HC;
|
|
55
|
+
size_t of = 4;
|
|
56
|
+
|
|
57
|
+
/* Format is:
|
|
58
|
+
* int32_t magic;
|
|
59
|
+
* int8_t_ FLG;
|
|
60
|
+
* int8_t BD;
|
|
61
|
+
* [ int64_t contentSize; ]
|
|
62
|
+
* int8_t HC;
|
|
63
|
+
*/
|
|
64
|
+
if (inlen < 4 + 3 || memcmp(inbuf, magic, 4)) {
|
|
65
|
+
rd_rkb_dbg(rkb, BROKER, "LZ4FIXUP",
|
|
66
|
+
"Unable to fix-up legacy LZ4 framing "
|
|
67
|
+
"(%" PRIusz " bytes): invalid length or magic value",
|
|
68
|
+
inlen);
|
|
69
|
+
return RD_KAFKA_RESP_ERR__BAD_COMPRESSION;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
of = 4; /* past magic */
|
|
73
|
+
FLG = inbuf[of++];
|
|
74
|
+
of++; /* BD */
|
|
75
|
+
|
|
76
|
+
if ((FLG >> 3) & 1) /* contentSize */
|
|
77
|
+
of += 8;
|
|
78
|
+
|
|
79
|
+
if (of >= inlen) {
|
|
80
|
+
rd_rkb_dbg(rkb, BROKER, "LZ4FIXUP",
|
|
81
|
+
"Unable to fix-up legacy LZ4 framing "
|
|
82
|
+
"(%" PRIusz " bytes): requires %" PRIusz " bytes",
|
|
83
|
+
inlen, of);
|
|
84
|
+
return RD_KAFKA_RESP_ERR__BAD_COMPRESSION;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/* Header hash code */
|
|
88
|
+
HC = inbuf[of];
|
|
89
|
+
|
|
90
|
+
/* Calculate correct header hash code */
|
|
91
|
+
correct_HC = (XXH32(inbuf + 4, of - 4, 0) >> 8) & 0xff;
|
|
92
|
+
|
|
93
|
+
if (HC != correct_HC)
|
|
94
|
+
inbuf[of] = correct_HC;
|
|
95
|
+
|
|
96
|
+
return RD_KAFKA_RESP_ERR_NO_ERROR;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Reverse of fix-up: break LZ4 framing caused to be compatbile with with
|
|
102
|
+
* buggy Kafka client / broker.
|
|
103
|
+
*
|
|
104
|
+
* NOTE: This modifies 'outbuf'.
|
|
105
|
+
*
|
|
106
|
+
* Returns an error on failure to recognize format (nothing modified),
|
|
107
|
+
* else NO_ERROR.
|
|
108
|
+
*/
|
|
109
|
+
static rd_kafka_resp_err_t
|
|
110
|
+
rd_kafka_lz4_compress_break_framing(rd_kafka_broker_t *rkb,
|
|
111
|
+
char *outbuf,
|
|
112
|
+
size_t outlen) {
|
|
113
|
+
static const char magic[4] = {0x04, 0x22, 0x4d, 0x18};
|
|
114
|
+
uint8_t FLG, HC, bad_HC;
|
|
115
|
+
size_t of = 4;
|
|
116
|
+
|
|
117
|
+
/* Format is:
|
|
118
|
+
* int32_t magic;
|
|
119
|
+
* int8_t_ FLG;
|
|
120
|
+
* int8_t BD;
|
|
121
|
+
* [ int64_t contentSize; ]
|
|
122
|
+
* int8_t HC;
|
|
123
|
+
*/
|
|
124
|
+
if (outlen < 4 + 3 || memcmp(outbuf, magic, 4)) {
|
|
125
|
+
rd_rkb_dbg(rkb, BROKER, "LZ4FIXDOWN",
|
|
126
|
+
"Unable to break legacy LZ4 framing "
|
|
127
|
+
"(%" PRIusz " bytes): invalid length or magic value",
|
|
128
|
+
outlen);
|
|
129
|
+
return RD_KAFKA_RESP_ERR__BAD_COMPRESSION;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
of = 4; /* past magic */
|
|
133
|
+
FLG = outbuf[of++];
|
|
134
|
+
of++; /* BD */
|
|
135
|
+
|
|
136
|
+
if ((FLG >> 3) & 1) /* contentSize */
|
|
137
|
+
of += 8;
|
|
138
|
+
|
|
139
|
+
if (of >= outlen) {
|
|
140
|
+
rd_rkb_dbg(rkb, BROKER, "LZ4FIXUP",
|
|
141
|
+
"Unable to break legacy LZ4 framing "
|
|
142
|
+
"(%" PRIusz " bytes): requires %" PRIusz " bytes",
|
|
143
|
+
outlen, of);
|
|
144
|
+
return RD_KAFKA_RESP_ERR__BAD_COMPRESSION;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/* Header hash code */
|
|
148
|
+
HC = outbuf[of];
|
|
149
|
+
|
|
150
|
+
/* Calculate bad header hash code (include magic) */
|
|
151
|
+
bad_HC = (XXH32(outbuf, of, 0) >> 8) & 0xff;
|
|
152
|
+
|
|
153
|
+
if (HC != bad_HC)
|
|
154
|
+
outbuf[of] = bad_HC;
|
|
155
|
+
|
|
156
|
+
return RD_KAFKA_RESP_ERR_NO_ERROR;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* @brief Decompress LZ4F (framed) data.
|
|
163
|
+
* Kafka broker versions <0.10.0.0 (MsgVersion 0) breaks LZ4 framing
|
|
164
|
+
* checksum, if \p proper_hc we assume the checksum is okay
|
|
165
|
+
* (broker version >=0.10.0, MsgVersion >= 1) else we fix it up.
|
|
166
|
+
*
|
|
167
|
+
* @remark May modify \p inbuf (if not \p proper_hc)
|
|
168
|
+
*/
|
|
169
|
+
rd_kafka_resp_err_t rd_kafka_lz4_decompress(rd_kafka_broker_t *rkb,
|
|
170
|
+
int proper_hc,
|
|
171
|
+
int64_t Offset,
|
|
172
|
+
char *inbuf,
|
|
173
|
+
size_t inlen,
|
|
174
|
+
void **outbuf,
|
|
175
|
+
size_t *outlenp) {
|
|
176
|
+
LZ4F_errorCode_t code;
|
|
177
|
+
LZ4F_decompressionContext_t dctx;
|
|
178
|
+
LZ4F_frameInfo_t fi;
|
|
179
|
+
size_t in_sz, out_sz;
|
|
180
|
+
size_t in_of, out_of;
|
|
181
|
+
size_t r;
|
|
182
|
+
size_t estimated_uncompressed_size;
|
|
183
|
+
size_t outlen;
|
|
184
|
+
rd_kafka_resp_err_t err = RD_KAFKA_RESP_ERR_NO_ERROR;
|
|
185
|
+
char *out = NULL;
|
|
186
|
+
|
|
187
|
+
*outbuf = NULL;
|
|
188
|
+
|
|
189
|
+
code = LZ4F_createDecompressionContext(&dctx, LZ4F_VERSION);
|
|
190
|
+
if (LZ4F_isError(code)) {
|
|
191
|
+
rd_rkb_dbg(rkb, BROKER, "LZ4DECOMPR",
|
|
192
|
+
"Unable to create LZ4 decompression context: %s",
|
|
193
|
+
LZ4F_getErrorName(code));
|
|
194
|
+
return RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
if (!proper_hc) {
|
|
198
|
+
/* The original/legacy LZ4 framing in Kafka was buggy and
|
|
199
|
+
* calculated the LZ4 framing header hash code (HC) incorrectly.
|
|
200
|
+
* We do a fix-up of it here. */
|
|
201
|
+
if ((err = rd_kafka_lz4_decompress_fixup_bad_framing(rkb, inbuf,
|
|
202
|
+
inlen)))
|
|
203
|
+
goto done;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
in_sz = inlen;
|
|
207
|
+
r = LZ4F_getFrameInfo(dctx, &fi, (const void *)inbuf, &in_sz);
|
|
208
|
+
if (LZ4F_isError(r)) {
|
|
209
|
+
rd_rkb_dbg(rkb, BROKER, "LZ4DECOMPR",
|
|
210
|
+
"Failed to gather LZ4 frame info: %s",
|
|
211
|
+
LZ4F_getErrorName(r));
|
|
212
|
+
err = RD_KAFKA_RESP_ERR__BAD_COMPRESSION;
|
|
213
|
+
goto done;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/* If uncompressed size is unknown or out of bounds, use a sane
|
|
217
|
+
* default (4x compression) and reallocate if needed
|
|
218
|
+
* More info on max size: http://stackoverflow.com/a/25751871/1821055
|
|
219
|
+
* More info on lz4 compression ratios seen for different data sets:
|
|
220
|
+
* http://dev.ti.com/tirex/content/simplelink_msp432p4_sdk_1_50_00_12/docs/lz4/users_guide/docguide.llQpgm/benchmarking.html
|
|
221
|
+
*/
|
|
222
|
+
if (fi.contentSize == 0 || fi.contentSize > inlen * 255) {
|
|
223
|
+
estimated_uncompressed_size = RD_MIN(
|
|
224
|
+
inlen * 4, (size_t)(rkb->rkb_rk->rk_conf.max_msg_size));
|
|
225
|
+
} else {
|
|
226
|
+
estimated_uncompressed_size = (size_t)fi.contentSize;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/* Allocate output buffer, we increase this later if needed,
|
|
230
|
+
* but hopefully not. */
|
|
231
|
+
out = rd_malloc(estimated_uncompressed_size);
|
|
232
|
+
if (!out) {
|
|
233
|
+
rd_rkb_log(rkb, LOG_WARNING, "LZ4DEC",
|
|
234
|
+
"Unable to allocate decompression "
|
|
235
|
+
"buffer of %" PRIusz " bytes: %s",
|
|
236
|
+
estimated_uncompressed_size, rd_strerror(errno));
|
|
237
|
+
err = RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE;
|
|
238
|
+
goto done;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
/* Decompress input buffer to output buffer until input is exhausted. */
|
|
243
|
+
outlen = estimated_uncompressed_size;
|
|
244
|
+
in_of = in_sz;
|
|
245
|
+
out_of = 0;
|
|
246
|
+
while (in_of < inlen) {
|
|
247
|
+
out_sz = outlen - out_of;
|
|
248
|
+
in_sz = inlen - in_of;
|
|
249
|
+
r = LZ4F_decompress(dctx, out + out_of, &out_sz, inbuf + in_of,
|
|
250
|
+
&in_sz, NULL);
|
|
251
|
+
if (unlikely(LZ4F_isError(r))) {
|
|
252
|
+
rd_rkb_dbg(rkb, MSG, "LZ4DEC",
|
|
253
|
+
"Failed to LZ4 (%s HC) decompress message "
|
|
254
|
+
"(offset %" PRId64
|
|
255
|
+
") at "
|
|
256
|
+
"payload offset %" PRIusz "/%" PRIusz ": %s",
|
|
257
|
+
proper_hc ? "proper" : "legacy", Offset,
|
|
258
|
+
in_of, inlen, LZ4F_getErrorName(r));
|
|
259
|
+
err = RD_KAFKA_RESP_ERR__BAD_COMPRESSION;
|
|
260
|
+
goto done;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
rd_kafka_assert(NULL, out_of + out_sz <= outlen &&
|
|
264
|
+
in_of + in_sz <= inlen);
|
|
265
|
+
out_of += out_sz;
|
|
266
|
+
in_of += in_sz;
|
|
267
|
+
if (r == 0)
|
|
268
|
+
break;
|
|
269
|
+
|
|
270
|
+
/* Need to grow output buffer, this shouldn't happen if
|
|
271
|
+
* contentSize was properly set. */
|
|
272
|
+
if (unlikely(out_of == outlen)) {
|
|
273
|
+
char *tmp;
|
|
274
|
+
/* Grow exponentially with some factor > 1 (using 1.75)
|
|
275
|
+
* for amortized O(1) copying */
|
|
276
|
+
size_t extra = RD_MAX(outlen * 3 / 4, 1024);
|
|
277
|
+
|
|
278
|
+
rd_atomic64_add(&rkb->rkb_c.zbuf_grow, 1);
|
|
279
|
+
|
|
280
|
+
if (!(tmp = rd_realloc(out, outlen + extra))) {
|
|
281
|
+
rd_rkb_log(rkb, LOG_WARNING, "LZ4DEC",
|
|
282
|
+
"Unable to grow decompression "
|
|
283
|
+
"buffer to %" PRIusz "+%" PRIusz
|
|
284
|
+
" bytes: %s",
|
|
285
|
+
outlen, extra, rd_strerror(errno));
|
|
286
|
+
err = RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE;
|
|
287
|
+
goto done;
|
|
288
|
+
}
|
|
289
|
+
out = tmp;
|
|
290
|
+
outlen += extra;
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
if (in_of < inlen) {
|
|
296
|
+
rd_rkb_dbg(rkb, MSG, "LZ4DEC",
|
|
297
|
+
"Failed to LZ4 (%s HC) decompress message "
|
|
298
|
+
"(offset %" PRId64
|
|
299
|
+
"): "
|
|
300
|
+
"%" PRIusz " (out of %" PRIusz ") bytes remaining",
|
|
301
|
+
proper_hc ? "proper" : "legacy", Offset,
|
|
302
|
+
inlen - in_of, inlen);
|
|
303
|
+
err = RD_KAFKA_RESP_ERR__BAD_MSG;
|
|
304
|
+
goto done;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
*outbuf = out;
|
|
308
|
+
*outlenp = out_of;
|
|
309
|
+
|
|
310
|
+
done:
|
|
311
|
+
code = LZ4F_freeDecompressionContext(dctx);
|
|
312
|
+
if (LZ4F_isError(code)) {
|
|
313
|
+
rd_rkb_dbg(rkb, BROKER, "LZ4DECOMPR",
|
|
314
|
+
"Failed to close LZ4 compression context: %s",
|
|
315
|
+
LZ4F_getErrorName(code));
|
|
316
|
+
err = RD_KAFKA_RESP_ERR__BAD_COMPRESSION;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
if (err && out)
|
|
320
|
+
rd_free(out);
|
|
321
|
+
|
|
322
|
+
return err;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
/**
|
|
327
|
+
* Allocate space for \p *outbuf and compress all \p iovlen buffers in \p iov.
|
|
328
|
+
* @param proper_hc generate a proper HC (checksum) (kafka >=0.10.0.0,
|
|
329
|
+
* MsgVersion >= 1)
|
|
330
|
+
* @param MessageSetSize indicates (at least) full uncompressed data size,
|
|
331
|
+
* possibly including MessageSet fields that will not
|
|
332
|
+
* be compressed.
|
|
333
|
+
*
|
|
334
|
+
* @returns allocated buffer in \p *outbuf, length in \p *outlenp.
|
|
335
|
+
*/
|
|
336
|
+
rd_kafka_resp_err_t rd_kafka_lz4_compress(rd_kafka_broker_t *rkb,
|
|
337
|
+
int proper_hc,
|
|
338
|
+
int comp_level,
|
|
339
|
+
rd_slice_t *slice,
|
|
340
|
+
void **outbuf,
|
|
341
|
+
size_t *outlenp) {
|
|
342
|
+
LZ4F_compressionContext_t cctx;
|
|
343
|
+
LZ4F_errorCode_t r;
|
|
344
|
+
rd_kafka_resp_err_t err = RD_KAFKA_RESP_ERR_NO_ERROR;
|
|
345
|
+
size_t len = rd_slice_remains(slice);
|
|
346
|
+
size_t out_sz;
|
|
347
|
+
size_t out_of = 0;
|
|
348
|
+
char *out;
|
|
349
|
+
const void *p;
|
|
350
|
+
size_t rlen;
|
|
351
|
+
|
|
352
|
+
/* Required by Kafka */
|
|
353
|
+
const LZ4F_preferences_t prefs = {
|
|
354
|
+
.frameInfo = {.blockMode = LZ4F_blockIndependent},
|
|
355
|
+
.compressionLevel = comp_level};
|
|
356
|
+
|
|
357
|
+
*outbuf = NULL;
|
|
358
|
+
|
|
359
|
+
out_sz = LZ4F_compressBound(len, NULL) + 1000;
|
|
360
|
+
if (LZ4F_isError(out_sz)) {
|
|
361
|
+
rd_rkb_dbg(rkb, MSG, "LZ4COMPR",
|
|
362
|
+
"Unable to query LZ4 compressed size "
|
|
363
|
+
"(for %" PRIusz " uncompressed bytes): %s",
|
|
364
|
+
len, LZ4F_getErrorName(out_sz));
|
|
365
|
+
return RD_KAFKA_RESP_ERR__BAD_MSG;
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
out = rd_malloc(out_sz);
|
|
369
|
+
if (!out) {
|
|
370
|
+
rd_rkb_dbg(rkb, MSG, "LZ4COMPR",
|
|
371
|
+
"Unable to allocate output buffer "
|
|
372
|
+
"(%" PRIusz " bytes): %s",
|
|
373
|
+
out_sz, rd_strerror(errno));
|
|
374
|
+
return RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE;
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
r = LZ4F_createCompressionContext(&cctx, LZ4F_VERSION);
|
|
378
|
+
if (LZ4F_isError(r)) {
|
|
379
|
+
rd_rkb_dbg(rkb, MSG, "LZ4COMPR",
|
|
380
|
+
"Unable to create LZ4 compression context: %s",
|
|
381
|
+
LZ4F_getErrorName(r));
|
|
382
|
+
rd_free(out);
|
|
383
|
+
return RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE;
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
r = LZ4F_compressBegin(cctx, out, out_sz, &prefs);
|
|
387
|
+
if (LZ4F_isError(r)) {
|
|
388
|
+
rd_rkb_dbg(rkb, MSG, "LZ4COMPR",
|
|
389
|
+
"Unable to begin LZ4 compression "
|
|
390
|
+
"(out buffer is %" PRIusz " bytes): %s",
|
|
391
|
+
out_sz, LZ4F_getErrorName(r));
|
|
392
|
+
err = RD_KAFKA_RESP_ERR__BAD_COMPRESSION;
|
|
393
|
+
goto done;
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
out_of += r;
|
|
397
|
+
|
|
398
|
+
while ((rlen = rd_slice_reader(slice, &p))) {
|
|
399
|
+
rd_assert(out_of < out_sz);
|
|
400
|
+
r = LZ4F_compressUpdate(cctx, out + out_of, out_sz - out_of, p,
|
|
401
|
+
rlen, NULL);
|
|
402
|
+
if (unlikely(LZ4F_isError(r))) {
|
|
403
|
+
rd_rkb_dbg(rkb, MSG, "LZ4COMPR",
|
|
404
|
+
"LZ4 compression failed "
|
|
405
|
+
"(at of %" PRIusz
|
|
406
|
+
" bytes, with "
|
|
407
|
+
"%" PRIusz
|
|
408
|
+
" bytes remaining in out buffer): "
|
|
409
|
+
"%s",
|
|
410
|
+
rlen, out_sz - out_of, LZ4F_getErrorName(r));
|
|
411
|
+
err = RD_KAFKA_RESP_ERR__BAD_COMPRESSION;
|
|
412
|
+
goto done;
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
out_of += r;
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
rd_assert(rd_slice_remains(slice) == 0);
|
|
419
|
+
|
|
420
|
+
r = LZ4F_compressEnd(cctx, out + out_of, out_sz - out_of, NULL);
|
|
421
|
+
if (unlikely(LZ4F_isError(r))) {
|
|
422
|
+
rd_rkb_dbg(rkb, MSG, "LZ4COMPR",
|
|
423
|
+
"Failed to finalize LZ4 compression "
|
|
424
|
+
"of %" PRIusz " bytes: %s",
|
|
425
|
+
len, LZ4F_getErrorName(r));
|
|
426
|
+
err = RD_KAFKA_RESP_ERR__BAD_COMPRESSION;
|
|
427
|
+
goto done;
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
out_of += r;
|
|
431
|
+
|
|
432
|
+
/* For the broken legacy framing we need to mess up the header checksum
|
|
433
|
+
* so that the Kafka client / broker code accepts it. */
|
|
434
|
+
if (!proper_hc)
|
|
435
|
+
if ((err =
|
|
436
|
+
rd_kafka_lz4_compress_break_framing(rkb, out, out_of)))
|
|
437
|
+
goto done;
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
*outbuf = out;
|
|
441
|
+
*outlenp = out_of;
|
|
442
|
+
|
|
443
|
+
done:
|
|
444
|
+
LZ4F_freeCompressionContext(cctx);
|
|
445
|
+
|
|
446
|
+
if (err)
|
|
447
|
+
rd_free(out);
|
|
448
|
+
|
|
449
|
+
return err;
|
|
450
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* librdkafka - Apache Kafka C library
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2017-2022, Magnus Edenhill
|
|
5
|
+
* All rights reserved.
|
|
6
|
+
*
|
|
7
|
+
* Redistribution and use in source and binary forms, with or without
|
|
8
|
+
* modification, are permitted provided that the following conditions are met:
|
|
9
|
+
*
|
|
10
|
+
* 1. Redistributions of source code must retain the above copyright notice,
|
|
11
|
+
* this list of conditions and the following disclaimer.
|
|
12
|
+
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
13
|
+
* this list of conditions and the following disclaimer in the documentation
|
|
14
|
+
* and/or other materials provided with the distribution.
|
|
15
|
+
*
|
|
16
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
17
|
+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
18
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
19
|
+
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
20
|
+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
21
|
+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
22
|
+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
23
|
+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
24
|
+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
25
|
+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
26
|
+
* POSSIBILITY OF SUCH DAMAGE.
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
#ifndef _RDKAFKA_LZ4_H_
|
|
31
|
+
#define _RDKAFKA_LZ4_H_
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
rd_kafka_resp_err_t rd_kafka_lz4_decompress(rd_kafka_broker_t *rkb,
|
|
35
|
+
int proper_hc,
|
|
36
|
+
int64_t Offset,
|
|
37
|
+
char *inbuf,
|
|
38
|
+
size_t inlen,
|
|
39
|
+
void **outbuf,
|
|
40
|
+
size_t *outlenp);
|
|
41
|
+
|
|
42
|
+
rd_kafka_resp_err_t rd_kafka_lz4_compress(rd_kafka_broker_t *rkb,
|
|
43
|
+
int proper_hc,
|
|
44
|
+
int comp_level,
|
|
45
|
+
rd_slice_t *slice,
|
|
46
|
+
void **outbuf,
|
|
47
|
+
size_t *outlenp);
|
|
48
|
+
|
|
49
|
+
#endif /* _RDKAFKA_LZ4_H_ */
|