Just wondering, is there any particular reason why xmpp isn't length prefixed and rather the whole stream is one never ending document? I mean if it were length prefixed than inband binary data could be transmitted without b64✎
Жокир
Just wondering, is there any particular reason why xmpp isn't length prefixed and rather the whole stream is one never ending document? I mean if it were length prefixed than inband binary data could be transmitted without b64, among other things ✏
i try to think about when i need inband data transfered
lovetox
and only avatars come to mind
amnesiahas joined
adiaholic_has left
adiaholic_has joined
test2has left
test2has joined
Beherithas left
Beherithas joined
amnesiahas left
Beherithas left
Beherithas joined
Yagizаhas joined
Yagizаhas left
Beherithas left
Yagizаhas joined
Жокирhas left
Жокирhas joined
test2has left
Жокирhas left
Жокирhas joined
test2has joined
Жокирhas left
Жокирhas joined
Жокирhas left
Жокирhas joined
ajhas joined
Yagizаhas left
Beherithas joined
Zashhas left
Zashhas joined
Жокирhas left
Жокирhas joined
Жокирhas left
Жокирhas joined
Жокир
> sounds more complex to implement
Quite the contrary. If stanzas were length prefixed standalone documents you could just feed them to a regular dom building parser of which there are plenty for every language.
lovetox
and what is the difference to the parser i push it now?
lovetox
do you mean the xml would just end in the middle, like <data>binary data<data>?✎
lovetox
do you mean the xml would just end in the middle, like <data>binary data</data>? ✏
Beherithas left
lovetox
if yes, this would of course be nice, but i maintain a decade old client, and as i said the only usecase come to mind are avatars
moparisthebesthas left
lovetox
for everything else, you would want to have a out of band transfer that you prefereably can do async
lovetox
and i was not there back then, but i guess avatars was not on the mind of xmpp creators, and even if it would be debateable if you design a whole protocol around transfering avatars which is like 1% of xmpp usage or less
test2has left
Martinhas left
Martinhas joined
MattJ
Data framing has some nice properties, but would essentially need everyone to write custom parsers
MattJ
XMPP over websocket is framed, FWIW, and supported by many servers
test2has joined
test2has left
test2has joined
Beherithas joined
Beherithas left
Beherithas joined
amnesiahas joined
flow
Жокир, I think the simple answer is: because XMPP re-uses XML as building block
flow
also it is *not* a never ending document, there is an end (at least if you use a transport that closes the connection by sending a closing </stream> tag)
edhelashas joined
test2has left
ajhas left
ajhas joined
amnesiahas left
amnesiahas joined
debaclehas joined
Жокирhas left
Жокирhas joined
Жокирhas left
Жокирhas joined
Beherithas left
Beherithas joined
Жокирhas left
Жокирhas joined
Жокирhas left
Жокирhas joined
Жокирhas left
Жокирhas joined
amnesiahas left
ajhas left
amnesiahas joined
xeckshas joined
Жокирhas left
Жокирhas joined
Alexhas left
Alexhas joined
Жокирhas left
Жокирhas joined
Жокирhas left
Жокирhas joined
Beherithas left
Beherithas joined
amnesiahas left
amnesiahas joined
Жокирhas left
Жокирhas joined
kikuchiyohas joined
kikuchiyohas left
Жокирhas left
Жокирhas joined
kikuchiyohas joined
kikuchiyohas left
kikuchiyohas joined
kikuchiyohas left
kikuchiyohas joined
kikuchiyohas left
amnesiahas left
Жокирhas left
Жокирhas joined
Жокирhas left
Жокирhas joined
kikuchiyohas joined
kikuchiyohas left
kikuchiyohas joined
kikuchiyohas left
kikuchiyohas joined
kikuchiyohas left
kikuchiyohas joined
kikuchiyohas left
kikuchiyohas joined
kikuchiyohas left
Жокирhas left
Жокирhas joined
testhas joined
kikuchiyohas joined
kikuchiyohas left
kikuchiyohas joined
kikuchiyohas left
testhas left
kikuchiyohas joined
kikuchiyohas left
kikuchiyohas joined
kikuchiyohas left
kikuchiyohas joined
kikuchiyohas left
kikuchiyohas joined
kikuchiyohas left
kikuchiyohas joined
kikuchiyohas left
kikuchiyohas joined
kikuchiyohas left
kikuchiyohas joined
kikuchiyohas left
kikuchiyohas joined
kikuchiyohas left
kikuchiyohas joined
kikuchiyohas left
kikuchiyohas joined
kikuchiyohas left
kikuchiyohas joined
kikuchiyohas left
kikuchiyohas joined
kikuchiyohas left
kikuchiyohas joined
kikuchiyohas left
kikuchiyohas joined
kikuchiyohas left
kikuchiyohas joined
kikuchiyohas left
kikuchiyohas joined
kikuchiyohas left
amnesiahas joined
kikuchiyohas joined
kikuchiyohas left
Yagizаhas joined
kikuchiyohas joined
kikuchiyohas left
kikuchiyohas joined
kikuchiyohas left
kikuchiyohas joined
kikuchiyohas left
jonnjhas left
kikuchiyohas joined
kikuchiyohas left
kikuchiyohas joined
kikuchiyohas left
Guus
There are limits to max stanza lengths. I don't think that the spec defines a limit, only that one is allowed to exist.
kikuchiyohas joined
kikuchiyohas left
Guus
(although I can't immediately find it. Am I wrong here?)
Zash
> A deployed server's maximum stanza size MUST NOT be smaller than 10000 bytes
then this is weird, because the standard says, IDNA2003 does require a mapping phase
lovetox
IDNA2008 does not
lovetox
but maybe this idn2 application just uses sane defaults
lovetox
and you can disable the mapping
test2has joined
lovetox
just to be clear, 2008 does not require it as part of the IDNA standard
Zash
Keep in mind that with JIDs you'd do some stringprep or precis operation on the host part first
lovetox
but of course application can do a mapping if wished
Zash
IDNA is only for when you do DNS lookups, and DNS is case-insensitive
lovetox
Zash, you dont do any precis operation on the domain part
Zash
Not?
Zash
This topic. Are you trying to make everyone cry themselves to sleep tonight?
lovetox
no Zash, it refers to the IDNA rfc
lovetox
so we dont need IDNA only for dns lookups
Beherithas left
lovetox
we need it to know that a@XMPP.net = a@xmpp.net
Zash
So IDNA becomes the nameprep step then.
lovetox
yes
lovetox
to be precis IDNA2008 does no mapping, and requires no mapping
lovetox
you need a lib that implements IDNA2008, and the UTS46 mapping or some equivalent
lovetox
which is not specified in the idna spec
lovetox
hence, my first statement its all insane, and if there would be no lib that would just do that for me
lovetox
i probably would stop right there to develop my client :D
Zash
I know the feeling.
Zash
Hence the part about crying.
Zash
We don't have any PRECIS lib atm. We use libidn for stringprep and IDNA (2003). But libidn is deprecated and replaced by libidn2, which does *only* IDNA 2008. No stringprep or precis. Thus not an option.
lovetox
and just out of interest i looked up the docs of your application