Latest 2.1
License MIT
Platforms ios 8.0, requires ARC

Type-safe and handy observation system in Swift.

Quick Example

struct MessageEvent: EventType {
    let message: String

EventHub.addObserver(self) { (event: MessageEvent) in
    print(event.message) // -> 😜
} "😜"))


  1. Define events which adopt EventType protocol
    The event can be a class, structure, or enumeration.

    enum LoginEvent: EventType {
      case success(id: String)
      case failure(error: ErrorType)
  2. Add observers and blocks
    Call addObserver(observer:thread:block:).

    • observer: An observer object. If the observer object is destroyed, the observation will be removed automatically and the block will never be called.
    • thread: Optional (default is nil). It determines that which thread executes the block. If it’s nil, the block is run synchronously on the posting thread.
    • block: A callback closure. The block receives the defined event.
    EventHub.addObserver(self, thread: .Main) { (event: LoginEvent) in
      switch event {
      case .success(let id):
      case .failure(let error):
  3. Post events id))


Swift 3.0


EventHub is available through CocoaPods. To install
it, simply add the following line to your Podfile:

pod "EventHub"


Yuki Mishima, [email protected]


EventHub is available under the MIT license. See the LICENSE file for more info.

Latest podspec

    "name": "EventHub",
    "version": "2.1",
    "summary": "Type-safe and handy observation system in Swift. It's like NSNotificationCenter or EventBus(Android).",
    "homepage": "",
    "license": "MIT",
    "authors": {
        "Yuki Mishima": "[email protected]"
    "source": {
        "git": "",
        "tag": "2.1"
    "platforms": {
        "ios": "8.0"
    "requires_arc": true,
    "source_files": "Pod/Classes/**/*"

Pin It on Pinterest

Share This