I'm happy to announce that jsoup 1.23.2 is out now!
It brings closer alignment with the HTML, XML, URL, and form submission specifications; improves XML and W3C DOM conversion; and makes HTTP workloads more efficient through broader JDK HttpClient reuse.
I've just released #jsoup 1.23.1, with substantial performance and memory improvements across the HTML parser.
Against 1.22.2, ordinary string parsing is 18% faster on average in our benchmarks; source-tracked parsing is 70% faster while allocating 64% fewer bytes.
I've just released #jsoup 1.22.2.
This release makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport.
Also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.
jsoup.org/news/release-1.22.…
I'm happy to announce the release of #jsoup 1.22.1!
This adds support for the re2j regular expression engine for regex-based CSS selectors, a configurable maximum parser depth, and brings a bunch of bug fixes and improvements.
Details at jsoup.org/news/release-1.22.…
This release marks 15 years of jsoup development.
Happy to announce that #jsoup 1.21.2 is out!
Adds custom SSLContext support in HTTP/2 connections, brings DOM/fragment parsing perf gains, and fixes some edge cases in parsing, traversal, cloning, and concurrent reads.
jsoup.org/news/release-1.21.…
Happy to announce that #jsoup v1.21.1 is out now! Lots of improvements, particularly the ability to directly select nodes (like text, data) with the CSS selectors.
Very happy to announce that I've just released jsoup 1.20.1!
Lots of improvements and bug fixes -- improved HTML parse rules to align with modern browsers, improved XML namespace handling, and a redesigned HTML pretty-printer for better consistency and customizability.
This release also delivers performance optimizations, new API enhancements such as flexible tag definitions via TagSet, concise CSS selectors, and parser thread-safety improvements.
Big thanks to everyone who helped out.
jsoup.org/news/release-1.20.…
Good news everybody! I just released #jsoup v1.19.1. It adds http/2 request support, and has a bunch of other improvements and bug fixes.
The next version of #jsoup will (finally!) support making http/2 requests, if you're running on Java 11+. It still works down to Java 8 if you need that.
It's a drop-in update with no changes required for existing Jsoup.connect() code, other than setting a system property (jsoup.useHttpClient) to enable.
The implementation uses Java's multi-release JAR feature to make requests via the HttpClient impl if it's available, or will fallback to the current HttpURLConnection. This also gives a path to http/3 support when that PEP lands in Java.
github.com/jhy/jsoup/pull/22…
Happy to announce the release of jsoup 1.18.2! Faster parsing with less GCs, and a bunch of bug fixes.
Details (and graphs) at github.com/jhy/jsoup/release…
I've been working on improving parse throughput and reducing memory allocations in jsoup (Java HTML parser) by recycling char[] and byte[] buffers between invocations—avoiding unnecessary heap allocations and garbage collection.
Details: github.com/jhy/jsoup/pull/21…


