118 lines
3.6 KiB
Markdown
118 lines
3.6 KiB
Markdown
# jabber client library
|
|
|
|
- luz: the client. sends and receives messages. contains a message/user store.
|
|
|
|
## TODO:
|
|
|
|
- [ ] error states for all negotiation parts
|
|
- [ ] 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
|
|
- [ ] rfc 6121: im
|
|
- [x] rfc 7590: tls
|
|
- [x] xep-0368: srv records for xmpp over tls
|
|
- [ ] server side downgrade protection for sasl
|
|
- [ ] xep-0030: service discovery
|
|
- [ ] xep-0115: entity capabilities
|
|
- [ ] xep-0163: pep
|
|
- [ ] xep-0245: /me
|
|
- [ ] xep-0084: user avatar
|
|
- [ ] xep-0172: user nickname
|
|
- [ ] xep-0280: message carbons
|
|
- [ ] xep-0191: blocking
|
|
- [ ] xep-0222: public data via pubsub
|
|
- [ ] xep-0223: private data via pubsub
|
|
- [ ] 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
|
|
- [ ] xep-0184: message delivery receipts
|
|
- [ ] xep-0060: pubsub
|
|
- [ ] 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
|
|
- [ ] xep-0402: pep native bookmarks
|
|
|
|
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:
|
|
- [ ] message editing
|
|
- [ ] xep-0308: last message correction (should not be used for older than last message according to spec)
|
|
- [ ] chat read markers
|
|
- [ ] xep-0333: displayed markers
|
|
- [ ] 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
|
|
- [ ] 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
|
|
|
|
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
|