gitmyhub

XMPPFramework

Objective-C ★ 5.9k updated 2y ago

An XMPP Framework in Objective-C for Mac and iOS

XMPPFramework is an Objective-C library for Mac and iOS developers who need to add XMPP-based messaging to their apps. XMPP, or Extensible Messaging and Presence Protocol, is an open standard for real-time chat and presence tracking. This library implements the core XMPP specification and handles the low-level details of sending and receiving XML-based messages, so developers do not have to build that infrastructure from scratch.

The library is built around a modular design, meaning you can include only the pieces your app needs. Beyond the core messaging layer, it ships with a set of official XMPP extensions called XEPs, which cover common functionality like group chat, contact lists, user presence, file transfer, and more. Each extension is a separate module that can be added or left out depending on what the app requires.

Performance and thread safety are central to how the framework is designed. It uses Apple's Grand Central Dispatch system to run its work in the background without ever blocking the main interface thread. According to the README, it performs well on both older iPhones and high-core-count Mac hardware.

Installation is available through two widely used package managers, CocoaPods and Carthage, both of which pull the framework into an Xcode project with a few lines of configuration. The library supports both Objective-C and Swift projects. Swift code must be kept in a separate folder, and any public Swift interfaces must be compatible with Objective-C.

The project welcomes contributions. Developers looking to help can add test coverage, annotate existing code for Swift nullability, or update the included example projects. Security issues should be reported privately via email to one of the maintainers rather than through public GitHub issues. A GitHub wiki provides setup guides for Mac and iOS along with a full list of supported XMPP extensions.