<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">On 24 Sep 2019, at 16:42, Dave Cridland <<a href="mailto:dave@cridland.net" class="">dave@cridland.net</a>> wrote:<br class=""><div><blockquote type="cite" class=""><br class="Apple-interchange-newline"><div class=""><div dir="ltr" style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br class="Apple-interchange-newline"><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, 24 Sep 2019 at 09:30, Kevin Smith <<a href="mailto:kevin.smith@isode.com" class="">kevin.smith@isode.com</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;">On 24 Sep 2019, at 09:20, Dave Cridland <<a href="mailto:dave@cridland.net" target="_blank" class="">dave@cridland.net</a>> wrote:<br class="">><span class="Apple-converted-space"> </span><br class="">> Is there interest amongst the developer community to provide a generalised, interoperable facility for the exchange of simple, arbitrary data between consenting entities? I'm calling this SADEX, but I'm really, really, not wed to this name.<br class="">><span class="Apple-converted-space"> </span><br class="">> The key here would be the API - you'd want to provide the equivalent of a function call such as:<br class="">><span class="Apple-converted-space"> </span><br class="">> void sadex_message(JID to, String type, String data)<br class="">><span class="Apple-converted-space"> </span><br class="">> You'd also need a callback for when you receive some, and perhaps an IQ form.<br class=""><br class="">It’d depend how wed you are to exactly what you describe there. Swiften’s API would make more sense to do message->setSadexType(…) and message->setSadexData(), and a callback wouldn’t make much sense, you’d just message->getSadexType and message->getSadexData() (or maybe message->getSadex()->(get|set)(Data|Type)(). Not what you describe, but still equivalent to how subject/body work in the API, and I don’t see a problem with adding it.<br class=""></blockquote><div class=""><br class=""></div><div class="">I think we're looking at a type (something morally equivalent to an XML namespace) and payload, and we want to ensure both are set or neither.</div></div></div></div></blockquote><div><br class=""></div><div>I’m assuming you mean ensuring on the send side, rather than receive? e.g. you’re not anticipating a library auto-errorring stanzas with one and not the other.</div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><div class="gmail_quote"><div class="">But you're absolutely right that whatever API is used should fit the existing APIs of the library.</div><div class=""><br class=""></div><div class="">But ultimately, I'm most interested in a low-friction way of exchanging application-specific data that will guide people away from doing worse things. The constraints here would seem to be "easy to use", "obvious", and probably "in the core/default download”.</div></div></div></div></blockquote><div><br class=""></div>I see no problem doing that in Swiften.</div><div><br class=""></div><div>/K<br class=""><br class=""></div><div><br class=""></div><br class=""></body></html>