@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,584 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* librd - Rapid Development C library
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2012-2022, Magnus Edenhill
|
|
5
|
+
* 2023, Confluent Inc.
|
|
6
|
+
* All rights reserved.
|
|
7
|
+
*
|
|
8
|
+
* Redistribution and use in source and binary forms, with or without
|
|
9
|
+
* modification, are permitted provided that the following conditions are met:
|
|
10
|
+
*
|
|
11
|
+
* 1. Redistributions of source code must retain the above copyright notice,
|
|
12
|
+
* this list of conditions and the following disclaimer.
|
|
13
|
+
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
14
|
+
* this list of conditions and the following disclaimer in the documentation
|
|
15
|
+
* and/or other materials provided with the distribution.
|
|
16
|
+
*
|
|
17
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
18
|
+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
19
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
20
|
+
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
21
|
+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
22
|
+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
23
|
+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
24
|
+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
25
|
+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
26
|
+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
27
|
+
* POSSIBILITY OF SUCH DAMAGE.
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
#ifndef _RD_H_
|
|
32
|
+
#define _RD_H_
|
|
33
|
+
|
|
34
|
+
#ifndef _WIN32
|
|
35
|
+
#ifndef _GNU_SOURCE
|
|
36
|
+
#define _GNU_SOURCE /* for strndup() */
|
|
37
|
+
#endif
|
|
38
|
+
|
|
39
|
+
#if defined(__APPLE__) && !defined(_DARWIN_C_SOURCE)
|
|
40
|
+
#define _DARWIN_C_SOURCE /* for strlcpy, pthread_setname_np, etc */
|
|
41
|
+
#endif
|
|
42
|
+
|
|
43
|
+
#define __need_IOV_MAX
|
|
44
|
+
#ifndef _POSIX_C_SOURCE
|
|
45
|
+
#define _POSIX_C_SOURCE 200809L /* for timespec on solaris */
|
|
46
|
+
#endif
|
|
47
|
+
#endif
|
|
48
|
+
|
|
49
|
+
#include <stdio.h>
|
|
50
|
+
#include <stdlib.h>
|
|
51
|
+
#include <string.h>
|
|
52
|
+
#include <errno.h>
|
|
53
|
+
#include <time.h>
|
|
54
|
+
#include <assert.h>
|
|
55
|
+
#include <limits.h>
|
|
56
|
+
#include <sys/stat.h>
|
|
57
|
+
|
|
58
|
+
#include "tinycthread.h"
|
|
59
|
+
#include "rdsysqueue.h"
|
|
60
|
+
|
|
61
|
+
#ifdef _WIN32
|
|
62
|
+
/* Visual Studio */
|
|
63
|
+
#include "win32_config.h"
|
|
64
|
+
#else
|
|
65
|
+
/* POSIX / UNIX based systems */
|
|
66
|
+
#include "../config.h" /* mklove output */
|
|
67
|
+
#endif
|
|
68
|
+
|
|
69
|
+
#ifdef _WIN32
|
|
70
|
+
/* Win32/Visual Studio */
|
|
71
|
+
#include "rdwin32.h"
|
|
72
|
+
|
|
73
|
+
#else
|
|
74
|
+
/* POSIX / UNIX based systems */
|
|
75
|
+
#include "rdposix.h"
|
|
76
|
+
#endif
|
|
77
|
+
|
|
78
|
+
#include "rdtypes.h"
|
|
79
|
+
|
|
80
|
+
#if WITH_SYSLOG
|
|
81
|
+
#include <syslog.h>
|
|
82
|
+
#else
|
|
83
|
+
#define LOG_EMERG 0
|
|
84
|
+
#define LOG_ALERT 1
|
|
85
|
+
#define LOG_CRIT 2
|
|
86
|
+
#define LOG_ERR 3
|
|
87
|
+
#define LOG_WARNING 4
|
|
88
|
+
#define LOG_NOTICE 5
|
|
89
|
+
#define LOG_INFO 6
|
|
90
|
+
#define LOG_DEBUG 7
|
|
91
|
+
#endif
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
/* Debug assert, only enabled with --enable-devel */
|
|
95
|
+
#if ENABLE_DEVEL == 1
|
|
96
|
+
#define rd_dassert(cond) rd_assert(cond)
|
|
97
|
+
#else
|
|
98
|
+
#define rd_dassert(cond) \
|
|
99
|
+
do { \
|
|
100
|
+
} while (0)
|
|
101
|
+
#endif
|
|
102
|
+
|
|
103
|
+
#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__)
|
|
104
|
+
/** Function attribute to indicate that a sentinel NULL is required at the
|
|
105
|
+
* end of the va-arg input list. */
|
|
106
|
+
#define RD_SENTINEL __attribute__((__sentinel__))
|
|
107
|
+
#else
|
|
108
|
+
#define RD_SENTINEL
|
|
109
|
+
#endif
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
/** Assert if reached */
|
|
113
|
+
#define RD_NOTREACHED() rd_assert(!*"/* NOTREACHED */ violated")
|
|
114
|
+
|
|
115
|
+
/** Assert if reached */
|
|
116
|
+
#define RD_BUG(...) \
|
|
117
|
+
do { \
|
|
118
|
+
fprintf(stderr, \
|
|
119
|
+
"INTERNAL ERROR: librdkafka %s:%d: ", __FUNCTION__, \
|
|
120
|
+
__LINE__); \
|
|
121
|
+
fprintf(stderr, __VA_ARGS__); \
|
|
122
|
+
fprintf(stderr, "\n"); \
|
|
123
|
+
rd_assert(!*"INTERNAL ERROR IN LIBRDKAFKA"); \
|
|
124
|
+
} while (0)
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Allocator wrappers.
|
|
130
|
+
* We serve under the premise that if a (small) memory
|
|
131
|
+
* allocation fails all hope is lost and the application
|
|
132
|
+
* will fail anyway, so no need to handle it handsomely.
|
|
133
|
+
*/
|
|
134
|
+
static RD_INLINE RD_UNUSED void *rd_calloc(size_t num, size_t sz) {
|
|
135
|
+
void *p = calloc(num, sz);
|
|
136
|
+
rd_assert(p);
|
|
137
|
+
return p;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
static RD_INLINE RD_UNUSED void *rd_malloc(size_t sz) {
|
|
141
|
+
void *p = malloc(sz);
|
|
142
|
+
rd_assert(p);
|
|
143
|
+
return p;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
static RD_INLINE RD_UNUSED void *rd_realloc(void *ptr, size_t sz) {
|
|
147
|
+
void *p = realloc(ptr, sz);
|
|
148
|
+
rd_assert(p);
|
|
149
|
+
return p;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
static RD_INLINE RD_UNUSED void rd_free(void *ptr) {
|
|
153
|
+
free(ptr);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
static RD_INLINE RD_UNUSED char *rd_strdup(const char *s) {
|
|
157
|
+
#ifndef _WIN32
|
|
158
|
+
char *n = strdup(s);
|
|
159
|
+
#else
|
|
160
|
+
char *n = _strdup(s);
|
|
161
|
+
#endif
|
|
162
|
+
rd_assert(n);
|
|
163
|
+
return n;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
static RD_INLINE RD_UNUSED char *rd_strndup(const char *s, size_t len) {
|
|
167
|
+
#if HAVE_STRNDUP
|
|
168
|
+
char *n = strndup(s, len);
|
|
169
|
+
rd_assert(n);
|
|
170
|
+
#else
|
|
171
|
+
char *n = (char *)rd_malloc(len + 1);
|
|
172
|
+
rd_assert(n);
|
|
173
|
+
memcpy(n, s, len);
|
|
174
|
+
n[len] = '\0';
|
|
175
|
+
#endif
|
|
176
|
+
return n;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
/*
|
|
182
|
+
* Portability
|
|
183
|
+
*/
|
|
184
|
+
|
|
185
|
+
#ifdef strndupa
|
|
186
|
+
#define rd_strndupa(DESTPTR, PTR, LEN) (*(DESTPTR) = strndupa(PTR, LEN))
|
|
187
|
+
#else
|
|
188
|
+
#define rd_strndupa(DESTPTR, PTR, LEN) \
|
|
189
|
+
do { \
|
|
190
|
+
const char *_src = (PTR); \
|
|
191
|
+
size_t _srclen = (LEN); \
|
|
192
|
+
char *_dst = rd_alloca(_srclen + 1); \
|
|
193
|
+
memcpy(_dst, _src, _srclen); \
|
|
194
|
+
_dst[_srclen] = '\0'; \
|
|
195
|
+
*(DESTPTR) = _dst; \
|
|
196
|
+
} while (0)
|
|
197
|
+
#endif
|
|
198
|
+
|
|
199
|
+
#ifdef strdupa
|
|
200
|
+
#define rd_strdupa(DESTPTR, PTR) (*(DESTPTR) = strdupa(PTR))
|
|
201
|
+
#else
|
|
202
|
+
#define rd_strdupa(DESTPTR, PTR) \
|
|
203
|
+
do { \
|
|
204
|
+
const char *_src1 = (PTR); \
|
|
205
|
+
size_t _srclen1 = strlen(_src1); \
|
|
206
|
+
rd_strndupa(DESTPTR, _src1, _srclen1); \
|
|
207
|
+
} while (0)
|
|
208
|
+
#endif
|
|
209
|
+
|
|
210
|
+
#ifndef IOV_MAX
|
|
211
|
+
#ifdef __APPLE__
|
|
212
|
+
/* Some versions of MacOSX dont have IOV_MAX */
|
|
213
|
+
#define IOV_MAX 1024
|
|
214
|
+
#elif defined(_WIN32) || defined(__GNU__)
|
|
215
|
+
/* There is no IOV_MAX on MSVC or GNU but it is used internally in librdkafka */
|
|
216
|
+
#define IOV_MAX 1024
|
|
217
|
+
#else
|
|
218
|
+
#error "IOV_MAX not defined"
|
|
219
|
+
#endif
|
|
220
|
+
#endif
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
/* Round/align X upwards to STRIDE, which must be power of 2. */
|
|
224
|
+
#define RD_ROUNDUP(X, STRIDE) (((X) + ((STRIDE) - 1)) & ~(STRIDE - 1))
|
|
225
|
+
|
|
226
|
+
#define RD_ARRAY_SIZE(A) (sizeof((A)) / sizeof(*(A)))
|
|
227
|
+
#define RD_ARRAYSIZE(A) RD_ARRAY_SIZE(A)
|
|
228
|
+
#define RD_SIZEOF(TYPE, MEMBER) sizeof(((TYPE *)NULL)->MEMBER)
|
|
229
|
+
#define RD_OFFSETOF(TYPE, MEMBER) ((size_t) & (((TYPE *)NULL)->MEMBER))
|
|
230
|
+
/** Array foreach */
|
|
231
|
+
#define RD_ARRAY_FOREACH_INDEX(ELEM, ARRAY, INDEX) \
|
|
232
|
+
for ((INDEX = 0, (ELEM) = (ARRAY)[INDEX]); \
|
|
233
|
+
INDEX < RD_ARRAY_SIZE(ARRAY); \
|
|
234
|
+
(ELEM) = \
|
|
235
|
+
(++INDEX < RD_ARRAY_SIZE(ARRAY) ? (ARRAY)[INDEX] : (ELEM)))
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Returns the 'I'th array element from static sized array 'A'
|
|
239
|
+
* or NULL if 'I' is out of range.
|
|
240
|
+
* var-args is an optional prefix to provide the correct return type.
|
|
241
|
+
*/
|
|
242
|
+
#define RD_ARRAY_ELEM(A, I, ...) \
|
|
243
|
+
((unsigned int)(I) < RD_ARRAY_SIZE(A) ? __VA_ARGS__(A)[(I)] : NULL)
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
#define RD_STRINGIFY(X) #X
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
#define RD_MIN(a, b) ((a) < (b) ? (a) : (b))
|
|
251
|
+
#define RD_MAX(a, b) ((a) > (b) ? (a) : (b))
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* Cap an integer (of any type) to reside within the defined limit.
|
|
256
|
+
*/
|
|
257
|
+
#define RD_INT_CAP(val, low, hi) \
|
|
258
|
+
((val) < (low) ? low : ((val) > (hi) ? (hi) : (val)))
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
/**
|
|
263
|
+
* Allocate 'size' bytes, copy 'src', return pointer to new memory.
|
|
264
|
+
*
|
|
265
|
+
* Use rd_free() to free the returned pointer.
|
|
266
|
+
*/
|
|
267
|
+
static RD_INLINE RD_UNUSED void *rd_memdup(const void *src, size_t size) {
|
|
268
|
+
void *dst = rd_malloc(size);
|
|
269
|
+
memcpy(dst, src, size);
|
|
270
|
+
return dst;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* @brief Memset &OBJ to 0, does automatic sizeof(OBJ).
|
|
275
|
+
*/
|
|
276
|
+
#define RD_MEMZERO(OBJ) memset(&(OBJ), 0, sizeof(OBJ))
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
/**
|
|
280
|
+
* Generic refcnt interface
|
|
281
|
+
*/
|
|
282
|
+
|
|
283
|
+
#if !HAVE_ATOMICS_32
|
|
284
|
+
#define RD_REFCNT_USE_LOCKS 1
|
|
285
|
+
#endif
|
|
286
|
+
|
|
287
|
+
#ifdef RD_REFCNT_USE_LOCKS
|
|
288
|
+
typedef struct rd_refcnt_t {
|
|
289
|
+
mtx_t lock;
|
|
290
|
+
int v;
|
|
291
|
+
} rd_refcnt_t;
|
|
292
|
+
#else
|
|
293
|
+
typedef rd_atomic32_t rd_refcnt_t;
|
|
294
|
+
#endif
|
|
295
|
+
|
|
296
|
+
#ifdef RD_REFCNT_USE_LOCKS
|
|
297
|
+
static RD_INLINE RD_UNUSED int rd_refcnt_init(rd_refcnt_t *R, int v) {
|
|
298
|
+
int r;
|
|
299
|
+
mtx_init(&R->lock, mtx_plain);
|
|
300
|
+
mtx_lock(&R->lock);
|
|
301
|
+
r = R->v = v;
|
|
302
|
+
mtx_unlock(&R->lock);
|
|
303
|
+
return r;
|
|
304
|
+
}
|
|
305
|
+
#else
|
|
306
|
+
#define rd_refcnt_init(R, v) rd_atomic32_init(R, v)
|
|
307
|
+
#endif
|
|
308
|
+
|
|
309
|
+
#ifdef RD_REFCNT_USE_LOCKS
|
|
310
|
+
static RD_INLINE RD_UNUSED void rd_refcnt_destroy(rd_refcnt_t *R) {
|
|
311
|
+
mtx_lock(&R->lock);
|
|
312
|
+
rd_assert(R->v == 0);
|
|
313
|
+
mtx_unlock(&R->lock);
|
|
314
|
+
|
|
315
|
+
mtx_destroy(&R->lock);
|
|
316
|
+
}
|
|
317
|
+
#else
|
|
318
|
+
#define rd_refcnt_destroy(R) \
|
|
319
|
+
do { \
|
|
320
|
+
} while (0)
|
|
321
|
+
#endif
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
#ifdef RD_REFCNT_USE_LOCKS
|
|
325
|
+
static RD_INLINE RD_UNUSED int rd_refcnt_set(rd_refcnt_t *R, int v) {
|
|
326
|
+
int r;
|
|
327
|
+
mtx_lock(&R->lock);
|
|
328
|
+
r = R->v = v;
|
|
329
|
+
mtx_unlock(&R->lock);
|
|
330
|
+
return r;
|
|
331
|
+
}
|
|
332
|
+
#else
|
|
333
|
+
#define rd_refcnt_set(R, v) rd_atomic32_set(R, v)
|
|
334
|
+
#endif
|
|
335
|
+
|
|
336
|
+
|
|
337
|
+
#ifdef RD_REFCNT_USE_LOCKS
|
|
338
|
+
static RD_INLINE RD_UNUSED int rd_refcnt_add0(rd_refcnt_t *R) {
|
|
339
|
+
int r;
|
|
340
|
+
mtx_lock(&R->lock);
|
|
341
|
+
r = ++(R->v);
|
|
342
|
+
mtx_unlock(&R->lock);
|
|
343
|
+
return r;
|
|
344
|
+
}
|
|
345
|
+
#else
|
|
346
|
+
#define rd_refcnt_add0(R) rd_atomic32_add(R, 1)
|
|
347
|
+
#endif
|
|
348
|
+
|
|
349
|
+
static RD_INLINE RD_UNUSED int rd_refcnt_sub0(rd_refcnt_t *R) {
|
|
350
|
+
int r;
|
|
351
|
+
#ifdef RD_REFCNT_USE_LOCKS
|
|
352
|
+
mtx_lock(&R->lock);
|
|
353
|
+
r = --(R->v);
|
|
354
|
+
mtx_unlock(&R->lock);
|
|
355
|
+
#else
|
|
356
|
+
r = rd_atomic32_sub(R, 1);
|
|
357
|
+
#endif
|
|
358
|
+
if (r < 0)
|
|
359
|
+
rd_assert(!*"refcnt sub-zero");
|
|
360
|
+
return r;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
#ifdef RD_REFCNT_USE_LOCKS
|
|
364
|
+
static RD_INLINE RD_UNUSED int rd_refcnt_get(rd_refcnt_t *R) {
|
|
365
|
+
int r;
|
|
366
|
+
mtx_lock(&R->lock);
|
|
367
|
+
r = R->v;
|
|
368
|
+
mtx_unlock(&R->lock);
|
|
369
|
+
return r;
|
|
370
|
+
}
|
|
371
|
+
#else
|
|
372
|
+
#define rd_refcnt_get(R) rd_atomic32_get(R)
|
|
373
|
+
#endif
|
|
374
|
+
|
|
375
|
+
/**
|
|
376
|
+
* A wrapper for decreasing refcount and calling a destroy function
|
|
377
|
+
* when refcnt reaches 0.
|
|
378
|
+
*/
|
|
379
|
+
#define rd_refcnt_destroywrapper(REFCNT, DESTROY_CALL) \
|
|
380
|
+
do { \
|
|
381
|
+
if (rd_refcnt_sub(REFCNT) > 0) \
|
|
382
|
+
break; \
|
|
383
|
+
DESTROY_CALL; \
|
|
384
|
+
} while (0)
|
|
385
|
+
|
|
386
|
+
|
|
387
|
+
#define rd_refcnt_destroywrapper2(REFCNT, WHAT, DESTROY_CALL) \
|
|
388
|
+
do { \
|
|
389
|
+
if (rd_refcnt_sub2(REFCNT, WHAT) > 0) \
|
|
390
|
+
break; \
|
|
391
|
+
DESTROY_CALL; \
|
|
392
|
+
} while (0)
|
|
393
|
+
|
|
394
|
+
#if ENABLE_REFCNT_DEBUG
|
|
395
|
+
#define rd_refcnt_add_fl(FUNC, LINE, R) \
|
|
396
|
+
(fprintf(stderr, "REFCNT DEBUG: %-35s %d +1: %16p: %s:%d\n", #R, \
|
|
397
|
+
rd_refcnt_get(R), (R), (FUNC), (LINE)), \
|
|
398
|
+
rd_refcnt_add0(R))
|
|
399
|
+
|
|
400
|
+
#define rd_refcnt_add(R) rd_refcnt_add_fl(__FUNCTION__, __LINE__, (R))
|
|
401
|
+
|
|
402
|
+
#define rd_refcnt_add2(R, WHAT) \
|
|
403
|
+
do { \
|
|
404
|
+
fprintf(stderr, \
|
|
405
|
+
"REFCNT DEBUG: %-35s %d +1: %16p: %16s: %s:%d\n", #R, \
|
|
406
|
+
rd_refcnt_get(R), (R), WHAT, __FUNCTION__, __LINE__), \
|
|
407
|
+
rd_refcnt_add0(R); \
|
|
408
|
+
} while (0)
|
|
409
|
+
|
|
410
|
+
#define rd_refcnt_sub2(R, WHAT) \
|
|
411
|
+
(fprintf(stderr, "REFCNT DEBUG: %-35s %d -1: %16p: %16s: %s:%d\n", #R, \
|
|
412
|
+
rd_refcnt_get(R), (R), WHAT, __FUNCTION__, __LINE__), \
|
|
413
|
+
rd_refcnt_sub0(R))
|
|
414
|
+
|
|
415
|
+
#define rd_refcnt_sub(R) \
|
|
416
|
+
(fprintf(stderr, "REFCNT DEBUG: %-35s %d -1: %16p: %s:%d\n", #R, \
|
|
417
|
+
rd_refcnt_get(R), (R), __FUNCTION__, __LINE__), \
|
|
418
|
+
rd_refcnt_sub0(R))
|
|
419
|
+
|
|
420
|
+
#else
|
|
421
|
+
#define rd_refcnt_add_fl(FUNC, LINE, R) rd_refcnt_add0(R)
|
|
422
|
+
#define rd_refcnt_add(R) rd_refcnt_add0(R)
|
|
423
|
+
#define rd_refcnt_sub(R) rd_refcnt_sub0(R)
|
|
424
|
+
#endif
|
|
425
|
+
|
|
426
|
+
|
|
427
|
+
|
|
428
|
+
#define RD_IF_FREE(PTR, FUNC) \
|
|
429
|
+
do { \
|
|
430
|
+
if ((PTR)) \
|
|
431
|
+
FUNC(PTR); \
|
|
432
|
+
} while (0)
|
|
433
|
+
|
|
434
|
+
|
|
435
|
+
#define RD_INTERFACE_CALL(i, name, ...) (i->name(i->opaque, __VA_ARGS__))
|
|
436
|
+
|
|
437
|
+
#define RD_CEIL_INTEGER_DIVISION(X, DEN) (((X) + ((DEN) - 1)) / (DEN))
|
|
438
|
+
|
|
439
|
+
/**
|
|
440
|
+
* @brief Utility types to hold memory,size tuple.
|
|
441
|
+
*/
|
|
442
|
+
|
|
443
|
+
typedef struct rd_chariov_s {
|
|
444
|
+
char *ptr;
|
|
445
|
+
size_t size;
|
|
446
|
+
} rd_chariov_t;
|
|
447
|
+
|
|
448
|
+
/**
|
|
449
|
+
* @brief Read the file at \p file_path in binary mode and return its contents.
|
|
450
|
+
* The returned buffer is NULL-terminated,
|
|
451
|
+
* the size parameter will contain the actual file size.
|
|
452
|
+
*
|
|
453
|
+
* @param file_path Path to the file to read.
|
|
454
|
+
* @param size Pointer to store the file size (optional).
|
|
455
|
+
* @param max_size Maximum file size to read (0 for no limit) (optional).
|
|
456
|
+
*
|
|
457
|
+
* @returns Newly allocated buffer containing the file contents.
|
|
458
|
+
* NULL on error (file not found, too large, etc).
|
|
459
|
+
*
|
|
460
|
+
* @remark The returned pointer ownership is transferred to the caller.
|
|
461
|
+
*
|
|
462
|
+
* @locality Any thread
|
|
463
|
+
*/
|
|
464
|
+
static RD_INLINE RD_UNUSED char *
|
|
465
|
+
rd_file_read(const char *file_path, size_t *size, size_t max_size) {
|
|
466
|
+
FILE *file;
|
|
467
|
+
char *buf = NULL;
|
|
468
|
+
size_t file_size;
|
|
469
|
+
size_t read_size;
|
|
470
|
+
if (!size)
|
|
471
|
+
size = &read_size;
|
|
472
|
+
|
|
473
|
+
#ifndef _WIN32
|
|
474
|
+
file = fopen(file_path, "rb");
|
|
475
|
+
#else
|
|
476
|
+
file = NULL;
|
|
477
|
+
errno = fopen_s(&file, file_path, "rb");
|
|
478
|
+
#endif
|
|
479
|
+
if (!file)
|
|
480
|
+
return NULL;
|
|
481
|
+
|
|
482
|
+
if (fseek(file, 0, SEEK_END) != 0)
|
|
483
|
+
goto err;
|
|
484
|
+
|
|
485
|
+
file_size = (size_t)ftell(file);
|
|
486
|
+
if (file_size < 0)
|
|
487
|
+
goto err;
|
|
488
|
+
|
|
489
|
+
if (fseek(file, 0, SEEK_SET) != 0)
|
|
490
|
+
goto err;
|
|
491
|
+
|
|
492
|
+
/* Check if file is too large */
|
|
493
|
+
if (max_size > 0 && file_size > max_size)
|
|
494
|
+
goto err;
|
|
495
|
+
|
|
496
|
+
/* Allocate buffer with extra byte for NULL terminator */
|
|
497
|
+
buf = (char *)rd_malloc(file_size + 1);
|
|
498
|
+
read_size = fread(buf, 1, file_size, file);
|
|
499
|
+
|
|
500
|
+
if (read_size != file_size)
|
|
501
|
+
goto err;
|
|
502
|
+
|
|
503
|
+
/* NULL terminate the buffer */
|
|
504
|
+
buf[file_size] = '\0';
|
|
505
|
+
*size = file_size;
|
|
506
|
+
fclose(file);
|
|
507
|
+
return buf;
|
|
508
|
+
err:
|
|
509
|
+
fclose(file);
|
|
510
|
+
if (buf)
|
|
511
|
+
rd_free(buf);
|
|
512
|
+
return NULL;
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
static RD_INLINE RD_UNUSED FILE *
|
|
516
|
+
rd_file_mkstemp(const char *prefix,
|
|
517
|
+
const char *mode,
|
|
518
|
+
char *tempfile_path_out,
|
|
519
|
+
size_t tempfile_path_out_size) {
|
|
520
|
+
FILE *tempfile;
|
|
521
|
+
|
|
522
|
+
#ifdef _WIN32
|
|
523
|
+
char tempfolder_path[MAX_PATH];
|
|
524
|
+
char tempfile_path[MAX_PATH];
|
|
525
|
+
if (!GetTempPathA(MAX_PATH, tempfolder_path))
|
|
526
|
+
return NULL; /* Failed to get temp folder path */
|
|
527
|
+
|
|
528
|
+
|
|
529
|
+
if (!GetTempFileNameA(tempfolder_path, "TMP", 1, tempfile_path))
|
|
530
|
+
return NULL; /* Failed to create temp file name */
|
|
531
|
+
|
|
532
|
+
tempfile = fopen(tempfile_path, mode);
|
|
533
|
+
#else
|
|
534
|
+
int tempfile_fd;
|
|
535
|
+
char tempfile_path[512];
|
|
536
|
+
rd_snprintf(tempfile_path, sizeof(tempfile_path), "/tmp/%sXXXXXX",
|
|
537
|
+
prefix);
|
|
538
|
+
tempfile_fd = mkstemp(tempfile_path);
|
|
539
|
+
if (tempfile_fd < 0)
|
|
540
|
+
return NULL;
|
|
541
|
+
|
|
542
|
+
tempfile = fdopen(tempfile_fd, mode);
|
|
543
|
+
#endif
|
|
544
|
+
|
|
545
|
+
if (!tempfile)
|
|
546
|
+
return NULL;
|
|
547
|
+
|
|
548
|
+
if (tempfile_path_out)
|
|
549
|
+
rd_snprintf(tempfile_path_out, tempfile_path_out_size, "%s",
|
|
550
|
+
tempfile_path);
|
|
551
|
+
return tempfile;
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
/**
|
|
555
|
+
* @brief Retrive stat for a \p path .
|
|
556
|
+
*
|
|
557
|
+
* @param path Path to the file or directory.
|
|
558
|
+
* @param is_dir Pointer to store if the \p path is a directory (optional).
|
|
559
|
+
*
|
|
560
|
+
* @return `rd_true` if the path exists.
|
|
561
|
+
*/
|
|
562
|
+
static RD_INLINE RD_UNUSED rd_bool_t rd_file_stat(const char *path,
|
|
563
|
+
rd_bool_t *is_dir) {
|
|
564
|
+
#ifdef _WIN32
|
|
565
|
+
struct _stat st;
|
|
566
|
+
if (_stat(path, &st) == 0) {
|
|
567
|
+
if (is_dir)
|
|
568
|
+
*is_dir = st.st_mode & S_IFDIR;
|
|
569
|
+
return rd_true;
|
|
570
|
+
}
|
|
571
|
+
#else
|
|
572
|
+
struct stat st;
|
|
573
|
+
if (stat(path, &st) == 0) {
|
|
574
|
+
if (is_dir)
|
|
575
|
+
*is_dir = S_ISDIR(st.st_mode);
|
|
576
|
+
return rd_true;
|
|
577
|
+
}
|
|
578
|
+
#endif
|
|
579
|
+
if (is_dir)
|
|
580
|
+
*is_dir = rd_false;
|
|
581
|
+
return rd_false;
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
#endif /* _RD_H_ */
|