Skip to content

Releases: Chaos-vy/ChaosTree

ChaosTree v1.2.0

Choose a tag to compare

@Chaos-vy Chaos-vy released this 09 Aug 17:01

ChaosTree v1.2.0 — Zero-Allocation Engine & JDK 11 Support

JDK 11 Support

  • Full codebase compatibility with JDK 11.
  • Removed Java 14+ record classes from core traversal paths.

Core Engine

  • Replaced temporary traversal objects with primitive status codes + direct node mutation.
  • GC allocation reduced from ~350 B/op → 48.0 B/op.
  • Structural traversal allocation: 0 B/op.

N-ary Tree Performance

  • Degree 64: ~102 ns/op in cache-scaling tests.
  • B+ Tree range scans:
    • 5.8 ms vs 8.1 ms for 1M elements.
    • ~28% lower latency
    • ~24% fewer L1 cache reads
    • ~14% fewer CPU instructions

Binary Tree Telemetry

  • Raw BST: 122 ns/op on Zipfian random lookups.
  • Splay Tree: 351 ns/op under the same workload.

Codebase Integrity

  • 0 PMD-CPD duplication violations at the configured 50-token / 10-line threshold.

Full JMH Reports:
Benchmark Reports

ChaosTree v1.1.0

Choose a tag to compare

@Chaos-vy Chaos-vy released this 07 Aug 02:38

ChaosTree v1.1.0

Release Date: 2026-08-07

Added

  • Added NavigableSet compatibility.
  • The following NavigableSet view operations are intentionally unsupported and throw UnsupportedOperationException:
    • descendingSet()
    • descendingIterator()
    • subSet(T, boolean, T, boolean)
    • headSet(T, boolean)
    • tailSet(T, boolean)
    • subSet(T, T)
    • headSet(T)
    • tailSet(T)

Changed

  • Moved common Maven configuration from module pom.xml files to the parent POM.
  • Renamed containsAll() to containsAllElements() to avoid ambiguity with the NavigableSet API.
  • Renamed retainAll() to retainAllElements() to avoid ambiguity with the NavigableSet API.
  • Reworked binary tree insertion and deletion algorithms to use iterative implementations, eliminating recursion-related stack overflow limitations.
  • Updated generic bounds from <T extends Comparable<T>> to <T extends Comparable<? super T>> for improved type compatibility.
  • Renamed ITree to Tree.
  • Renamed ISearchTree to SearchTree.

Improved

  • Expanded ADRs and JavaDocs.
  • CI/CD now validates the project across JDK 17, 21, and 25 on a full operating system matrix using setup-java@v4.

ChaosTree v1.0.1

Choose a tag to compare

@Chaos-vy Chaos-vy released this 02 Jul 02:13

🌳 ChaosTree v1.0.1

Release Date: 2 July 2026

ChaosTree v1.0.1 is the first maintenance release for the 1.0.x series, focusing on correctness, API refinements, documentation, and regression coverage. This release contains no breaking API changes.

Correctness

  • Fixed BPlusTree.floor() boundary handling when the requested value falls before the first element of the routed leaf.
  • Fixed retainAll() on empty trees to safely return instead of propagating EmptyTreeException.
  • Standardized NaryTree.height() so a single-node tree consistently reports a height of 0.

API Improvements

  • Implemented Java Collection Contract compliant equals() and hashCode() across all tree families.
  • Replaced eager range evaluation with a lazy BoundedInOrderIterator for rangeStream().
  • Optimized lca() validation from O(N²) worst-case to O(H).

Developer Experience

  • Improved kthSmallest() bounds diagnostics.
  • Added package-level documentation across the public API.
  • Updated complexity documentation for kthSmallest().
  • Declared BPlusTree as final.
  • Added Release101VerificationTest, increasing automated regression coverage from 579 to 585 tests.

Compatibility

  • Fully backward compatible with v1.0.0
  • No breaking API changes

Thank you to everyone using and evaluating ChaosTree.

ChaosTree v1.0.0

Choose a tag to compare

@Chaos-vy Chaos-vy released this 25 Jun 17:31

🎉 ChaosTree v1.0.0 — Initial Release

The first stable public release of ChaosTree.

ChaosTree is a zero-dependency Java search tree library focused on correctness, performance, and clean API design. This release introduces complete Binary and N-ary search tree families, backed by extensive testing, benchmarking, and architectural documentation.

Highlights

Binary Family

  • Binary Search Tree (BST)
  • AVL Tree
  • Red-Black Tree (RBT)
  • Treap
  • Splay Tree

N-ary Family

  • B-Tree
  • B+ Tree

Core API

  • ITree abstraction
  • ISearchTree contract
  • BinaryTree API
  • NaryTree API

Features

  • Collection-style operations
  • Java Stream support
  • Range queries
  • Priority operations (pollMin, pollMax)
  • Multiple traversal strategies
  • ASCII tree visualization

Engineering

  • 579 automated tests
  • Randomized fuzz testing
  • Concurrent-access validation
  • JPMS module support
  • JavaDoc documentation
  • Cross-platform CI (Ubuntu, Windows, macOS)
  • Verified on JDK 17, 21, 25, and 26

Documentation

  • Architecture documentation
  • 11 Architecture Decision Records (ADRs)
  • Binary & N-ary API guides
  • Complexity and implementation notes
  • JMH benchmark suite
  • Hardware-counter-backed performance analysis

Thank you for checking out ChaosTree. This release marks the beginning of the project, and future versions will continue expanding its capabilities while maintaining a strong focus on correctness, performance, and maintainability.