Release notes
# Release Notes: 3.3.0
π **LiveBackgroundRemovalLite 3.3.0 is out!** π
This release brings major improvements to project structure, build system modularity, and asynchronous coroutine infrastructure. The refactor enhances developer experience, maintainability, and safety, paving the way for more robust and future-proof development of the plugin. Hereβs whatβs new and improved since **3.2.0**:
---
## Highlights
### π Modernized Build System and Project Structure
- **CMake Refactor:** The build system is now modular, with each functional component (`Async`, `Logger`, `Memory`, `BridgeUtils`, etc.) defined as a separate library and subdirectory. This separation greatly improves code organization and maintainability.
- **Filter Module Separation:** The core filter logic has moved from the old `Core` directory to a dedicated `LiveBackgroundRemovalLite/Filter` module, with updates to naming, build configuration, and include paths.
- **Entry Point Update:** The plugin entry point now uses modern C++ (instead of C), leveraging improved namespace features.
### π§© Async Coroutine Infrastructure Overhaul
- **Unified Primitives:** Previously separate async primitives (`Task`, `TaskStorage`, `SymmetricTransfer`) have been consolidated, rewritten, and thoroughly documented in a single header (`Task.hpp`).
- **Improved Safety:** The new coroutine code imposes strict ownership and lifetime rules, eliminates βfire-and-forgetβ pitfalls, and offers better error handling.
- **Redundant Files Removed:** Old headers and modules superseded by the new logic are cleaned up for clarity.
### π‘ Modern C++ Features Everywhere
- **C++20 Adoption:** The minimum required standard is now C++20, up from C++17. This brings improved language features and enables inline namespaces and other modern idioms throughout the codebase.
- **Namespace Simplification:** All nested namespaces now use the inline C++17+ syntax (`namespace KaitoTokyo::BridgeUtils {`) for greater readability.
### π οΈ Enhanced Development & Platform Support
- **Improved Dev Environment:** Updated VSCode configs, better support for external dependencies (like Qt6), and improved build scripts, especially for macOS.
- **Apple Platform Improvements:** The build now correctly links the `josuttis-jthread` dependency where required.
### π Documentation, Licensing, and Clean-up
- **License Preamble Update:** The full MIT license text now appears in refactored files' headers for proper attribution.
- **Extensive Internal Docs:** Power users and contributors will find much expanded guidance and safety notes.
- **Removed Deprecated Components:** The no-longer-used `UpdateChecker` is dropped from both build and docs. Old filter context headers are also cleaned up.
---
## Migration Notes
- Ensure your build environment supports C++20!
- If you maintain scripts or downstream forks, update your module paths and CMake targets to match the new structure.
- Power users of the coroutine infrastructure may need to consult the expanded documentation in `Task.hpp` for updated usage patterns and safer contracts.
---
## Thank you!
We appreciate all contributors and users for sticking with LiveBackgroundRemovalLite on its mission to provide fast, reliable, real-time background removal for OBS with minimal system load!
For detailed diffs and further information, review the [GitHub releases page](https://github.com/kaito-tokyo/live-backgroundremoval-lite/releases).
Happy streaming! π