Native binaries bundles as deb/rpm/exe
kafkacat is a great utility!
But it is not as popular as it could be because of a simple fact - it is damn hard to get proper binaries for your platform.
kafkacat is a tool, not a library, so why is it distributed only as source code here on GitHub?
I am not an expert in this, but I already spent days trying to get proper builds for Ubuntu Linux and for Windows.
The issues, I already had to face:
-
kafkacat, installable from Ubuntu official repositories, is only version 1.5.0-1.1 (current 1.6.0-1), and it lacks support for Avro and Schema Registry - It is not easy to build
kafkacaton Ubuntu yourself. When you useconfigurescript, it lacks a lot of requirements. When you go forbootstrap.shsctipt, it is not easy either - it took me several hours to get it, that I have to install these packages to be able to build the project:sudo apt install pkg-config build-essential cmake libtool libssl-dev zlib1g-dev libzstd-dev libsasl2-dev libjansson-dev libcurl4-openssl-dev. Which was not mentioned in the "how-to build" section. - When you finally build the application with
bootstrap.sh, the dependancies are linked statically, which is probably not the best and definitely not a reusable way. Also, yourkafkacatbuild is not integrated with the system, you have to add its location toPATHmanually and maintain it there. - It is even worse when it comes to Windows - first, you have to download NuGet (a package manager tool for .NET), with which you hardly is familiar. Then, you will need a compiler for the
win32build. And this has to be Visual C++ Build Tools 14 (for Visual Studio 2015) exactly, because another version (i.e. the current one - for Visual Studio 2019) of the build tools fails in the middle of the build process. - When you finally build the application for Windows, you realize it's only version 1.4.0 (current 1.6.0-1). After some time, I found that this must be adjusted manually in
win32_config.h. After you do so, you get the version 1.6.0, but it still lacks support for Avro and Schema Registry.
What would be really great, if we were able to download the most current binary bundles with proper support of all features (JSON, Avro, Schema Registry at the moment I am writing this here) directly from GitHub:
- As
debpackage for Debian-based systems such as Debian Linux, Ubuntu Linux, etc. - As
rpmpackage for RPM-based systems, such as RHEL, CentOS, Oracle Linux, SUSE, Fedora, etc. - As zipped
exeor Windows Installer for Windows x64
Because it is much easier for the developers to build their projects for the end-users, than for each user to do this themselves every time.