NAME

HTTP::XSHeaders - Fast XS Header library, replacing HTTP::Headers and HTTP::Headers::Fast

SYNOPSIS

# load once
use HTTP::XSHeaders;

# keep using HTTP::Headers or HTTP::Headers::Fast as you wish

DESCRIPTION

By loading HTTP::XSHeaders anywhere, you replace any usage of HTTP::Headers and HTTP::Headers::Fast with a fast C implementation.

You can continue to use HTTP::Headers and HTTP::Headers::Fast and any other module that depends on them just like you did before. It's just faster now.

COMPATIBILITY

While we keep compatibility with HTTP::Headers and HTTP::Headers::Fast, we've taken the liberty to make several changes that were deemed reasonable and sane:

  • Aligning in as_string method

    as_string method does weird stuff in order to keep the same indentation. This is unnecessary and unhelpful. We simply add one space for indentation.

  • No messing around in header names and casing

    The headers are stored as given (MY-HeaDER stays MY-HeaDER) and compared as lowercase. We do not uppercase or lowercase anything (other than for comparing header names internally).

  • Case normalization using leading colon is not supported

    Following the previous item, we also do not normalized based on leading colon.

  • $TRANSLATE_UNDERSCORE is not supported

    $TRANSLATE_UNDERSCORE (which controls whether underscores are translated or not) is not supported. It's barely documented (or isn't at all), it isn't used by anything on CPAN, nor can we find any use-case other than the tests.

METHODS

TODO

  • Add ENV variable to control what classes are overridden

  • Fix skipped tests (or remove them)