XMPPFramework
GitHub describes it as An XMPP Framework in Objective-C for Mac and iOS. The repository metadata lists Objective-C as its primary language. The metadata lists the NOASSERTION license. This article stays within the project description and details documented in the GitHub repository README.
robbiehanson/XMPPFramework: Abstract
GitHub describes it as An XMPP Framework in Objective-C for Mac and iOS. The repository metadata lists Objective-C as its primary language. The metadata lists the NOASSERTION license. This article stays within the project description and details documented in the GitHub repository README.
Repository scope
GitHub describes it as An XMPP Framework in Objective-C for Mac and iOS. The repository metadata lists Objective-C as its primary language. The metadata lists the NOASSERTION license. The README describes the project this way: XMPPFramework provides a core implementation of RFC-3920 (the XMPP standard), along with the tools needed to read & write XML. It comes with multiple popular extensions (XEP's), all built atop a modular architecture, allowing you to plug-in any code needed for the job. Additionally the framework is massively parallel and thread-safe. Structured using GCD, this framework performs well regardless of whether it's being run on an old iPhone, or on a 12-core Mac Pro. (And it won't block the main thread... at all)
Migration from 3.7 to 4.0
The README section "Migration from 3.7 to 4.0" states: There have been a number of changes to the public API of XMPPFramework in an attempt to improve the ergnomics and safety when used with Swift. Most Objective-C projects should require no changes, with a few minor exceptions. Many (simple) changes will be required for pure Swift projects, mostly due to the new nullability annotations. The process is still not complete so please submit issues and help if possible to minimize future breaking changes.
Migration from 3.7 to 4.0
The README section "Migration from 3.7 to 4.0" states: Swift Support in XMPPFrameworkSwift.framework and XMPPFramework/Swift subspec Modern Objective-C Syntax: Nullability annotations and generics. Most of Core, Authentication, Categories, and Utilities have been audited. Additional help is needed for Extensions. XMPPJID bareJID is now imported into Swift as bareJID instead of bare to prevent conflict with bare String. Also applies to domainJID . XMPPPresence intShow has been renamed showValue and is now an XMPPPresenceShow enum instead of int . This will be a warning in 4.0 but will be removed in 4.1. The XMPPMessage chatState string value is now imported into Swift as a native Swift String enum when using the Swift extensions. A new chatStateValue property is provided for accessing the raw String value in both Swift and Obj-C. Readonly properties are used instead of getter methods where applicable. Getter naming overrides for properties have been removed to reflect Apple's approach. The following modules still need an audit. If you use these modules please help out and contribute some time to audit them and submit a pull request, otherwise their API may contain breaking changes in future releases.
Migration from 3.7 to 4.0
The README section "Migration from 3.7 to 4.0" states: XEP-0191 Blocking XEP-0199 Ping XEP-0202 Time XEP-0136 Archiving XEP-0115 Capabilities (CoreDataStorage unaudited) XEP-0045 MUC (Storage unaudited) XEP-0054 vCardTemp (CoreDataStorage unaudited) XEP-0016 Privacy XEP-0012 Last Activity XEP-0009 RPC Roster (Storage unaudited) XMPPGoogleSharedStatus FileTransfer CoreDataStorage BandwidthMonitor
Editorial conclusion
The repository README is the source for this review. It does not replace a local installation or an independent test.
Community notes