leodido / go-syslog

Blazing fast syslog parsers
MIT License
31 stars 3 forks source link

Are there breaking changes between `influxdata/go-syslog/v3` and `leodido/go-syslog/v4`? #14

Closed andrzej-stencel closed 5 months ago

andrzej-stencel commented 6 months ago

First of all I want to thank @leodido for continuing to work on the go-syslog package. šŸ™ This package is currently used by the OpenTelemetry Collector Contrib for parsing of syslog messages, used for example in the Syslog receiver of the collector. Btw. perhaps it's worth adding an adopters file in this repo?

Triggered by the archiving of the https://github.com/influxdata/go-syslog repository, we are planning to replace the influxdata/go-syslog/v3 package with leodido/go-syslog/v4 (https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/33205). This brings the question: are there any breaking changes that users looking to do similar switch should look out for?

Looking at the release notes for v4.0.0, seems to me that the only change that might be worth describing as potentially breaking is Allow non UTF8 characters in message #35, as it changes the default behavior of the parser to be more permissive. This means that if someone was relying on the package to reject non-compliant messages, they might need to use the WithCompliantMsg option. Does this make sense?

leodido commented 6 months ago

Hey @andrzej-stencel, what you described for RFC5424 makes sense. You spotted it right.

Let me add that similar relaxations have been implemented for RFC3164 to allow more non-compliant old syslog formats (eg., OpenBSD without hostname part, etc.). In this case tho, there is no option pattern (With<Something>()) implemented at the moment. Maybe that's an idea for a future contribution!