Modern XMPP project discussion - 2024-06-19


  1. Squeaky Latex Folf

    Sometimes I feel like it'd be cool if XMPP didn't encode binary data as base64

  2. MattJ

    Sometimes we all have that feeling

  3. Menel

    But then you would ask yourself for the alternative?

  4. Squeaky Latex Folf

    What if we adopted a binary XML representation e.g. EXI so this could be made possible?

  5. MattJ

    EXI is nice in theory, but it gets icky past that unfortunately

  6. Squeaky Latex Folf

    How so?

  7. MattJ

    IIRC open-source implementations are scarce, for example

  8. MattJ

    And to make the most of it you need to use it in schema mode, which would require a lot of effort

  9. MSavoritias (fae,ve)

    couldnt we just do it all of it over eris? but then that would require ecosystem buy-in /thinking

  10. Squeaky Latex Folf

    And what if you just use it so you don't need to use base64 anymore?

  11. Squeaky Latex Folf

    Or does EXI require schemas?

  12. MattJ

    No, I think EXI can be used without schemas. But then basically the only gain is not using base64, and it's a lot of work for that small improvement.

  13. Squeaky Latex Folf

    Just imagine how much bytes you will save in total across the XMPP network if everyone used EXI :o

  14. Squeaky Latex Folf

    Just imagine how much bytes you will save in total across the XMPP network if everyone used EXI and sending binary data over the XML stream were actually supported :o

  15. MattJ

    Probably less than a 5-minute YouTube video per day :)

  16. Squeaky Latex Folf

    Maybe it won't save as much data as actually implementing proper multicasting would, idk :P

  17. arcanicanis

    How stringent have most clients been with being XML namespace-aware, or is most of it just very lax parsers?

  18. MattJ

    I think all the successful clients do it properly. Namespace-aware APIs are not too hard to find.

  19. arcanicanis

    I guess I'll put in the modicum of effort to make it namespace-aware then. Meanwhile, for connection states, would it be fair to summarize things down to: - dead (no connection yet, or TCP connection closed), - preauth (connection open, not fully authenticated yet) - prebind (authenticated, but not bound to a resource ID yet) - ready (authenticated, bind complete, ready to send/receive traffic) - closing (gracefully going offline, or closing per stream error) Or is there something else worth including? Would CSI (XEP-0352) change anything, or be worth of some additional connection state (sleep?)?