Brief:
This release contains next major improvements in RPP:
- support of callback-based grpc - now RPP can be easily integrated with grpc to build powerful apps! Doc: https://victimsnino.github.io/ReactivePlusPlus/v2/docs/html/group__rppgrpc.html (small project-example https://github.com/victimsnino/GRPC-RPP-Chat)
- support of asio strand scheduler (thanks to @CorentinBT)
- several new operators
- huge performance improvements overall and especially in some operators
- big disposables redesign to provide more clear and explicit API and better performance
- overall docs enhancement (https://victimsnino.github.io/ReactivePlusPlus/v2/docs/html/index.html)
What's Changed
Core commits worth to mention:
New features
- add behavior_subject by @victimsnino in #553
- Add thread_pool schedulers by @victimsnino in #563
- Add variant_observable to avoid dynamic coversions by @victimsnino in #588
- Add initial support for GRPC++ by @victimsnino in #568
- element_at operator by @CorentinBT in #613
- Add server-based logic for rppgrpc by @victimsnino in #612
- implement simplest retry by @victimsnino in #619
- retry_when operator by @CorentinBT in #616
- asio strand scheduler by @CorentinBT in #627
- add dynamic connectable by @victimsnino in #672
Fixes/improvements
- Forward selector exception in on_error_resume_next + expose test utils by @CorentinBT in #556
- Dispose before on_error/on_completed by @CorentinBT in #558
- Add new benchmarks + speedup by @victimsnino in #562
- Expose observable strategy_type by @CorentinBT in #567
- Add get_value function to behavior_subject by @victimsnino in #570
- Fix disposing order by @victimsnino in #592
- fix buffer capacity by @victimsnino in #618
- Disambiguate tap operator by @CorentinBT in #625
- fix infinite looping by @victimsnino in #628
- remove disposables from scheduler worker by @victimsnino in #632
- fix order of calls by @victimsnino in #638
- Improve compilation errors by @victimsnino in #639
- Fix disposables issue by @victimsnino in #640
- remove useless calls by @victimsnino in #644
- improve static_asserts by @victimsnino in #643
- fix new_thread join by @victimsnino in #646
- fix threads by @victimsnino in #648
- move to doctest by @victimsnino in #649
- Fix deadlocks in operators related to is_disposed by @victimsnino in #661
- Refactor disposables by @victimsnino in #667
- Try to stabilize disposables logic by @victimsnino in #673
- refactor concat to speedup it by @victimsnino in #677
- speedup switch_on_next by @victimsnino in #682
Misc
- Cover all possible schedulables in main thread scheduler qt by @victimsnino in #550
- Add linesfrombytes example by @victimsnino in #554
- extend hooks a bit by @victimsnino in #557
- add missing checks by @victimsnino in #559
- Add conan for CI by @victimsnino in #573
- Cache conan by @victimsnino in #575
- fix typo by @daixtrose in #584
- Add trompeloil as mocking library by @victimsnino in #583
- Add more mock tests by @victimsnino in #587
- Extend doc by @victimsnino in #595
- add benchmarks over subjects by @victimsnino in #597
- Try to speedup subjects by @victimsnino in #596
- minor coverage change by @victimsnino in #621
- Use cppcheck right by @victimsnino in #654
- add new benchmarks by @victimsnino in #676
New Contributors
- @daixtrose made their first contribution in #584
Full Changelog: v2.1.1...v2.2.0