Skip to content

Latest commit

 

History

History
45 lines (38 loc) · 2.02 KB

TODO.md

File metadata and controls

45 lines (38 loc) · 2.02 KB

TODO

v0.0.4

  • Write test iOS client showing data on stream + allowing sending XMPP packets
  • Split XMPP file into several files / extensions

Backlog

  • Check default port (5222 vs 5223)
  • Make it possible to compile on MacOS and use either Network.framework or BSD Socket with SwiftPM.
  • Autogenerate test manifest for Linux (LinuxMain.swift), with swift test --generate-linuxmain References: https://oleb.net/blog/2017/03/keeping-xctest-in-sync/#swift-41-can-update-alltests-for-you Example: https://github.com/apple/swift-protobuf
  • Document code (Jazzy?).
  • Detect connection loss when not receiving the replies from the keep-alive
  • Detect p1:push support before sending p1:push configuration.
  • Ability to send an IQ, passing a block to process the IQ reply.
  • Define autoreconnect strategy.
  • Add parser in the XMPP lib, focusing on extracting only the pieces of code we use.
  • Add other auth mechanisms
  • Add support for optional session
  • Add roster query support.
  • End to end encryption support
  • Attempt to run it on Android ?
  • Message ack
  • Persistent outgoing message queue to accumulate when there is no network
  • Retry sending unsent messages in background
  • Check progress on SE-0236 to update Package.swift and update doc.

Done

  • Linux support with additional Foundation compatibility code
  • SwiftNIO support, with TLS
  • MacOS support
  • Organise tests for Swift PM, staying compliant with XCode setup
  • Test project setup with Swift PM
  • Publish in Cocoapods / test using project from Carthage
  • Bootstrap the framework to make it usable from Carthage, Cocoapod or Git submodules
  • Observe incoming and outgoing Stream content to help with debugging. It could be used in a standalone XMPP console for iPad.
  • Keep-alive support
  • Basic support for p1:rebind
  • Support for basic push notifications: Setup session and p1:push. Pass token if known.
  • Add SSL (port 5223) support (not starttls as Network.Framework does not support STARTTLS yet).