aboutsummaryrefslogtreecommitdiffstats

jabber client library

  • luz: the client. sends and receives messages. contains a message/user store.

TODO:

  • [x] how to know if stanza has been sent
  • [ ] error states for all negotiation parts
  • [x] better errors
  • [x] rename structs
  • [x] remove commented code
  • [ ] asynchronous connect (with take_mut?)
  • [x] split into separate crates: stanza, jabber, and luz
  • [ ] use nom for better jid parsing

specs:

  • [x] rfc 6120: core
  • [x] rfc 6121: im
  • [x] rfc 7590: tls
  • [x] xep-0368: srv records for xmpp over tls
  • [ ] server side downgrade protection for sasl
  • [x] xep-0199: xmpp ping
  • [x] xep-0203: delayed delivery
  • [x] xep-0030: service discovery
  • [x] xep-0115: entity capabilities
  • [x] xep-0163: pep
  • [ ] xep-0245: /me
  • [ ] xep-0084: user avatar
  • [x] xep-0172: user nickname
  • [ ] xep-0280: message carbons
  • [ ] xep-0191: blocking
  • [ ] xep-0313: mam
  • [ ] xep-0198: stream management
  • [ ] xep-0085: chat state notifications
  • [ ] xep-0428: fallback indication
  • [ ] xep-0359: unique and stable stanza ids
  • [ ] xep-0424: message retraction
  • [ ] xep-0352: client state indication
  • [ ] xep-0166: jingle
  • [ ] xep-0292: vcard4
  • [ ] chat read markers
  • [ ] xep-0490: message displayed synchronization
  • [ ] xep-0333: displayed markers
  • [ ] xep-0184: message delivery receipts
  • [ ] xep-0100: gateway interation

calls: - [ ] xep-0167: jingle rtp sessions - [ ] xep-0353: jingle message initiation - [ ] xep-0176: jingle ice-udp transport - [ ] xep-0320: use of dtls-srtp in jingle sessions - [ ] xep-0215: external service discovery (stun/turn) - [ ] xep-0293: jingle rtp feedback negotiation - [ ] xep-0294: jingle trp header extensions negotiation - [ ] xep-0338: jingle grouping framework - [ ] xep-0339: source-specific media attributes in jingle

mix: - [ ] xep-0369: mix

e2ee: - [ ] xep-0380: explicit message encryption - [ ] xep-0420: stanza content encryption - [ ] xep-0384: omemo - [ ] xep-0396: jingle encrypted transports omemo

file/media sharing (further research needed): - [ ] xep-0363: http file upload - [ ] xep-0385: stateless inline media sharing - [ ] xep-0066: out of band data - [ ] xep-0261: jingle in-band bytestreams - [ ] xep-0234: jingle file transfer

need more research: - [ ] xep-0154: user profile - [ ] message editing - [ ] xep-0308: last message correction (should not be used for older than last message according to spec) - [ ] message styling - [ ] xep-0393: message styling

will prioritise new spec instead of: - [ ] muc - [ ] xep-0045: muc - [ ] xep-0249: direct muc invitations - [ ] xep-0410: muc self-ping - [ ] xep-0402: pep native bookmarks - [ ] vcard legacy - [ ] xep-0398: user avatar compat - [ ] xep-0153: vcard avatars - [ ] xep-0054: vcard-temp - [ ] legacy bookmarks - [ ] xep-0048: legacy bookmarks - [ ] xep-0049: private xml storage

pubsub: - [ ] xep-0060: pubsub - [ ] xep-0222: public data via pubsub - [ ] xep-0223: private data via pubsub

later (nice to have): - [ ] xep-0077: in-band registration - [ ] xep-0157: contact addresses - [ ] xep-0455: service outage status - [ ] web compliance: rfc 7395, xep-0206, xep-0124, xep-0156 - [ ] mobile compliance - [ ] xep-0357: push notifications - [ ] xep-0286: mobile considerations - [ ] client connection optimisations - [ ] xep-0386: bind 2.0 - [ ] xep-0409: im routing-ng - [ ] xep-0397: instant stream resumption - [ ] xep-0390: entity capabilities 2.0 - [ ] improved on-boarding - [ ] xep-0401: easy user onboarding - [ ] xep-0379: pre-authenticated roster subscription - [ ] xep-0445: pre-authenticated in-band registration - [ ] portability - [ ] xep-0227: portable import-export - [ ] xep-0283: moved - [ ] modern auth - [ ] xep-0388: extensible sasl profile (sasl 2.0) - [ ] xep-xxxx: oauth client login - [ ] xep-xxxx: client access management