Releases: victimsnino/ReactivePlusPlus
v2.2.1 - Fixes for v2.2.0
What's Changed
- fix dynamic connectable by @victimsnino in #686
- Fix observer disposing after on_erorr/on_completed by @victimsnino in #685
- Add dynamic_connectable_observable to global include by @CorentinBT in #688
Full Changelog: v2.2.0...v2.2.1
v2.2.0 - GPRC/ASIO and overall improvements
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
v2.1.1 - Minor release to fix v2.1.0 issue
What's Changed
- fix TSAN by @victimsnino in #544
- fix dynamic copy/move by @victimsnino in #547
Full Changelog: v2.1.0...v2.1.1
v2.1.0
What's Changed
v2 branch is feature comparative with v1 for now according to #324!
This release brings a lot of new operators, resolves performance issues and resolves important issue related to current_thread vs new_thread usage (for now it is pretty safe to use current_thread scheduler inside new_thread scheduler in all possible cases). Also documentation was improved a bit, error messages should be a bit more clear for now in case of unsatisfied constraints.
New parts:
- Add serialized subject by @victimsnino in #502
- Add window_toggle operator by @victimsnino in #506
- Add replay_subject by @CorentinBT in #508
- Timer source by @CorentinBT in #513
- Time point timer by @CorentinBT in #514
- Distinct by @CorentinBT in #520
- Add tap operator by @CorentinBT in #521
- Add zip operator by @CorentinBT in #523
- Add on_error_resume_next operator by @CorentinBT in #528
- Finally operator by @CorentinBT in #531
Thanks to @CorentinBT for PRs with new operators.
Rest commits:
- minor concepts fixes by @victimsnino in #492
- Extend doc with examples by @victimsnino in #497
- Fix clang compilation by @victimsnino in #498
- Fix subscribe by @victimsnino in #500
- Minor cleanup by @victimsnino in #501
- Proper forwarding for subjects by @victimsnino in #503
- fix dynamic observer/observable by @victimsnino in #504
- reduce get_observer() calls by @victimsnino in #505
- Fix incorrect usage of subject_state by @victimsnino in #509
- Make static container without array by @victimsnino in #510
- simplify disposables in subjects by @victimsnino in #511
- Remove unclear
with_disposable
typetrait by @victimsnino in #512 - Hide disposables inside disposable_wrapper by @victimsnino in #515
- Auto dispose disposable in case of destruction if needed by @victimsnino in #518
- Extend window_toggle tests by @victimsnino in #507
- Improve error messages by @victimsnino in #522
- Add auto clang-format by @victimsnino in #524
- extend clang-tidy by @victimsnino in #525
- Update subjects by @victimsnino in #526
- Simpify disposables tests by @victimsnino in #527
- Add missing operators and sources fwd by @CorentinBT in #529
- Optionally use defer_for/defer_to by @victimsnino in #530
- Document dynamic_ versions by @victimsnino in #534
- Update doxy by @victimsnino in #535
- Fix classic race with atomics + mutex by @victimsnino in #536
- timeout operator by @victimsnino in #537
- Fix timeout type by @victimsnino in #540
- Own queue if needed by @victimsnino in #541
- Correctly share current_thread with new_thread by @victimsnino in #542
Full Changelog: v2.0.0...v2.1.0
v2.0.0 - First release for v2
What's Changed
First release for v2 - updated implementation of RPP with new zero-overhead principle and improved performance.
Main changes from v1 version:
- observer is not copyable by default -> allows to remove extra unused heap allocations for internal states
- subscription changed to disposable + extend disposable customization logic -> now observable forward disposable to observer IF NEEDED instead of forking subscription inside each operator without exact knowledge if it is actually needed
- operators now is freestanding functions to be used via pipe operator -> reduced amount of code inside observable and decoupled different parts of RPP
- most of the code can be totally optimized away or processed a much more faster. v2 benchmarks vs v1 benchmarks
- extended documentation and examples
Currently main goal is to implement rest missing operators to be fully feature-compatible with RxCpp.
Checkout readme.md and documentation for more details =)
v2 is still under active development
New Contributors
- @CorentinBT made their first contribution in #374
Full Changelog: v0.2.2...v2.0.0
v0.2.3 - last v1 release
Overview
Currently full focus transfered to v2 so releasing it as last stable version for v1 to be able better fecthing/downloading it
What's Changed
- Simplify a bit by @victimsnino in #321
- Bump actions/upload-artifact from 2 to 3 by @dependabot in #322
- Bump peter-evans/create-or-update-comment from 2 to 3 by @dependabot in #333
Full Changelog: v0.2.2...v0.2.3
v0.2.2
Overview:
- A few new operators added:
- timeout
- debounce
- reduce/average/min/max/sum/count
- Fixed issue related to usage of Trampoline scheduler (#277 #304) Same issue found in RxCpp but not fixed (ReactiveX/RxCpp#593)
- New behavior subject
- Dramatically improved documentation for operators
What's Changed
- Add timeout with fallback observable by @victimsnino in #302
- Add behavior subject by @victimsnino in #303
- Use queue based scheduling in Delay by @victimsnino in #305
- Add debounce operator by @victimsnino in #308
- Trampoline scheduler as default by @victimsnino in #314
- Make lift more readable by @victimsnino in #315
- Add combining operators (reduce, average, min, max, sum, count) by @victimsnino in #316
- Improve doxygen docs and make it much more detailed No1 by @victimsnino in #317
- Improve doxygen by @victimsnino in #318
Full Changelog: v0.2.1...v0.2.2
v0.2.1 - MacOS support!
Now RPP supports Apple Clang compiler!
v0.2.0 - Major release with QT support!
Changes since v0.1.0:
- Native support for QT!
- new module
rppqt
added - new source
from_signal
added to make observable which would emit items from provided QObject's signal - new
main_thread_scheduler
which would schedule actions to the main QApplication's thread to update GUI objects properly from the main thread! - Examples
- API Reference
- Article on medium - QT + ReactiveProgramming = ❤
- new module
- A lot of new operators were added since v0.1.0:
- take_last
- take_until
- last
- delay
- sample_with_time
- one_error_resume_next
- timeout
- Performance of some operators was improved again!
- Fixed some issues preventing Intellisense to show correct hints/tips
What's Changed
- nit: Remove some redundant empty lines by @tcw165 in #244
- Fix memory leaks by @victimsnino in #245
- Minor improvements by @victimsnino in #246
- Split CI to multiple jobs by @victimsnino in #247
- try to fix sonar by @victimsnino in #250
- Collect coverage on debug by @victimsnino in #251
- Speedup trampoline by @victimsnino in #252
- Add "take_last" by @victimsnino in #249
- nit: Give better name for on_subscribe functor. by @tcw165 in #254
- Simplify subscription by @victimsnino in #256
- Fix race condition by @victimsnino in #257
- nit: Name better for "lift" 's on_subscribe functor. by @tcw165 in #259
- Early unsubscribe by @victimsnino in #258
- Bump actions/checkout from 2 to 3 by @dependabot in #263
- Add "take_until" operator. by @tcw165 in #235
- Add more tests for trampoline scheduler by @tcw165 in #264
- Polish readability of code by @tcw165 in #262
- nit: Fix typos, line spacers, check items in doc by @tcw165 in #270
- Add "last" operator by @tcw165 in #223
- Fix take until by @victimsnino in #271
- Serialized subscriber by @victimsnino in #273
- Use spinlock in "partly-multithreaded" operators instead of heavy-mutex by @victimsnino in #274
- Add "delay" operator by @tcw165 in #269
- Polish "delay" by @victimsnino in #275
- Petri net executor example by @thorstink in #276
- Make test_scheduler more smart by @victimsnino in #278
- Add "sample_with_time" operator by @victimsnino in #280
- Add "on_error_resume_next" operator. by @tcw165 in #279
- Split lift by @victimsnino in #281
- Add sample with package by @victimsnino in #284
- Simplify templates for current_thread a bit by @victimsnino in #285
- Add timeout operator by @victimsnino in #287
- Fix intellisense by @victimsnino in #289
- RPPQT: QT support for RPP. Part 1: from_signal by @victimsnino in #291
- Fix issue with execution after unsubscribe by @victimsnino in #293
- Qt scheduler by @victimsnino in #292
- Qt release by @victimsnino in #294
- Qt example by @victimsnino in #296
New Contributors
- @thorstink made their first contribution in #276
Full Changelog: v0.1.0...v0.2.0
v0.1.4 - Minor fix for Intellisense
Fix VS Code intellisense for some operators