All Projects → alexjuda → Servus

alexjuda / Servus

Licence: MIT License
Ad-hoc peer-to-peer iOS library

Programming Languages

swift
15916 projects
objective c
16641 projects - #2 most used programming language

Projects that are alternatives of or similar to Servus

Pedalino
Smart wireless MIDI foot controller for guitarists and more.
Stars: ✭ 105 (+288.89%)
Mutual labels:  wifi, bluetooth
ESP32 IMU BARO GPS VARIO
GPS altimeter/variometer with LCD display, routes with waypoints, data/gps track logging, bluetooth NMEA sentence transmission, wifi AP + webpage configuration
Stars: ✭ 72 (+166.67%)
Mutual labels:  wifi, bluetooth
ESP-WROOM-Breakout
Breakouts for ESP8266 and ESP32 WiFi/WLAN + Bluetooth modules from Espressif (ESP-WROOM-02, ESP-WROOM-32)
Stars: ✭ 32 (+18.52%)
Mutual labels:  wifi, bluetooth
Multipeer
📱📲 A wrapper for the MultipeerConnectivity framework for automatic offline data transmission between devices
Stars: ✭ 170 (+529.63%)
Mutual labels:  wifi, bluetooth
seeed-ambd-firmware
This RTL8720DN firmware export a RPC server interface through hardware SPI/UART port to MCU.
Stars: ✭ 20 (-25.93%)
Mutual labels:  wifi, bluetooth
Radareeye
A tool made for specially scanning nearby devices[BLE, Bluetooth & Wifi] and execute our given command on our system when the target device comes in-between range.
Stars: ✭ 218 (+707.41%)
Mutual labels:  wifi, bluetooth
rpi3-wifi-conf
A simple Python script to configure wifi over bluetooth for a Raspberry Pi 3
Stars: ✭ 112 (+314.81%)
Mutual labels:  wifi, bluetooth
Androbd
Android OBD diagnostics with any ELM327 adapter
Stars: ✭ 573 (+2022.22%)
Mutual labels:  wifi, bluetooth
Low power TTGO T-beam
Low power consumption for TTGO t-beam
Stars: ✭ 45 (+66.67%)
Mutual labels:  wifi, bluetooth
react-native-google-nearby-messages
📲 Communicate with nearby devices using Bluetooth, BLE, WiFi and near-ultrasonic audio. Broadcast and receive small payloads (like strings) using the easy-to-use React Native API!
Stars: ✭ 143 (+429.63%)
Mutual labels:  wifi, bluetooth
Find3 Android Scanner
An android app that scans Bluetooth and WiFi for FIND3
Stars: ✭ 99 (+266.67%)
Mutual labels:  wifi, bluetooth
Apple-Signal
Connect Apple devices via bluetooth and wifi.
Stars: ✭ 27 (+0%)
Mutual labels:  wifi, bluetooth
Apple Family
A simple framework that brings Apple devices together - like a family
Stars: ✭ 59 (+118.52%)
Mutual labels:  wifi, bluetooth
Esp32marauder
A suite of WiFi/Bluetooth offensive and defensive tools for the ESP32
Stars: ✭ 233 (+762.96%)
Mutual labels:  wifi, bluetooth
Potato Library
Easy to use Utility library for Android
Stars: ✭ 45 (+66.67%)
Mutual labels:  wifi, bluetooth
ESP32 Thing Plus
ESP32 Thing-compatible board using the WROOM module and a QWIIC connector.
Stars: ✭ 18 (-33.33%)
Mutual labels:  wifi, bluetooth
Find3
High-precision indoor positioning framework, version 3.
Stars: ✭ 4,256 (+15662.96%)
Mutual labels:  wifi, bluetooth
Sparrow Wifi
Next-Gen GUI-based WiFi and Bluetooth Analyzer for Linux
Stars: ✭ 525 (+1844.44%)
Mutual labels:  wifi, bluetooth
NetService
Swift NetService (Bonjour / Zeroconf / mDNS) implementation for Linux
Stars: ✭ 103 (+281.48%)
Mutual labels:  zeroconf, bonjour
python-zeroconf
A pure python implementation of multicast DNS service discovery
Stars: ✭ 468 (+1633.33%)
Mutual labels:  zeroconf, bonjour

Servus

Lightweight wrapper around NSNetService for use in iOS apps. Enables discovering other devices over standard LAN and ad-hoc peer-to-peer WiFi or Bluetooth networks.

Written in Swift 3.

What is it for?

When nearby devices are discovered and properly resolved, Servus provides a hostname for each of them. Combine it with a HTTP Server for iOS, and HTTP requests, and BAM! You send data between devices using Bluetooth or WiFi without having to worry about the infrastructure.

Isn't it MultipeerConnectivity?

Apple provides a framework for such ad-hoc networks. However, from my experience it's quite unreliable (gets stuck pretty often), and is painful to test.

Servus, on the other hand, provides only the discovery phase. Data transfer is done separately, so the developer has greater insight to it. Also, it's super easy to test! Just open the app on the simulator, or on a device within the same LAN as your computer and you can send HTTP requests to http://your-device-hostname:PORT/. And it works. Magic.

Example

explorer = Explorer()
explorer.delegate = self
explorer.startExploring() // Start announcing this device's presence & reporting discovery of other ones.

...

func explorer(explorer: Explorer, didDeterminePeer peer: Peer) {
    print("Determined hostname for \(peer.identifier): \(peer.hostname!)")
}

For working example check out the app target.

Installation

Carthage

Servus can be integrated with Xcode project via Carthage, a dependency manager for Cocoa.

  1. Add github "airalex/Servus" to your Cartfile.
  2. Run carthage update
  3. Drag Carthage/Build/iOS/Servus.framework to your Xcode project, or select File > Add Files...
  4. Make sure /usr/local/bin/carthage copy-frameworks Run Script phase is present for your target.
  5. Add $(SRCROOT)/Carthage/Build/iOS/Servus.framework to Input Files list.

Manual

  1. git clone [email protected]:airalex/Servus.git
  2. Copy Servus/ directory to your project.
  3. Make sure all files are present in your project (Explorer, Peer, Advertiser, Resolver, Revealer).
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].