Skip to content

Add async stream interfaces#51

Open
haeseoklee wants to merge 1 commit into
uber:mainfrom
haeseoklee:add-async-stream-interfaces
Open

Add async stream interfaces#51
haeseoklee wants to merge 1 commit into
uber:mainfrom
haeseoklee:add-async-stream-interfaces

Conversation

@haeseoklee
Copy link
Copy Markdown

Summary

Add Swift Concurrency-friendly stream interfaces on top of the existing RxSwift-based RIBs APIs.

This change keeps RxSwift as the source of truth and adds additive async/await conveniences for observing lifecycle streams and workflow step outputs.

Changes

  • Add ObservableType.asAsyncStream(...)
  • Add ObservableType.asAsyncThrowingStream(...)
  • Add async lifecycle stream conveniences:
    • InteractorScope.isActiveSequence
    • RouterScope.lifecycleSequence
    • Working.isStartedSequence
    • LeakDetector.statusSequence
  • Add Workflow async APIs:
    • Step.asAsyncSequence(...)
    • Step.onAsyncStep(...)
  • Add async stream tests covering:
    • Observable to async stream bridging
    • throwing async stream behavior
    • interactor lifecycle sequence
    • worker lifecycle sequence
    • router lifecycle sequence
    • workflow step async sequence output
    • async workflow step output

Notes

The async APIs are added via extensions so existing protocol conformers and mocks remain source-compatible.

RxSwift remains the internal runtime for lifecycle and workflow behavior. The async stream APIs bridge from the existing observable streams rather than replacing them.

@CLAassistant
Copy link
Copy Markdown

CLAassistant commented May 20, 2026

CLA assistant check
All committers have signed the CLA.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants