tl;dr:

This week, I shipped a powerful new filtering system (load_by_filter) that lets you query items by numbers, text, booleans, class, and subclass. I also wrote a ton of new documentation and examples so you can actually use it. Plus, I did a major code cleanup, refactored the database logic, and added a bunch of tests to keep everything solid.

This week in Heave (2025.10.24) - The Filter Update

Hey everyone!

It’s been another busy and productive week here on the heave project. While it might feel like I was deep in the engine room, the changes I pushed this week represent a major leap forward in both functionality and the overall health of the codebase. The big theme? Giving you powerful new ways to find exactly what you need.

Let’s dive in!

The Star of the Show: A Powerful New Filtering System

The centerpiece of this week's work is the brand new load_by_filter function! I wanted to give you the ability to query your data with surgical precision, and this new feature is the answer.

You can now build complex queries to filter your items based on a wide range of conditions. I've added support for:

This opens up a world of possibilities for dynamically finding the data you need, when you need it.

Making It All Usable: A Huge Documentation Push

A powerful feature isn't very useful if no one knows how to use it! That’s why I spent a significant amount of time improving our documentation this week.

I've added crate-level documentation with a working example to get new users up and running quickly. I also beefed up the docs for all our public functions and structs, and added specific, practical examples for the new filtering system, including how to combine multiple conditions and how to work with class and subclass.

Our goal is to make heave as clear and approachable as possible, and this was a huge step in the right direction.

Under the Hood: Spring Cleaning and Refactoring

Alongside the new features, I rolled up our sleeves and did some serious housekeeping. A clean and well-organized codebase is easier to maintain and build upon.

Here’s a peek at the cleanup work:

These changes make the project healthier, faster, and more prepared for future features.

Staying Reliable: Fixes and Tests

Finally, what’s a new feature without tests to back it up? I added a suite of tests for the new load_by_filter and list_by_class_and_subclass functions to ensure they work exactly as expected. I also squashed a small bug in a test assertion and fixed an issue where attribute table names could clash in complex filters.


It was a fantastic week of balancing brand-new functionality with the important work of refactoring and documentation. heave is more powerful, more user-friendly, and more robust than it was seven days ago.

As always, feel free to check out the latest changes on the repository. I’d love to hear your feedback!

Until next time, happy coding


Chore

Doc

Feat

Fix

Review

Test


tags: #rust, #devlog, #project:heave