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 will see a few minutes, but you can check after
the text if you want the slidge out available online.
So, as we have seen, if you do implementation, you only do
it once. One use XMPP, it's a coherent
system, so you use always the St. mechanism, the
St. Why to use identifior of the St. Why to use
XMPP? You'll use other specification, etc. It's
It's flexible, and example, it does a lot for you.
It's under already authentication, and to an encryption.
The generic tools you can use to my commands,
or to send and get a notification, et cetera, et cetera.
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 an example.
And in some case, you can even improve the feature
you have, for instance, with the Atom or RSS.
The feature you have in 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 an example, it helps serve.
And in this case, you can get notification,
whereas there is no article without having to pull it by yourself.
A quick call done on the XMPP software foundation is organized.
The XMPP standard, the standard software,
so standard foundation is organized.
So the XMPP standard foundation is what
handled administrative things
and the organization of specification.
So you can, if you involve some moving XMPP,
because you want a client of standard running things,
you cannot play to be a member.
And there is a vote, it's fully aware that somebody
is part accepted, it's fully extremized.
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 you
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, et cetera.
And with all these eyes, we can have,
with a time-good solution, which is sustainable.
There is a message, just before the first day,
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
with attacking administrative decision,
and the XSF Council is a team tackling the technical decision.
So a quick overview, if you have a specific assure,
and you go to the XMPP Summit, just to be accepted,
then there is a secure, wide-go-to-standar mailing list
for a feedback, you have a bit of a specific assure,
and it goes to the console, et cetera,
until you have a stable and good specification.
Wires are shows that it's to see that we're
mixing to avoid duplication, and to keep the sync as long
and sustainable as possible.
If we have a feature, we try to make it work for long,
so if you're on it, you show more that it will work for long.
OK, there is a criticism that I often hear about XMPP.
There is two main examples, XMPP extension protocol.
It's a specific action we do for every feature.
And it may be difficult for software to understand that.
So for that's wrong, because we have a good discovery mechanism,
so we can know which feature is supported by the other entities.
And it works.
And the XMPP are, actually, similar to the Unix philosophy.
So every example we want to see and try to do it well.
And we reuse the XMPP or other protocols,
for instance, we have blogging in our XMPP,
and we use Atom, which is existing specification,
and instead of reinventing the wheel,
we just reuse stuff, which already exists.
And so they play nicely together.
And what is also useful is a specific action.
It's actually a documentation.
So if you want to make something, and you
don't know where to start, you can just check the specification,
and you will see, oh, it works.
And we have precious information.
There's always security consideration for that,
so you can use your phone to control your robot.
PAPSAB is published in subscribe.
It's feature when you can publish information,
in a list, and you can it manage
the subscription notification, it may not
permission management.
And there's a new feature of hierarchy,
where you can have a graph and any kind of things.
And so it's useful for anything, for many, many, many things.
I don't need a notification, I don't understand.
For instance, I've made a ticket system
to manage my blog and feature request for my project
with the PAPSAB implementation.
And if tomorrow, I want to make a 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 possible, there is assistance for the server.
It's useful when you want a direct connection
and you have all the 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 bonwise, and speed.
And if you want to bypass the server,
because you just need direct connection.
And the gateway, so have we seen with chat example,
it's really useful to communicate to some party protocol.
And it's important to not that get ways
are not only for start messaging.
You can have gateway for FTP, for file sharing,
you can have gateway for web dev,
have method gateway for activity pub,
for blogging, et cetera.
So it's what you're generating.
Some people say that I don't like XMPP,
so the most of you, for answer, is you don't need to know
to make an engine to drive a car.
Actually, only need to make XMPP if you want to write
a specification or to implement them in a way
that you're developing in a library or in a client
in this case, you deal with XMPP, but if you want
to use XMPP as a layer to other things,
you can just use software, which already deals XMPP,
with XMPP for you.
And there are a lot of software you can use.
Flex XMPP, for instance, is a popular Python module
to deal with XMPP.
So if you want to make a comment,
just a few lines of Python, you don't have to deal with XMPP.
I've mentioned cross-soddy, because cross-soddy
is far off some gateways.
I use a gateway to empty-titi.
So if you want to work with IoT,
it's translate empty-titi to PAPSEB.
So you just have to deal with that.
Librarially, it's a common interface
of the software I'm working on.
And it has an internal JSON,
a 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 instant messaging.
There is a good story of the Quart compatibility,
and we try to make that.
And one is incompatibility.
Some time, fix on the server itself,
so you don't have to change anything on your side.
You've already have a really active community.
We were around 30 people at the same age,
and it's only a few people who make the way to Brussels.
So you can check the list of examples
to see the feature that I implemented,
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, Francis Torch.
You can check the project on this XMPP chatroom.
I am on MasterDone, so you can follow me,
and if you have any questions,
this is a website of my project on my blog.
Thank you very much, and see you on the next question.
Thank you.
So I was using XMPP, actually,
each other, the E4 quite a while with friends,
professionally, my professional,
so we all had our animals,
Federation, I was expecting, I loved it.
But with a real business customer's mind,
I had big issues.
Not with the product called Excel,
but with the clients.
It's at the only, really, really good,
three XMPP clients,
I had conversations for Android,
iOS, there wasn't, it was last time,
I put it on the 60s, 17, when I had the evaluate for iOS.
There was not much around,
and the best thing was the Chitzi account.
But then there was one models,
and there was, there was two different standards
for this MasterDone type, the old and the new thing, I guess.
Yes, it's man, man for the arcade.
Yeah, the product called itself is fine.
But it's very hard to implement it as a customer,
because if they want to have mobile, web-based,
kind, and on desktop, your six, yes, the right job.
Oh, that's a different project we tried to,
but you're on the Instantness of InCase.
My talk is to use it in more general case,
but if you, if we stick with the Instantness of InCase,
we have software, like Snicket,
which try to do software for every major platform
with a brand name, Unic, brand name, everywhere.
It's working quite well.
There is moving, which is a web client,
but it's using, I think it's still working on Android,
and iOS 2, but I'm not sure, it's need to be checked.
Yes, yes, it's behind us, make it.
Which is, I guess, sweet, or he writes in server,
they took conversations and branded it,
and I think there's not a client brand, which as well.
So, okay, that's interesting.
It's good to hear, because I had this thing,
to work at the 17th of the variation for pick-up,
and the most dishonest, not XMP screen, it's totally great.
Yeah, yeah, yeah, yeah, yeah, yeah, yeah, yeah.
The process is not able to hire a web developer,
each other is great.
Yeah, I'm seeing, I've improved a lot of stuff on the distance.
There is Dino, there is a gadget, which I've improved the UI.
I'm working also on a new desktop content.
IOS, C-Scene, and Monal, I've improved a lot of stuff.
I'm not using iOS, but I know that it's very difficult
platform to work with, I think,
especially for notification, but Singapore
improved a lot the last few years,
and you'd full 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 there are issue
anyways.