PackageTrack
Sign in Get early access

html2text

Render HTML as plain text.

0.17.1 5.6M downloads/mo #4311 most downloaded on crates.io jugglerchris/rust-html2text

What this package is like to depend on

Last release 4 months ago

19 Apr 2026

Ships fairly regularly

a new release about every 4 weeks

Most releases are documented

notes for 60 of 74 stable releases

Nothing withdrawn

no release was ever pulled

10 years old

77 releases · first in 2016

12 releases in the last 12 months

see the full history below

Release timeline

77 releases · Dec 2016 to Apr 2026
2017 2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 60 of 77
  1. 0.17.1 19 Apr 2026
    Release notes
    • [added] Add support for XHTML (for the cases where it doesn't quite behave like HTML).
    Open source →
  2. 0.17.0 19 Apr 2026
    Release notes
    • [changed] Split html2text example into html2text-cli crate
    • [fixed] A possible panic when syntax-highlighting
    • [changed] Update html5ever to 0.39.0
    Open source →
  3. 0.16.7 29 Jan 2026
    Release notes
    • [added] Support <b> tags as bold (thanks amir)
    • [changed] Update html5ever to 0.38.0 (thanks mtorromeo)
    Open source →
  4. 0.16.6 18 Jan 2026
    Release notes
    • [changed] Update html5ever and tendril dependencies.
    Open source →
  5. 0.16.5 06 Dec 2025
    Release notes
    • [fixed] Fix a subtract with underflow with rowspans and empty rows (thanks mdierksen)
    Open source →
  6. 0.16.4 16 Nov 2025
    Release notes
    • [fixed] Further fix for RcDom::serialize() when there is a <doctype>.
    Open source →
  7. 0.16.3 16 Nov 2025
    Release notes
    • [fixed] RcDom::serialize() panicked.
    • [changed] Bumped html5ever dependency
    • [fixed] Fixed a subtraction underflow in the html2term example.
    Open source →
  8. 0.16.2 09 Nov 2025
    Release notes

    Remove debug accidentally left in.

    Open source →
    Release notes
    • [fixed] Removed spurious dbg!() accidentally left in.
    Open source →
  9. 0.16.1 08 Nov 2025
    Release notes
    • [added] Add Config::empty_img_mode() to configure how images with no alt text are handled.
    Open source →
  10. 0.16.0 22 Oct 2025
    Release notes
    • [changed] Updated MSRV to 1.85.
    • [fixed] Fix a panic in debug mode (subtraction underflow) with some table/rowspan edge cases (thanks mtorromeo)
    Open source →
  11. 0.15.5 07 Sep 2025
    Release notes
    • [fixed] Fix an assertion and some missing styles with rowspan cells in rich mode.
    Open source →
  12. 0.15.4 07 Sep 2025
    Release notes
    • [added] Support handling rowspan in tables.
    Open source →
  13. 0.15.3 26 Jul 2025
    Release notes
    • [fixed] Parse <noscript> tags as if scripting is disabled (thanks craigchiang)
    • [fixed] Treat inline <svg> as images (thanks craigchiang)
    Open source →
  14. 0.15.2 29 Jun 2025
    Release notes
    • [fixed] Fix whitespace-only tables being shown as "─" (thanks fuelen)
    • [fixed] Fix wrapping with non-breaking spaces, zero-width spaces, and some similar equivalents.
    Open source →
  15. 0.15.1 02 Jun 2025
    Release notes
    • [added] CSS: Support basic attribute selectors (div[attr="bar"]).
    • [changed] Various improvements to syntax highlighting:
      • It uses the priority of the x-syntax rule.
      • Now supported on non-<pre> elements.
      • No longer strips contained tags when highlighting
      • Compatible with display: x-raw-dom extension (e.g. to colour the HTML)
    • [fixed] With pad_block_width enabled, do a better job of padding blocks. In particular, the padding gets the block's background colour (when CSS etc. are being used).
    Open source →
  16. 0.15.0 11 May 2025
    Release notes
    • [added] Syntax highlighting support for <pre> blocks (Config::register_highlighter and CSS x-syntax: foo)
    • [changed] CSS extensions (until now display: x-raw-dom, and only if the css_ext Cargo feature is enabled) are now only available in agent and user CSS. This is a breaking change, but is not likely to affect many users.
    Open source →
  17. 0.14.4 05 May 2025
    Release notes
    • [added] RcDom::serialize, and expose a few more of the RcDom types.
    • [added] Online demo page
    Open source →
  18. 0.14.3 12 Apr 2025
    Release notes
    • [changed] Updated dependencies, including html5ever 0.31.
    Open source →
  19. 0.14.2 13 Mar 2025
    Release notes
    • [fixed] An issue with multiple verions of markup5ever being included. (thanks anna-hope)
    Open source →
  20. 0.14.1 02 Mar 2025
    Release notes
    • [fixed] An issue with FragmentStarts being lost (thanks toiletbril)
    • [fixed] An infinite loop if tabs inside <pre> wrapped past the width (thanks nshp)
    Open source →
  21. 0.14.0 09 Feb 2025
    Release notes
    • [changed] Various small refactors (thanks sftse)
    • [changed] Config::rich() no longer includes decorations around <em> etc. - use Config::rich().do_decorate() to get the old behaviour.
    • [fixed] Remove unnecessary empty lines at the start of lists (thanks russellbanks)
    • [added] New CSS support: ::before/::after and content: "string", which is now used for simple decorations. With CSS enabled, this allows for customising the display of <em>foo</em> without writing a decorator.
    • [added] Add support for <h5> and <h6> (thanks noahbaculi)
    • [changed] Link footnotes are now configurable independently of the decorator, and on by default for config::plain() but can be enabled or disabled with config.link_footnotes(true/false). The footnote references (e.g. [1]) are added in the main renderer, and the actual footnotes are written in a default implementation of TextDecorator::finalise() so can be customised.
    Open source →
  22. 0.13.6 20 Dec 2024
    Release notes
    • [fixed] Fixed issue parsing CSS rules with known rules but unknown values, which caused parsing to stop instead of just skipping the unkown rule.
    Open source →
  23. 0.13.5 01 Dec 2024
    Release notes
    • [added] CSS support for :nth-child() (not yet with the of foo).
    • [added] Non-standard display: x-raw-dom for debugging (with css_ext feature flag).
    • [fixed] An issue which could (apparently rarely) miss out some output depending on wrapping
    • [fixed] CSS parsing stopped when it hit an at-rule.
    • [added] Add --show-css option to html2text example for debugging what rules were parsed.
    • [added] Add poor-man's inspect mode to html2term - I to enable/disable, and arrows to navigate around the DOM. Implemented using :nth-child and x-raw-dom.
    Open source →
  24. 0.13.4 23 Nov 2024
    Release notes
    • [fixed] Fix a debug assertion from a double-counted length increment (thanks JadedBlueeyes).
    Open source →
  25. 0.13.3 10 Nov 2024
    Release notes
    • [fixed] Handle some obsolete bgcolor=... attributes.
    • [added] html2text example has --show-render to help debugging render issues.
    • [changed] Some error handling and other tidyups (thanks sftse)
    Open source →
  26. 0.13.2 18 Oct 2024
    Release notes
    • [fixed] Fixed errors when building with Rust 1.72.
    Open source →
  27. 0.13.1 16 Oct 2024
    Release notes
    • [added] html2text now has --show-dom
    • [fixed] Support background CSS property (for colour)
    • [fixed] Some edge cases with CSS styles on whitespace
    Open source →
  28. 0.13.0 14 Oct 2024
    Release notes
    • [added] Support CSS white-space: pre-wrap (and normal, pre).
    Open source →
  29. 0.13.0-alpha.2 11 Oct 2024 pre-release
    Release notes
    • [changed] Updated html5ever and markup5ever crate versions. This has meant updating the MSRV, which is now set to 1.72.
    • [fixed] Add Config::no_link_wrapping() (thanks JadeBlueEyes)
    • [fixed] Fix panic with empty table inside a list (thanks sftse)
    • [changed] Top level convenience functions (from_read etc.) now return Result<..> instead of panicking (thanks sftse)
    • [fixed] Fix panic with very large HTML colspan (thanks pycui)
    • [changed] CSS updates:
      • Separate user agent, author, and user CSS layers
      • Improve the style precedence between layers and implement specificity.
    Open source →
  30. 0.13.0-alpha.1 01 Jun 2024 pre-release
    Release notes
    • [fixed] Table rows with colours would disappear. (thanks tkapias)
    Open source →
  31. 0.13.0-alpha.0 26 May 2024 pre-release
    Release notes
    • [changed] Replaced LightningCSS with a smaller CSS parser. There is a chance that some CSS edge cases which no longer work; if so this would be a bug.

    • [removed] Some previously pub items and methods which are either internal implementation details or considered redundant have been removed or made private (thanks sftse). Please open an issue for anything removed that was being used.

      Of note, RenderTree::render_plain() and RenderTree::render_rich() have been removed. Replace code like:

      let text = html2text::parse(html)?
          .render_plain(80)?
          .into_string()?;
      

      with:

      let text = html2text::config::plain()
          .render_to_string(html2text::parse(html)?)?
      
    • [changed] Some names moved out of text_renderer module, so some use statements may need updating.

    • [changed] Replace some unwrap() with improved patterns (thanks sftse).

    • [changed] Updated some dependencies

    Open source →
  32. 0.12.6 01 Oct 2024

    Nothing published for this version

  33. 0.12.5 05 May 2024
    Release notes
    • [changed] Updated some dependencies
    • [added] The html2text example now has --ignore-css-colour, which ignores CSS colour information but still uses display: none, for example.
    • [added] The html2text example now has --only-css option, to not use default colours when CSS colours are being used.
    • [fixed] Make the dummy dashmap depenency optional so it's not included unnecessarily when CSS isn't enabled (thanks xmakro)
    Open source →
  34. 0.12.4 03 Mar 2024
    Release notes
    • [changed] Update the previous max-height: 0 to also look at height: 0 and require overflow: hidden as well. This helps with a hack some e-mail senders use for e-mail previews. (thanks tkapias)
    Open source →
  35. 0.12.3 03 Mar 2024
    Release notes
    • [changed] Treat max-height: 0 as if it's display: none when CSS is enabled. This helps with a hack some e-mail senders use for e-mail previews. (thanks tkapias)
    Open source →
  36. 0.12.2 23 Feb 2024
    Release notes
    • [changed] Bump version of lightningcss dependency to fix build failures.
    Open source →
  37. 0.12.1 19 Feb 2024
    Release notes
    • [fixed] Fix a case where Err(TooNarrow) was returned unnecessarily. (thanks sftse)
    • [added] Add new rendering options Config::raw_mode() and Config::no_table_borders() (thanks sftse)
    • [changed] Formatting, clippy and other tidy-ups (thanks sftse)
    • [changed] Cargo fmt now enforced in CI
    Open source →
  38. 0.12.0 21 Jan 2024
    Release notes
    • [changed] Updated termion dev-dependency
    • [added] Support <sup> HTML elements
    • [added] Export RcDom publically. It was already returned by a pub function.
    • [added] Update handling of width overflow: With Config::allow_width_overflow(), prefer returning output wider than requested, instead of returning Err(TooNarrow). Config::min_wrap_width() sets the minimum text wrap width (default 3). The minimum width (before overflow or TooNarrow) is now handled more cleanly.
    • [added] CSS: use color/bgcolor attributes on elements.
    Open source →
  39. 0.11.0 13 Jan 2024
    Release notes
    • [fixed] CSS: rules marked !important were ignored.
    • [changed] html_trace feature now uses the log crate.
    • [changed] Bumped MSRV to 1.63 (matching Debian stable) due to some dependencies.
    Open source →
  40. 0.10.3 12 Jan 2024
    Release notes
    • [fixed] A panic on some unlucky text wrapping coincidences.
    • [fixed] Use dep:backtrace in Cargo.toml to avoid implicit feature.
    Open source →
  41. 0.10.2 06 Jan 2024
    Release notes
    • [fixed] CSS: Ignore transparent colours.
    Open source →
  42. 0.10.1 02 Jan 2024
    Release notes
    • [fixed] max_width was not working with some render methods.
    Open source →
  43. 0.10.0 02 Jan 2024
    Release notes
    • [added] Simple support for <i>, <ins>, and <del> (thanks sgtatham)
    • [added] Added background-color support
    • [fixed] CSS support didn't work in some places, such as <td> elements.
    • [added] Add support for style attributes.
    • [added] Styles apply to table borders
    • [changed] Update some dependencies
    • [fixed] Fix a few places which caused excess blank lines or empty tables
    Open source →
  44. 0.9.4 31 Dec 2023
    Release notes
    • [changed] Updated the termion dev-dependency to 2.0.
    Open source →
  45. 0.9.3 31 Dec 2023
    Release notes
    • [changed] Added cargo categories and update to 2021 edition.
    Open source →
  46. 0.9.2 29 Dec 2023
    Release notes
    • [fixed] CSS didn't work inside <ul> or <ol>.
    • [added] Add methods to get and use the intermediate HTML DOM and RenderTree from Config.
    • [fixed] Removed some clones which are no longer necessary now that Box<FnOnce> works.
    Open source →
  47. 0.9.1 27 Dec 2023
    Release notes
    • [fixed] Various documentation issues (thanks sgtatham)
    • [changed] CSS color rules now work for elements other than span.
    Open source →
  48. 0.9.0 22 Dec 2023
    Release notes
    • [changed] Config::add_css now returns Result instead of panicking on CSS parse errors. Errors from parsing document CSS are ignored.
    • [added] Support <font color=...> when CSS is enabled.
    • [added] Config::max_wrap_width() to wrap text to a norrower width than the overal size available.
    • [added] Add --wrap-width and --css options to html2text example.
    Open source →
  49. 0.8.0 21 Dec 2023
    Release notes
    • [added] CSS: Support more extensive selectors
    • [changed] CSS handling defaults to off; use Config::use_doc_css() or Config::add_css to use CSS.
    Open source →
  50. 0.7.1 16 Dec 2023
    Release notes
    • [added] Now recognised CSS display:none
    • [added] Can now add extra CSS rules via Config::add_css.
    • [changed] StyleData::coloured is no longer public.
    Open source →
  51. 0.7.0 15 Dec 2023
    Release notes
    • [changed] Remove some noisy stderr output when encoutering control chars (thanks sftse)
    • [added] A builder-based config API.
    • [changed] Updated MSRV to 1.60
    • [fixed] Fixed #88: panic when a width of zero passed in (thanks bingen13)
    • [fixed] Fixed #90: Fixed a divide-by-zero panic with colspan=0 (thanks mtorromeo)
    • [added] Add very basic CSS colour support (under the css feature flag)
    • [changed] Removed ansi_colours feature (from_read_coloured is always available)
    • [changed] Overhauled error handling. Internally (and in the lower level API) errors (mainly "TooNarrow") are passed around with Result. Fixed some panics and infinite loops. (Thanks WIZeaz for fuzzing)
    Open source →
  52. 0.6.0 23 May 2023
    Release notes
    • [changed] Improve layout of tables thanks to sftse:
      • Table column size estimates have been improved when the source HTML has a lot of unnecessary whitespace.
      • Move the URL footnotes out to the top level, also improving layout of tables containing links.
    • [changed] Some APIs have slightly changed as part of the table improvements, though most users should not be affeted.
    Open source →
  53. 0.5.1 02 Apr 2023
    Release notes
    • [fixed] Some tables were rendered too wide.
    Open source →
  54. 0.5.0 04 Mar 2023
    Release notes
    • [changed] Rich Image annotations now include the src attirbute (thanks spencerwi).
    Open source →
  55. 0.4.5 07 Jan 2023
    Release notes
    • [fixed] Preserve empty lines in pre blocks (thanks kpagacz).
    Open source →
  56. 0.4.4 07 Nov 2022
    Release notes
    • [fixed] Fix some panics when enumerated lists are in tables (thanks sfts).
    • [fixed] Impove table size estimation to include links.
    Open source →
  57. 0.4.3 16 Oct 2022
    Release notes
    • [changed] MSRV is now 1.56.
    • [fixed] Fix some panics when very large widths are used with tables.
    Open source →
  58. 0.4.2 24 Apr 2022
    Release notes
    • [changed] Moved the rcdom module directly into src/
    Open source →
  59. 0.3.1 06 Mar 2022
    Release notes
    • [changed] Update the build badges to reflect the updated CI configuration.
    Open source →
  60. 0.3.0 06 Mar 2022
    Release notes
    • [added] New experimental from_read_coloured() (under ansi_colours feature).
    • [added] Add into_tagged_strings and tagged_strings methods to TaggedLine (thanks Robin Krahl)
    • [added] Add width method to TaggedString (thanks Robin Krahl)
    • [changed] Keep annotations in TextRenderer::into_lines (thanks Robin Krahl)
    • [fixed] Add colon to reference style link (thanks zakaluka)
    • [added] Allow text decorators to customise block prefix strings (thanks SardineFish)
    • [fixed] Fixed some problems rendering some complicated tables, including a panic and near-infinite loops.
    • [changed] Tables which are too wide to possibly render in the given width are now arranged vertically instead (with ///) lines.
    • [changed] A number of small table rendering improvements.
    • [changed] MSRV is now 1.41.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive