Latest 0.3.1
License MIT
Platforms ios 10.0
Dependencies CocoaAsyncSocket

UDP-based discoverability tool. A way to start conversations in your projects.

Say hello to all devices on your subnet at once, without having to find or type in IP addresses.

  • Easy UDP messages: Send fast broadcasts to all local clients with a string body. This string message body could be anything; JSON, for example, or it could just be "Hello". The message can be at most about 1400 characters. The recipient gets the sender’s IP for free, so don’t bother including that.
  • Zero configuration integration between devices: When a device comes on WiFi (i.e. iPad, Raspberry Pi, etc.) it will be assigned an address. The first step in setting up local devices is often finding or configuring the device address information. With Harold you can simply advertise availability as an initial volley and the recipient can decide to initiate a two-way conversation from there.
  • iOS devices and hardware gadgets: Talk directly from iOS-to-iOS or integrate Node.js projects talking Swift-to-Node or vice-versa.
  • Bonjour-ish: For more serious use-cases check out Bonjour.

Say hello from Node.js

var broadcaster = require('harold')()
broadcaster.broadcast("Hello!!") // goes to everyone on the subnet

Get messages in Swift

self.scanner = Harold()

func haroldReceived(fromHost host: String, message: String) {
  print(host) // 192.168.1...
  print(message) // "Hello!!"

Say hello from Swift

var broadcaster = Harold()
broadcaster.broadcast(message: "Hello!!")

Get messages in Node.js

var listener = new require('harold')()
listener.listen(function (host, message) {
  console.log(host)      // etc
  console.log(message)   // "Hello!!"


var listener = new require('harold')()
listener.on('message', function (host, message) {
  console.log(host)      // etc
  console.log(message)   // "Hello!!"

Latest podspec

    "name": "Harold",
    "version": "0.3.1",
    "summary": "Simple local network discoverability layer for Swift and Node.js",
    "description": "Simple discoverability layer for Swift and Node.js u2013u00a0Find your projects, apps and devices on your local subnetnby broadcasting (or scanning for) UDP-layer string-based messages. Helps projects to get connected quickly andnautomatically, without manually configuring connection information.",
    "homepage": "",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    "authors": {
        "Lacy Rhoades": "[email protected]"
    "source": {
        "git": "",
        "tag": "0.3.1"
    "social_media_url": "",
    "platforms": {
        "ios": "10.0"
    "source_files": "Swift/Classes/**/*",
    "dependencies": {
        "CocoaAsyncSocket": []

Pin It on Pinterest

Share This