The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
0.36 2018-07-??
-behavior: query_hash now accepts hash ref as a parameter
-bugfix: correctly count and skip utf8 bytes when encoding an IRI
-bugfix: drop invalid whitespace skipping scheme (credit: aeruder)
-bugfix: drop logic incompatible with bsd make
-bugfix: encode non-utf8 input strings in new() and uri_split()
-bugfix: increase some member sizes to allow room for utf8 sequences
-bugfix: path correctly handles forward slashes in segments when set with array
-bugfix: set utf8 flag in compound iri accessors
-optimization: use memcpy instead of strncpy in some cases
-optimization: xs setters return void

0.35 2018-06-28
-behavior: all query scanning functions now treat '&' and ';' as valid separators
-behavior: explicitly specifying a separator in a query setter replaces existing separators in the query
-behavior: skip whitespace surrounding parsed uris
-bugfix: correctly parse ipv6 addresses
-bugfix: possible buffer overflow in uri_scan_auth
-bugfix: set_query, set_fragment, set_path unnecessarily encode permitted characters (credit: Dave Hubbard)
-bugfix: when stringifying, use ':' instead of '://' when no authority section present
-bugfix: when stringifying, path is always separated from authority by '/'
-documention: stringification with overloaded ""
-new method: compare($other) with overloaded eq
-new method: query_keyset({...})
-new method: url_encode/url_decode aliased to encode/decode (credit: bluefeet)
-new module: URI::Fast::Test to make unit testing with Test2 easier (credit: merlyn)
-optimization: faster and more consistent query scanning
-optimization: reduced memset usage (credit: aeruder)

0.34 2018-06-13
-bugfix: set_param could clobber existing query parameters (credit: aeruder)

0.33 2018-06-13
-new method add_param() appends query parameters without clobbering existing
 query keys (credit: sara)

0.32 2018-06-12
-alias as_string -> to_string (credit: merlyn)

0.31 2018-06-12
-@EXPORT_OK now includes encode() and decode() (credit: merlyn)

0.30 2018-06-12
-incompatible change: dropped default scheme; when no scheme is present in
 the source string, the stringified URI is excluded
-dropped prototype from URI::Fast::uri()

0.29 2018-06-07
-optimization: uri() now sets default scheme to "file" in XS
-docs updated to clarify the unclear (credit: val, merlyn)
-incompatible change: param() croaks when called in scalar context but
 encounters multiple parameter values (credit: merlyn)

0.28 2018-05-30
-bugfix: segfault when c function uri_decode called with len=0 and an input
 string with length > 0

0.27 2018-05-26
-declare POD encoding

0.26 2018-05-25
-switch from Dist::Zilla and Inline::C to vanilla XS and ExtUtils::MakeMaker to
 simplify building binary distributions
-support for interpreter threads
-remove separate URI::Fast::IRI module as Dist::Zilla's POD generator is no
 longer used

0.25 (failed)
-failed due to version conflict in URI::Fast::IRI, which has no version

0.24 2018-05-23
-bugfix: move URI::Fast::IRI to its own file to unconfuse Dist::Zilla when generating docs

0.23 2018-04-26
-support for IRIs via new constructor, iri()
-documented uri_split()

0.22 2018-03-27
-bugfix: add 'name' and 'version' parameters to `use Inline` statment and call
 to `Inline->init` to avoid runtime lookup errors

0.21 2018-03-27
-compromise: attempt to decode utf8 from percent-encoded sequences, but
 fail gracefully

0.20 2018-03-27
-don't croak on invalid utf8; uri may include arbitrary encoded bytes

0.19 2018-03-27
-added minimal validation of decoded utf8 (croaks on invalid sequences)

0.18 2018-03-21
-support for tied scalar inputs in XS code

0.17 2018-03-19
-bugfix: in which sysread gives up and puts the code in __DATA__ after all

0.16 2018-03-19
-bugfix: mixed separators in generated source file path on some mswin32 systems

0.15 2018-03-16
-bugfix: split_path generates incorrect segments on //paths

0.14 2018-03-16
-bugfix: dynamically find path to uri_fast.c
-bugfix: move uri_fast.c out of lib root

0.13 2018-03-16
-support for specifying delimiter when modifying query parameters
-bugfix: inlined function visibility lost in generated xs scope

0.12 2018-03-14
-bugfix: fix compiler error on MSWin32 (thanks appveyor!)

0.11 2018-03-13
-bugfix: length was being ignored in uri_scan_auth

0.10 2018-03-13
-exposed clear_* methods
-get_auth replaced by function joining sub-members
-more thorough testing of parsing edge cases
-more thorough testing of memory leaks
-bugfix: missing bounds checks in parser and setters
-bugfix: segfault when query key not followed by '='
-bugfix: non-digits no longer accepted when setting/parsing port number
-bugfix: increased member size for uri_t
-added MetaProvides::Package Dist::Zilla plugin for experimental Kwalitee

0.09 2018-03-08
-constructor is more efficient
-set_param does less copying, uses less memory
-Bugfix: set_param incorrctly placed (or did not place) ampersands in some edge cases
-Kwalitee fixes
-Fix missing entries in v0.08's change log (oops)

0.08 2018-03-07
-Fix test dependency version causing cpan tester failures
-Adopted URI::Encode::XS's encoding/decoding strategy
-Reduced heap usage

0.07 2018-03-06
-UTF-8 support
-New methods: query_keys, query_hash, encode, decode
-Many methods rewritten in C/XS to make up for the added cost of UTF-8 support
-Switch tests from using Test2::Bundle::Extended to Test2::V0
-Bugfix: fix some missing test dependencies on restricted smoker setups
-Bugfix: some unit tests were using the uri being tested as the test name,
 triggering errors when the uri included a fragment (hash and newlines are
 invalid in test names)

0.06 2018-02-27
-New ultra-fast parser and struct-based object written in C

0.05 2018-02-27
-Update required version of Test2::Suite to 0.000049 to include U in
 Test2::Bundle::Extended

0.04 2018-02-26
-Faster uri_split implemented with Inline::C
-Faster auth parsing implemented with Inline::C
-Faster auth assembly implemented with Inline::C
-Faster query param access by doing a regex for each access rather than parsing
 and storing (who knew?)
-This module no longer has common::sense
-Bugfix: auth params now correctly url-encoded/decoded
-See also that a SEE ALSO section was added to POD

0.03 2018-02-20
-10% speedup in stringification by not creating variables
-Bugfix: setting auth or query did not clear sub-attributes
-Bugfix: host was being appended regardless of presence

0.02 2018-02-20
-Bump minimum URI::Encode::XS version to 0.07 (thanks eserte!)

0.01 2018-02-19
-Initial release