Awesome Open Source
Awesome Open Source


Build Status CocoaPods Compatible Carthage Compatible Coverage Status Platform License


Bonjour networking for discovery and connection between iOS, macOS and tvOS devices.


  • Creating Service
  • Start & Stop Service
  • Stop Browsing
  • Create Connection with Another Service
  • Send Data
  • Send file from given file path
  • Send given text
  • Strong Events


iOS 9.0+ / macOS 10.9+ / tvOS 9.0+



CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:

$ gem install cocoapods

To integrate Merhaba into your Xcode project using CocoaPods, specify it in your Podfile:

source ''
platform :ios, '9.0'

target '<Your Target Name>' do
    pod 'Merhaba', '~> 1.2.1'

Then, run the following command:

$ pod install


Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.

You can install Carthage with Homebrew using the following command:

brew update
brew install carthage

To integrate Merhaba into your Xcode project using Carthage, specify it in your Cartfile:

github "abdullahselek/Merhaba" ~> 1.2.1

Run carthage update to build the framework and drag the built Merhaba.framework into your Xcode project.

Example Usage

Implement your class with MRBServerDelegate to handle Bonjour events

@interface ViewController : UIViewController<MRBServerDelegate>

Initiation of MRBServer

NSString *type = @"TestingProtocol";
self.server = [[MRBServer alloc] initWithProtocol:type];
self.server.delegate = self;

NSError *error = nil;
BOOL isStarted = [self.server start:&error];
NSLog(@"Check server started : %@", (isStarted) ? @"YES" : @"NO");

// Can handle error if not nil

Connect to selected service

[self.server connectToRemoteService:selectedService];

Sending data to selected service

NSData *data = [textToSend dataUsingEncoding:NSUTF8StringEncoding];
MRBServerErrorCode errorCode = [self.server sendData:data];
NSLog(@"Data sent with code : %ld", errorCode);

Handling incoming data with didAcceptData function

NSString *message = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"Incoming message : %@", message);

Sending file at given path

MRBServerErrorCode code = [self.server sendFileAtPath:YOUR_FILE_PATH];

Send text

MRBServerErrorCode code = [self.mrbServer sendText:@"text"];

Stopping server

[self.server stop];

Stopping browsing for bonjour services

[self.server stopBrowser];


Merhaba is released under the MIT license. See LICENSE for details.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Objective C (110,695
Ios (19,315
Macos (8,853
Tvos (729
Related Projects