OpenCombine Versions Save

Open source implementation of Apple's Combine framework for processing values over time.

0.14.0

1 year ago

This release is compatible with Xcode 14.2 and Swift 5.7

Additions

  • Primary associated type support for Publisher, Subscriber, ConnectablePublisher, Subject and Scheduler protocols (#239)

Bugfixes

  • Fixed nullifying the reference to parent in Future's conduit (#239)

0.13.0

2 years ago

This release is compatible with Xcode 13.2.

Additions

  • Windows support (thank you @MaxDesiatov!)
  • Publishers.Throttle (#195, thank you @stuaustin)
  • Publishers.PrefixUntilOutput (#206)
  • Publishers.Zip (#222, thank you @MaxDesiatov and @ArthurChi)
  • async/await extensions: Future.value and Publisher.values (#219)

Bugfixes

  • Fixed reentrancy bugs in Subscribers.Sink and Subscribers.Assign (#210)
  • Fixed lifecycle bugs in Publishers.Concatenate (#210)

0.12.0

3 years ago

This release adds a new OpenCombineShim product that will conditionally re-export either Combine on Apple platforms, or OpenCombine on other platforms. Additionally, ObservableObject protocol is now available and working on all platforms.

A bug with Timer(timeInterval:repeats:block:) firing immediately not accounting for the passed timeInterval is fixed.

Merged pull requests:

0.11.0

3 years ago

This release is compatible with Xcode 12.1.

Additions

  • Publisher.assigned(to:) method that accepts a Published.Publisher.
  • New Publisher.switchToLatest() overloads.
  • New Publisher.flatMap(maxPublishers:_:) overloads.
  • Optional.publisher property.
  • New _Introspection protocol that allows to track and explore the subscription graph and data flow.

Bugfixes

  • The project should now compile without warnings.
  • The following entities have been updated to match the behavior of the newest Combine version:
    • Subscribers.Assign
    • Publishers.Breakpoint
    • Publishers.Buffer
    • CombineIdentifier
    • Publishers.CompactMap
    • Publishers.Concatenate
    • Publishers.Debounce
    • Publishers.Delay
    • DispatchQueue.SchedulerTimeType.Stride
    • Publishers.Drop
    • Publishers.Encode
    • Publishers.Decode
    • Publishers.Filter
    • Publishers.HandleEvents
    • Publishers.IgnoreOutput
    • Publishers.MeasureInterval
    • OperationQueue scheduler
    • Published
    • Publishers.ReceiveOn
    • Publishers.ReplaceError
    • RunLoop scheduler
    • Publishers.Sequence
    • Subscribers.Sink
    • Publishers.SubscribeOn
    • Publishers.Timeout
    • Timer publisher

Known issues

  • The default implementation of the objectWillChange requirement of the ObservableObject protocol is not available in Swift 5.1 and later.

0.10.2

3 years ago

Bugfixes

  • Fixed a crash caused by recursive acquisition of a non-recursive lock in SubbjectSubscriber (#186, thanks @stuaustin for the bug report)

Known issues

  • The default implementation of the objectWillChange requirement of the ObservableObject protocol is not available in Swift 5.1 and later.

0.10.1

3 years ago

Bugfixes

  • Fixed build errors on Linux with Swift 5.0 and Swift 5.3 toolchains (thanks, @adamleonard and @devmaximilian)

Known issues

  • The default implementation of the objectWillChange requirement of the ObservableObject protocol is not available in Swift 5.1 and later.

0.10.0

3 years ago

This release is compatible with Xcode 11.5.

Additions

  • Timer.publish(every:tolerance:on:in:options:) (#156, thank you @MaxDesiatov)
  • OperationQueue scheduler (#165)
  • Publishers.Timeout (#164)
  • Publishers.Debounce (#133)

Bugfixes

  • PassthroughSubject, CurrentValueSubject and Future have been rewritten from scratch. They are now faster, more correct and no longer leak subscriptions (#170).

Known issues

  • The default implementation of the objectWillChange requirement of the ObservableObject protocol is not available in Swift 5.1 and later.

0.9.0

3 years ago

This release is compatible with Xcode 11.5.

Additions

  • The Subscribers.Demand struct can be nicely formatted in LLDB (#146, thank you @mayoff).
  • Publishers.SwitchToLatest (#142).
  • The RunLoop scheduler in OpenCombineFoundation (#131).
  • Publishers.Catch and Publishers.TryCatch (#140).

Bugfixes

  • Worked around a bug in the Swift compiler when building the COpenCombineHelpers target (#145, thank you @mayoff).
  • Improved documentation.

Known issues

  • The default implementation of the objectWillChange requirement of the ObservableObject protocol is not available in Swift 5.1 and later.

0.8.0

4 years ago

This release is compatible with Xcode 11.3.1.

Additions

  • Publishers.ReplaceEmpty (#122, thank you @spadafiva)
  • NotificationCenter.Publisher (#84)
  • URLSession.DataTaskPublisher (#127)
  • Publishers.DropUntilOutput (#136)
  • Publishers.CollectByCount (#137)
  • Publishers.AssertNoFailure (#138)
  • Publishers.Buffer (#143)

Bugfixes

  • Fixed integer overflows in DispatchQueue.SchedulerTimeType.Stride (#126, #130)
  • Fixed the 'default will never be executed' warning on non-Darwin platforms (like Linux) (#129)

Known issues

  • The default implementation of the objectWillChange requirement of the ObservableObject protocol is not available in Swift 5.1.

0.7.0

4 years ago

This release is compatible with Xcode 11.2.1.

Additions

  • Publishers.Delay (#114)
  • Publishers.ReceiveOn (#115)
  • Publishers.SubscribeOn (#116)
  • Publishers.MeasureInterval (#117)
  • Publishers.Breakpoint (#118)
  • Publishers.HandleEvents (#118)
  • Publishers.Concatenate (#90)

Known issues

  • The default implementation of the objectWillChange requirement of the ObservableObject protocol is not available in Swift 5.1.