Skip to content

v1.20.0.0 — Kotlin Multiplatform port of JTS 1.20.0

Latest

Choose a tag to compare

@mipastgt mipastgt released this 17 Jul 15:16

1.20.0.0 — 2026-07-17

First public release: a faithful Kotlin Multiplatform port of
JTS 1.20.0, published to Maven Central under group
de.mpmediasoft.kts. Source package names are unchanged (org.locationtech.jts.*).

Added

  • Multiplatform artifacts for JVM (Java 8+), JS (Node/browser), Wasm/JS, and
    Kotlin/Native (macOS, iOS, Linux, Windows).
  • Modular, à-la-carte packaging:
    • kts-core — geometry model, spatial predicates, overlay, buffer, algorithms, and the WKT/WKB writers.
    • kts-io-wktWKTReader, WKBReader, WKBWriter.
    • kts-io-gmlGMLReader, GMLWriter.
    • kts-io-kmlKMLReader, KMLWriter.
    • kts-io-geojsonGeoJsonReader, GeoJsonWriter (kotlinx-serialization).
    • kts-io-filesWKTFileReader, WKBHexFileReader (kotlinx-io).
  • An extension-property layer restoring the Kotlin .property idiom on top of JTS's Java getters.

Changed (deviations from upstream JTS)

  • IO readers and the GML/KML/file IO are split out of kts-core into the à-la-carte kts-io-*
    modules; the WKT/WKB writers remain in kts-core.
  • GeoJSON is built on kotlinx-serialization-json instead of the JVM-only org.json.simple.
  • Stream-based (java.io) IO is provided as JVM-only extension functions; the common API works on
    String/ByteArray.
  • GML: GMLHandler is no longer a SAX DefaultHandler, and GMLReader.read throws ParseException
    instead of SAXException/ParserConfigurationException.

Removed

  • java.io.Serializable / serialVersionUID (use WKT/WKB for persistence).
  • Cloneable / clone() from the multiplatform surface (use the runtime-type-preserving copy()).
  • The JVM-desktop-only org.locationtech.jts.awt package and internal dev/debug helpers.
  • The jts.overlay / jts.relate system-property switches.

See doc/kotlin/KOTLIN-MP-COMPATIBILITY.md for the complete,
itemised list of API deviations and the rationale for each.