// Package protocol contains functions for performing protocol detection. // // # Confidence scores // // All registered detectors in this package shall output a confidence score. If there are multiple // matching protocols, the protocol with the highest confidence score will be returned to the // caller. // // Confidence scores should be between 0 and 0.99, but there is no hard enforcement of this range // in this package. // // # Protocol matching // // The first level matching happens with magic strings, as inspired by Go's [image.RegisterFormat] // function. The only addition that this package has made, is that you can also use the '*' // character for wildcard matching. // // The supported magic strings input is documented in the [Match] function. // // # Strict mode // // Some parser also allow for strict parsing of the protocol, which results in a higher confidence // score, but it also may lead to more false negatives. If [Strict] mode is enabled, then only the // detectors that support strict checking will be used for protocol detections. package protocol