plokhotnyuk/rtree2d
55.6
Adequate · 20 September 2026
1.3k
lines of production code
Scala
primary language
1
measurement over time
What this system is
RTree2D is a high-performance, multi-platform spatial indexing library for Scala that supports JVM, JavaScript, and Native environments. It provides core capabilities for Euclidean and spherical geometry, including range searches, nearest-neighbor queries, and distance calculations. The system is designed for rigorous performance evaluation, featuring comprehensive benchmarking suites that compare its implementation against other R-tree libraries.
Features
Add Scala Native support
The library now supports Scala Native, enabling users to compile and run the R-tree implementation on native platforms. This change introduces platform-specific comparator implementations for X and Y axes, ensuring correct spatial sorting and query performance in native environments.
rtree2d-core/native · high confidence
Benchmark suite now includes Archery and David Moten's RTree2D alongside JTS and RTree2D
The benchmark suite has been expanded to include performance comparisons against two additional R-tree implementations: Archery and David Moten's RTree2D. These new benchmarks, along with the existing JTS and RTree2D implementations, allow users to evaluate the relative performance of different libraries across various operations such as nearest neighbor searches, range queries, and updates. The benchmarks support configurable parameters including dataset size, node capacity, overlap, and geometry type (plane or spherical), and can be run with or without data shuffling to assess performance under different conditions.
rtree2d-benchmark · high confidence
Support for spherical geometry and distance calculations
The core library now supports indexing and querying data using spherical coordinates (latitude and longitude) in addition to the existing Euclidean plane support. This introduces a new \Spherical\ companion object with factory methods to create entries based on lat/lon coordinates, including handling of circular areas that cross the anti-meridian. A new \DistanceCalculator\ type class and specific implementation using the haversine formula allow for accurate nearest-neighbor searches on a sphere with a specified radius.
rtree2d-core/shared/src/main · high confidence
Removals
RTree core implementation deleted
The main RTree implementation file (RTree.scala) in the core module has been removed. This deletion eliminates the previous in-memory immutable R-tree structure, its STR packing logic, and the associated search methods (searchAll, search) that operated on the old coordinate parameter names (x1, y1, x2, y2).
core/src/main · high confidence
Removal of legacy RTree JMH benchmark suite
The legacy JMH benchmark implementation for the RTree data structure, including the \RTreeBenchmark\ class and its associated unit tests, has been removed from the benchmark module. This change eliminates the old performance measurement infrastructure that previously tested RTree construction, entry iteration, and search operations, likely to make way for newer benchmarking approaches or to clean up obsolete code.
benchmark · high confidence
Behavioural changes
Library rebranded to RTree2D with updated artifact coordinates and API
The library has been rebranded from 'sizmek' to 'plokhotnyuk' (RTree2D), requiring users to update their dependency coordinates from \com.sizmek.rtree2d:core\ to \com.github.plokhotnyuk.rtree2d:rtree2d-core\ and change imports from \com.sizmek.rtree2d.core.\\ to \com.github.plokhotnyuk.rtree2d.core.\\. The API has evolved to support nearest-neighbor queries (\nearestOption\, \nearestK\) and spherical Earth distance calculations alongside existing range searches, with new example code demonstrating usage for both Euclidean and spherical geometries. Additionally, the project version has been bumped to 0.11.16-SNAPSHOT.
(repo-wide) · high confidence
Platform-specific comparator implementations for RTree sorting
The RTree core library now uses distinct comparator implementations for the JVM and JavaScript platforms to handle floating-point comparisons. On the JVM, comparators use \floatToRawIntBits\ to ensure consistent ordering regardless of NaN values, while the JavaScript platform uses \floatToIntBits\. This change ensures correct sorting behavior for RTree nodes based on their X and Y coordinates across both supported runtimes.
rtree2d-core/js, rtree2d-core/jvm · high confidence
Test coverage
Added comprehensive test suite for RTree2D core geometry and operations; Removed legacy RTree test suite and property-based checkers.
Dependencies
Migrate to Maven Central and add Scala Native support
The project has moved its publication repository from Bintray to Maven Central, updating the organization to com.github.plokhotnyuk and adjusting developer contact details accordingly. Additionally, Scala Native support has been added for the core library, introducing a new \rtree2d-coreNative\ module alongside the existing JVM and JS platforms, with specific linker and build configurations for the native target.
(dependencies) · high confidence
Upgrade build infrastructure and add benchmark charting tool
The build system has been significantly upgraded: Sbt is updated from 1.1.4 to 1.13.0, and key plugins including sbt-scalajs (1.22.0), sbt-scala-native (0.5.12), sbt-scoverage (2.4.4), and sbt-mima-plugin (1.2.0) are updated to their latest versions. The build also introduces a new \Bencharts\ utility in \project/Bencharts.scala\ that generates PNG charts from JMH benchmark results using JFreeChart, featuring logarithmic axes and error bars. Additionally, the \sbt-updates\ plugin (0.7.0) is added to help track dependency updates.
project · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 56.
Lenses
- Code Health 98
- Architecture 69
- Maturity 46
- Readiness 53
- Security 73
Changes since last survey
- 300 commits — 299 feature/other, 1 fixes
By area
- project/plugins.sbt — 196 commits
- (root) — 55 commits
- project/build.properties — 45 commits
- (repo) — 1 commit
- .github/workflows — 1 commit
- docs/overlap-10 — 1 commit
- rtree2d-core/shared — 1 commit
Notable commits
- fix: Fix scalac warnings
- change: Add support of Scala Native for Scala 3 + update plugins and dependencies
- change: Add version scheme to published pom.xml files
- change: Reduce size of ScalaDoc artifact for Scala 3
- change: Remove duplicated settings for Scala.js
- change: Restore MiMa checks for Scala Native
- change: Setting version to 0.11.11
- change: Setting version to 0.11.12
- change: Setting version to 0.11.12-SNAPSHOT
- change: Setting version to 0.11.13
- change: Setting version to 0.11.13-SNAPSHOT
- change: Setting version to 0.11.14
- change: Setting version to 0.11.14-SNAPSHOT
- change: Setting version to 0.11.15
- change: Setting version to 0.11.15-SNAPSHOT
- change: Setting version to 0.11.16-SNAPSHOT
- change: Tune JVM options
- change: Turn on method optimization for Scala 2
- change: Update Scala 2.12.x to 2.12.7
- change: Update Scala 3.x to 3.2.0
- …and 280 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
plokhotnyuk/rtree2d was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 20 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit b304833df6434f128125294ca5d4e6b48a78ff68 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-b51f968c9b10.