Skip to content

Releases: fedeAlterio/R3Async

v0.0.5

15 Jan 17:13

Choose a tag to compare

Stateless Subjects

  • StatelessSubject - Forgets completion when all observers unsubscribe
  • StatelessBehaviorSubject - Resets to initial value when all observers unsubscribe

Multicasting Operators

  • Multicast - Share a single subscription using a custom subject
  • Publish - Convenient multicasting with Subject or BehaviorSubject
  • StatelessPublish - Multicasting with StatelessSubjects
  • RefCount - Auto-connect/disconnect based on subscriber count

####Others

  • Finally renamed OnDispose

Stateless subjects solve the common Publish().RefCount() gotcha where completed observables can't be reused (see this StackOverflow discussion). With stateless subjects, the observable automatically resets when all observers unsubscribe, making it truly reusable for multiple subscription cycles.

v0.0.4

10 Jan 12:20

Choose a tag to compare

Release Notes

New Features

BehaviorSubject

  • Added Subject.CreateBehavior<T>() factory method for creating behavior subjects
  • BehaviorSubjects cache the latest value and immediately emit it to new subscribers
  • Supports both Serial and Concurrent publishing options via BehaviorSubjectCreationOptions

AsyncContext

  • Added AsyncContext as a union type that can represent either SynchronizationContext or TaskScheduler
  • Provides unified abstraction for controlling async context across operators (ObserveOn)

ObserveOn Operator

  • Added ObserveOn() operator to switch async context for downstream observers
  • Accepts an AsyncContext as "scheduler". AsyncContext means either a SynchronizationContext or a TaskScheduler

Yield Operator

  • Added Yield() operator to introduce asynchronous yield points in the observable pipeline
  • Useful to force the producer thread to return on a sync chain

CombineLatest Operator

  • Added CombineLatest() operator for combining multiple observables
  • Emits whenever any source observable produces a value, combining it with the latest values from other sources
  • Supports combining 2-8 observables with strongly-typed tuple results

Bug Fixes

CreateAsBackgroundJob

  • Fixed CreateAsBackgroundJob() to respect the subscription's async context when no TaskScheduler is specified
  • Previously incorrectly used TaskScheduler.Default by default
  • Now properly yields on the subscription's async context, allowing context-aware execution

v0.0.3

06 Jan 14:36

Choose a tag to compare

Full Changelog: v0.0.2...v0.0.3

v0.0.2

06 Jan 10:30

Choose a tag to compare

fixed release.yml