confluent-kafka-go-dev provides a nice Go API for Kafka; however, making it dependent on a shared lib is a fundamental design error that contradicts a primary design goal of Go - fully resolved binaries.
This can easily be resolved. Replace this dependency on the various forms of the librdkafka shared library with its binary.
confluent-kafka-go-dev dependence on the librdkafka is a poster-child for why Go took the fundamental step of eliminating the use of shared libraries. Re-introducing such a dependency via the ‘backdoor’ of cgo was a poor design decision that should be rectified asap.
This decision has lead to a number of easily avoidable issues. For instance, having to document the installation of librdkafka-dev that is now fundamentally broken on Ubuntu. Also, the fact that Kafka clients built with confluent-kafka-go-dev require the use of a compatible linux Docker container base image and don’t support either the Docker scratch image or the alpine base image.
Please fix this!
How to reproduce
N/A
Checklist
Please provide the following information:
[X] confluent-kafka-go and librdkafka version (LibraryVersion()):
[ ] Apache Kafka broker version:
[ ] Client configuration: ConfigMap{...}
[ ] Operating system:
[ ] Provide client logs (with "debug": ".." as necessary)
@edenhill,
Please can you comment on when this fork will be mainlined/merged to github.com/confluentinc/confluent-kafka-go or when this issue will be fixed.
Thanks
Description
confluent-kafka-go-dev provides a nice Go API for Kafka; however, making it dependent on a shared lib is a fundamental design error that contradicts a primary design goal of Go - fully resolved binaries. This can easily be resolved. Replace this dependency on the various forms of the librdkafka shared library with its binary. confluent-kafka-go-dev dependence on the librdkafka is a poster-child for why Go took the fundamental step of eliminating the use of shared libraries. Re-introducing such a dependency via the ‘backdoor’ of cgo was a poor design decision that should be rectified asap. This decision has lead to a number of easily avoidable issues. For instance, having to document the installation of librdkafka-dev that is now fundamentally broken on Ubuntu. Also, the fact that Kafka clients built with confluent-kafka-go-dev require the use of a compatible linux Docker container base image and don’t support either the Docker scratch image or the alpine base image. Please fix this!
How to reproduce
N/A
Checklist
Please provide the following information:
LibraryVersion()
):ConfigMap{...}
"debug": ".."
as necessary)