Skip to content


Repository files navigation


Timelane Icon

RxTimelane provides RxSwift bindings for profiling RxSwift code with the Timelane Instrument.

Timelane Instrument



Note: To observe the output of using TimelaneCombine you need to install the Timelane Instrument in advance. More information at:

Import the RxTimelane framework in your code:

import RxTimelane

Use the lane(_) operator to profile a subscription via the TimelaneInstrument. Insert lane(_) at the precise spot in your code you'd like to profile like so:

downloadImage(at: url).
  .lane("Download: \(url.path)")
  .assign(to: \.image, on: myImageView)

Then profile your project by clicking Product > Profile in Xcode's main menu.

Select the Timelane Instrument template:

Timelane Instrument Template

Inspect your subscriptions on the timeline:

Timelane Live Recording

For a more detailed walkthrough go to

API Reference


Use lane("Lane name") to send data to both the subscriptions and events lanes in the Timelane Instrument.

lane("Lane name", filter: [.subscriptions]) sends begin/completion events to the Subscriptions lane. Use this syntax if you only want to observe concurrent subscriptions.

lane("Lane name", filter: [.events]) sends events and values to the Events lane. Use this filter if you are only interested in values a subscription would emit (e.g. for example subjects).

Additionally you can transform the values logged in Timelane by using the optional transformValue trailing closure:

lane("Lane name", transformValue: { value in
  return "Value: \(value)"


Swift Package Manager

I . Automatically in Xcode:

  • Click File > Swift Packages > Add Package Dependency...
  • Use the package URL to add TimelaneCombine to your project.

II . Manually in your Package.swift file add:

.package(url: "", from: "2.0.0")


CocoaPods is a dependency manager for Cocoa projects. For usage and installation instructions, visit their website. To integrate RxTimelane into your Xcode project using CocoaPods, add it to your Podfile:

pod 'RxTimelane', '~> 2.0'


Not supported. More info


This repo contains a simple demo app. To give it a try open RxTimelaneExample/RxTimelane.xcodeproj and run the "RxTimelaneExample" scheme.

Timelane demo app


Copyright (c) Marin Todorov 2020 This package is provided under the MIT License.