Okay, so, hello everybody, I'm, I'm Geron Poisson, I'm also known as Gophie on
Internet, I'm an example of developer for more than 15 years, I'm a author and a
little developer of the developer, which is all in one communication tool based on
XMPP, I'm a member of the XMPP standard foundation for 10 years and I'm an
electing member of the XMPP standard foundation council for this 2025 term, which is a
team, which is taking the technical decision in the XMPP standard foundation.
So, my goal today is to show you that XMPP is not only a great messaging protocol,
it can also be used as a layer to make other tools, and it can simplify your
life if you want to make a sketch with it. So, really quick, so Maria, for this XMPP,
XMPP stands for extensive messaging and presents protocol, it was, as is
name say, initially sought for a sort messaging, but since, thanks to the XMPP,
it can do a lot of things nowadays. It was introduced in the late 90s, it's 20
six years old this year, it's widely used, many people use it with a lot of
annoying it, because it's, it's a base in zoom, it's original protocol in
what's up, it's shows in a mini application, a mini video games, it's used a lot,
and it has a good story of a lot of compatibility and protection, if you take
XMPP client, which was met 15 years ago, and without being touch, it
should watch, without modern feature, of course, but it should work with
modern server. So, we will start with instant messaging use
case. Let's imagine you want to make a script with a super useful
box, which it's time to see for them in a chat, it had a reaction with a beer
and a fan fries. So, you want this box to work, of course, with the most
popular chat application out there, which is what the box, and to do that, you
go on the website, and you have to check for the API, if you are lucky,
it's a library, that is available for the programming language you want to use,
then you have to learn the library to documentation, to some
experimentation, see all you get the message, all you do
reaction, etc., etc., and you do an application. Okay, now you have
something working with a laptop, and you want to undo the second
most popular application, the chat application there, which is
a small signal. So, small signal, same thing, you go there, you
change the IPI, there is no library, so you have to go with the IPI,
you have to do the authentication, maybe on the hand-to-hand encryption,
and learn experiment, etc., etc. So, when you did your
second implementation, the first one, the pre-cat is
IPI because this proprietary software, so it's bad, and so you have to
start again from scratch and do a new implementation with a new
application on the IPI. Then there is a sort of application, but
I will stop there because more a fantasy is not realistic to
have three major different and incompatible chat
application you use by many people. So, what the solution to
that, if you have guessed, you can use XMPP, with XMPP and
the gateway, which translate to other protocols, you do
the implementation only once, so you just have to do the
execution and ending on incoming message. Once, and the gateway
will handle the different protocols. What is interesting with that is
if there is yet another application, it just needs to be
implementing the gateway and do not have to change anything in
your script, it will still be working. If there is a new version of the
IPI, the gateway will not change that, and when it's on your
example, if we will work out of the box without having to
change anything from your site, and I have two good news. The
first one is a separate gateway exists, it's called
slidge, and it's ending most of the most popular chat
application, and the second thing, it's not only working with
insort messaging, you can do that with any kind of
things. So, why would you use XMPP for building your
two? I put a lot of text in the, I will be quick because
you need to show that you can check after the text, if you
want the slidge out available online. So, as we have seen, if you
do the implementation, you only do it once. One use XMPP is
coherent system, so you use always the same mechanism,
the same way to use identity-fierce, the same way to
you reuse exist in other specifications, etc. It's
flexible, and XMPP does a lot for you. It's under already
authentication, and to an encryption. The
general tools you can use to my commands or to send
and get the authentication, etc. And the gateway
takes a burden of two. So, if you have the gateway for the
protocol you want to use, you just have to concentrate on the
feature you want to implement with XMPP. And in some case,
you can even improve the feature you have, for instance, with
Atom or RSS. The video of a newspaper, for instance, you
only get you item when you pull the feed. But if there is
an implementation, which is using the moving for instance,
while using XMPP itself, and in this case, you can
get notifications on whether it's new article without
having to pull it by yourself.
A quick call done all the XMPP software
Foundation is organized. The XMPP is under
standards, so XMPP is under Foundation is what
handle the administrative things and the organization of
specification. So you can, if you
want some more of an XMPP because you want a client of
standard of an instance, you cannot pay to be a member, and
there is a vote, it's really rare that somebody is not
accepted, it's really extreme case. But you don't have to
be a member if you want to work with a proper
specification and obviously to use it.
There is a standard mailing list where we discuss,
we have feedback about stuff proposed.
That's really interesting because we have feedback from
people with values, experience, software,
developers, people working on video, people working on
encryption, etc. And with all these eyes, we can have
time good solution which is sustainable.
There is a message before the report, we have today of
XMPP Summit where we need face-to-face, and we can discuss
many things and see the faces behind the software.
The XSF board is administrative, the team which is
taking administrative decision and the XSF
Council is a team taking the technical decision.
So a quick overview, if you have a specific
assure and you can go to the XMPP Summit, just to be
accepted, then there is a cycle while you go to
standard mailing list, you have feedback, you have
specific assure and you can go to the
consider, etc. Until you have a stable and good
specification.
Why else, I show that it's to see that we
maxing to avoid duplication and to keep the
thing as long and sustainable as possible. So if we have a
feature, we try to make it work for long, so if you
base your software on it, you should know that it will
work for a long time.
Okay, there is a criticism that I often hear about
XMPP, there is two main examples, XMPP
extension protocol. It's a specific
addition we do for every feature and it's it
may be difficult for software to understand that. So
first, that's wrong because we have a good
discovery mechanism so we can know which
feature support by other entities and it
work and the XMPP are
actually similar to the UNIX philosophy. So
every example do one thing and try to do it
well and we use other XMPP or other
protocols. For instance, we have
blogging in XMPP and we use Atom which is
existing specification and instead of
reinventing the wheel, we just use
stuff which already exist. And so they play
mostly together and what is also useful is
specification is actually a documentation.
If you want to make something and you don't know
what where to start, you can just check
the specification and you will see
eight work and we have pre-shoes information
that is always security consideration for that so
you can use your phone to control your
robot.
Pop sub is publish subscribe. It's a feature
when you can publish information
in a list and you can
it manage
subscription, notification, it
can manage management and there is
a new feature of hierarchy where you can
have a graph and any kind of things.
And so it's useful for any
thing. For many, many things.
I don't need a notification
to manage. For instance, I've made
the ticket system to manage my
bug and feature request for my project
with the pop sub implementation.
And if tomorrow I plan to make
gateway to GitHub, I can have my
any script that I use with that which will
automatically work with
issue on any GitHub project.
Jingle is one you want to send a lot of
data and you want to have a direct
connection so it does a peer-to-peer
connection whenever possible. If it's not
good, there is assistance for
the server. It's useful when you want
to direct connection and you have a
time network and you want to
open a port or throw us a
fire wall or stuff like that.
And it's good for many things that
need a lot of data and bond-wise and
speed. If you want to bypass
the server because you just need
direct connection.
And so we have seen with chat
example, it's really useful to communicate
with the server.
And it's important to not get
ways or not only for
start messaging. You can have
gateway for FTP for
file sharing, you can have
gateway for web dev,
network for activity pub,
blogging, etc.
So it's what is generic.
Some people say I don't like
XMPP, so the most of you
know how to make an engine to drive a car.
Actually, you only need to make
XMPP if you want to write a
specification or to implement
in a low-level
thing like in a library or in
a client in this case, you
deal with XML. But if you want to
use XMPP as a layer to other
things, you can just choose
software which already
deals with XML for you.
And there are a lot of
software you can use.
Flex XMPP, for instance, is
popular Python module to deal with
with XMPP.
So if you want to make
about comment, just
offline of Python, you don't have
to deal with XMPP.
I've mentioned prosody because
prosody is for
some getaways. I've got
way to entity. So if you want
to work with IoT,
it's translate entity to
PAPSEB. So you just have to
deal with it.
Librarially, it's a common
interface of
the software I'm working on.
It's a internal JSON
representation of
12, so if you want to work with
Ticket, for instance, you
will get a JSON of
the metadata of your Ticket.
So to conclude this talk,
XMPP is great. It's
not a lot for you. It's not only for
PCA.
But you don't manages to
explain it as a
chodzi, your chodzi, but
chodzi, but, I have
going to be using
some kind of
thing like this.
You have this completely
complicated
let's say I want my
future and coding.
That transaction I've
always had previously
and what you can do, so it's something you should consider
if you want to express or anything, not necessarily
instant messaging, but for anything you want,
it's something which is really useful to have.
That's it, for this talk, you can check the project
on this example of the chat room.
I am on MasterDone, so you can follow me
and we have any questions.
This is the website of my project on my blog.
Thank you very much and see you on any questions.
Thank you.
So, I was using accent to be actually each other
for quite a while with friends, professionally,
and my professional, so we all had alternatives,
but it was a great thing I laughed at.
But with a real business customer's mind,
I had big issues.
Not with the product called Excel,
not with the client.
It's at the only, really, really good free
Exhibity client.
I have conversations for Android,
iOS.
There wasn't there.
It was last time, I put it on the 60s,
17 when I had evaluate for iOS.
There was not much around.
And the best thing was the cheats account.
There was one of the models,
and there was two different standards for
this master track knife, the old and the new thing, I guess.
I ran.
Yes, it's man, man for the archive.
Yeah, yeah.
The protocol itself is fine.
But it's very hard to implement it as a customer
because if they want to have mobile, web-based,
client, and on desktop, you're...
Yes, you're right, you're right.
There are different projects we try to exist.
But you're on the Instantness of Incares.
My talk is to use it in more general case,
but if you stick with the Instantness of Incares,
we have software like Snicket,
which try to do software for every major platform
with a brand name, Unique, brand name, everywhere.
It's working quite well.
There is moving, which is a web client,
but it's using...
Not sure, I think it's still working on Android,
and iOS 2, but I'm not sure, I need to be checked.
I think you're real time-lox,
and you're tomorrow.
Yes.
Yeah.
It's behind me.
Mm-hmm.
Which is...
I guess sweet.
Oh, he writes in server.
They took conversations and branded it.
And I think there's not a client brand, which as well.
It's good to hear,
because I have this thing,
to work with the Instantness of Incares.
It's good to hear,
because I have this thing,
to work with the Instantness of Incares.
It was the disaster.
Not XMP screen.
It's stolen.
Yeah.
I get that.
Because it's not able to hire a web developer
each other's screen.
Mm-hmm.
Yeah.
I'm seeing, I've improvised a lot of sources.
There is Dinos.
There is a gadget, which I improvised a UI.
I'm working also on a new desktop content.
IOS, C-Scene, and Monal,
I've improvised a lot of sources.
I'm not using iOS,
but I know that it's very difficult platform to work with.
I think.
Especially for notification,
but Singapore has improvised a lot
of the last few years,
and you'd check the modern state of XMPP.
It's not like it was 10 years ago.
It's really more modern.
That's still for you issue.
But everywhere I issue anyways.