Skip to content

Kiddo 6.0.0-alpha.1#301

Open
sdd wants to merge 103 commits intomasterfrom
feature/update-project-layout
Open

Kiddo 6.0.0-alpha.1#301
sdd wants to merge 103 commits intomasterfrom
feature/update-project-layout

Conversation

@sdd
Copy link
Copy Markdown
Owner

@sdd sdd commented May 3, 2026

This PR is to introduce the first alpha of Kiddo 6. 10 months in the making and counting, it is effectively a full rewrite, addressing some long-standing issues.

  • v6 represents a fundamental shift to a unified single KdTree struct, replacing the previous mutable/immutable and float/fixed splits.
  • The macro-based query code that was used for v5 to permit more code reuse between plain and rkyv queries has been eliminated.
  • The blanket impls for Axis from v5 have been removed, allowing Axis to now be implemented for floats, fixed point types, and unsigned ints. This removed the need for separate Axis and AxisFixed traits which drove the previous v5 requirement for separate float and fixed tree structs.
  • The need for separate mutable / immutable trees has been removed by introducing the LeafStrategy trait, which the KdTree has as a generic property. LeafStrategies can be mutable or immutable.
  • KdTree is also now generic over the new StemStrategy trait too. This allows experimentation and selection of alternative stem layouts and traversal mechanisms, orthogonal to the choice of leaf strategy.

At the moment v6 is still not quite ready for production use cases but I'm hoping to release it soon as an alpha so that people are able to try it out if interested and provide feedback, bug reports, and performance reports, to help get it to the point where it is production-ready. I'll be updating the benchmarking suite too with results from v6, as well as updating the stale results from other libraries to use their latest versions. I may add some new libraries against which to run the benchmarks too (suggestions welcome).

@sdd sdd force-pushed the feature/update-project-layout branch 6 times, most recently from 106db3a to 865b3b7 Compare May 5, 2026 18:25
@codecov
Copy link
Copy Markdown

codecov Bot commented May 5, 2026

Codecov Report

❌ Patch coverage is 96.69118% with 18 lines in your changes missing coverage. Please review.
✅ Project coverage is 81.34%. Comparing base (11870f8) to head (f23163f).

Files with missing lines Patch % Lines
src/dist/distance_metric_core.rs 83.60% 10 Missing ⚠️
src/dist/mod.rs 97.04% 8 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           master     #301       +/-   ##
===========================================
- Coverage   94.88%   81.34%   -13.54%     
===========================================
  Files          54       70       +16     
  Lines        5705    14689     +8984     
  Branches     5705    14689     +8984     
===========================================
+ Hits         5413    11949     +6536     
- Misses        274     2651     +2377     
- Partials       18       89       +71     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@sdd sdd force-pushed the feature/update-project-layout branch 3 times, most recently from 087f701 to 3535246 Compare May 5, 2026 18:44
@sdd sdd force-pushed the feature/update-project-layout branch from 5737793 to 393db32 Compare May 6, 2026 18:15
@sdd sdd force-pushed the feature/update-project-layout branch 2 times, most recently from 9f4cfe8 to 0e3fc9b Compare May 6, 2026 18:34
@sdd sdd force-pushed the feature/update-project-layout branch from 0e3fc9b to fc64933 Compare May 6, 2026 18:37
@sdd sdd force-pushed the feature/update-project-layout branch from 060943f to 8021d75 Compare May 6, 2026 19:57
@sdd sdd force-pushed the feature/update-project-layout branch from e15e9c0 to ba65bc2 Compare May 6, 2026 20:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant