All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog. This project adheres to Semantic Versioning, with the exception that 0.x versions can break between minor versions.
0.10.0 - 2023-06-24
- New option
url_can_bi_iri
that can be used to disable international domain parsing (still enabled by default). This is useful for parsing ASCII only URLs out of non-ASCII text even if there's no spaces before/after the URL (#49)
- Don't require valid hostname for
file://
URLs to allow for relative paths used in the wild (#58) - Support URIs with empty path but with query, e.g.
foo://bar?a=b
(#59) - Require IPv4 addresses to have 4 numeric parts. This means things
like
1.0
are no longer recognized as domains (#46)
0.9.0 - 2022-07-11
-
More strict parsing of hostname (authority) part of URLs. Applies to emails, plain domains URLs (e.g.
example.com/foo
) and URLs with schemes where a host is expected (e.g.https
).This fixes a few problems that have been reported over time, namely:
https://www.example..com
is no longer parsed as an URL (#41)[email protected]
is no longer parsed as an email address (#29)https://*.example.org
is no longer parsed as an URL (#38)
It's a tricky change and hopefully this solves some problems while not introducing too many new ones. If anything unexpectedly changed for you, please let us know!
0.8.1 - 2022-04-14
- Skip parsing very short strings for URLs as a performance optimization
0.8.0 - 2021-11-26
- New option
url_must_have_scheme
onLinkFinder
that can be set tofalse
to allow URLs without scheme/protocol such asexample.com
. Note that there is no allowlist for top-level domains, if you want that you will have to implement it yourself.
- Bump MSRV (minimum supported Rust version) to 1.46
0.7.0 - 2021-05-18
- URLs that have a quote character like
'
or"
before them will stop when that quote character is encountered, e.g. in"https://example.org/","
, the URL will not include any quotes. Before, it would run until the end because the quotes after the slash were an even number. (#20) - Bump MSRV (minimum supported Rust version) to 1.41
0.6.0 - 2021-04-09
- Stop URLs when encountering
|
. Consistent with RFC and will hopefully not cause problems with real URLs.
0.5.0 - 2021-02-13
- Treat
*
as a delimiter like.
or,
, which means they can be part of an URL but not at the end.
0.4.0 - 2019-08-05
- Stop URLs when encountering ". This is consistent with RFC 3986, and it seems unlikely that a user would have an unescaped " in an URL anyway, as browsers escape it when copying an URL with it.
- Stop URLs at ` characters too, same as < and >
- Bump MSRV (minimum supported Rust version) to 1.31 (2018 edition)
0.3.1 - 2018-02-04
- Bump memchr dependency to 2 (for wasm support)
0.3.0 - 2018-01-25
- New API to iterate over both plain text and link spans using the
spans
method. This is useful for iterating over all parts of the input, not just the detected links. Thanks @srijs!
0.2.0 - 2017-09-18
- Don't autolink if authority is only "end" characters, e.g. like
http://.
orhttp://"
0.1.2 - 2017-06-09
- Fix
html_root_url
attribute
0.1.1 - 2017-06-08
- More docs
- Add
Debug
impls forLinks
andLinkFinder
0.1.0 - 2017-05-13
Initial release of linkify, a Rust library to find links such as URLs and email addresses in plain text, handling surrounding punctuation correctly.