Planet Jabber

November 15, 2018

The XMPP Standards Foundation

XMPP Summit 23

The XMPP Standards Foundation (XSF) will hold its 23th XMPP Summit in Brussels, Belgium, on Thursday January 31st and Friday February 1st 2019. These are the two days preceding FOSDEM 2019.

The XSF invites you all to attend, and discuss all things XMPP!

If you're interested in attending, please make yourself known by filling out your details on the wiki page for Summit 23 (to edit the page, you'll need a wiki account, which we'll happily provide for you. Find us either in the jdev@conference.jabber.org chatroom, or via the Summit mailling list).

Please note that, although we welcome everyone to join, you must announce your attendance beforehand, as the venue is not publicly accessible (and we need badges printed for you).

If you haven't already, make sure that you're signed up to the Summit mailling list, which is where you can expect most updates to be announced.

See you there!

by Guus at November 15, 2018 21:14

ProcessOne

Building Swift for Linux on Debian Stretch

Swift for Linux packages are officially provided for Ubuntu. If you want to run Swift on another Linux server flavor, you are on your own.

Fortunately, building Swift on Linux is pretty straightforward once you know how to do it.

Please, note that the build process is quite heavy and your likely need more than 16 GB or RAM to build Swift (especially if you prepare a debug build). In my example, I used a server with 32 GB. At the end of the article, you will find a link to download the result of the build. You may want to use it to avoid rebuilding it on your own on a smaller server.

Now, let’s check the build process on Linux Debian Stretch.

Preparing the server

Install Swig 3.12 on Debian

First, let’s fix a specific Debian issue.

The default version of Swig provided with Debian Stretch is Swig 3.0.10. The problem is that it is not compliant with LLDB. See LLDB source code for details.

We first need to ensure Swig is not already installed:

$ sudo apt-get -y remove swig3.0 swig

You can then install Swig a newer version of Swig from packages compiled for Ubuntu. I used the package for Swig and Swif3.0 for Ubuntu 18.04 LTS, as found on pkgs.org. You may want to select other packages, depending on your need.

Let’s download and install Swig 3.12 packages:

$ wget http://archive.ubuntu.com/ubuntu/pool/universe/s/swig/swig_3.0.12-1_amd64.deb
$ wget http://archive.ubuntu.com/ubuntu/pool/universe/s/swig/swig3.0_3.0.12-1_amd64.deb
$ sudo dpkg -i swig*.deb

Other dependencies

Other dependencies required for Swift are described in Swift README.

You can install them all, with the following command:

$ sudo apt-get install -y git cmake ninja-build clang python uuid-dev libicu-dev icu-devtools libbsd-dev libedit-dev libxml2-dev libsqlite3-dev libpython-dev libncurses5-dev pkg-config libblocksruntime-dev libcurl4-openssl-dev systemtap-sdt-dev tzdata rsync swig

You should be ready to download and compile Swift from Github repository.

Building Swift

You can type the following commands to build Swift from source.

First, you need to clone Swift repository in a subdir of swift-source new directory:

$ mkdir swift-source
$ cd swift-source
$ git clone https://github.com/apple/swift.git

Then, you need to download all the repositories it will build in the process:

$ ./swift/utils/update-checkout --clone

Finally, you need to launch Swift build itself. The following command is the easiest one to use to install Swift on your Linux server:

$ swift/utils/build-script --preset=buildbot_linux,no_test install_destdir=~/swift-install installable_package=~/swift.tgz

It will build Swift Swift in swift-install dir and prepare a .tgz archive with the content of the installation.

Have a long break, it will take a while :)

Once it is done, you can simply copy the resulting structure in /usr/local/:

$ sudo cp -R ~/swift-install/usr/* /usr/local/

Testing Swift a try

The first thing you can test to get started is the REPL.

The swift command can be used to launch the REPL. You can then type interactive Swift commands:

$ swift
Welcome to Swift version 4.2-dev (LLVM cbe8d5e28f, Clang 3452631569, Swift 0d2787fb31).
Type :help for assistance.
  1> print("Hello, Swift!")
Hello, Swift!
  2> 

You can also put that print statement in a hello.swift file and compile it with swiftc:

$ echo "print(\"Hello, Swift\")" > Hello.swift
$ swiftc Hello.swift
$ ./Hello
Hello, Swift

Your Swift environment is now ready and you can now start developing in Swift on Linux.

Next steps

From there, the next step is to explore Swift on the server-side, using a server framework like Swift-NIO, Vapor, Kitura or Perfect.

Enjoy!

Downloading the resulting build

If you would like to try Swift on Debian to learn the language on a smaller instance, you can try downloading our prebuilt archive: swift-4.2-git.tgz.

Once downloaded, you can download the signature file swift-4.2-git.tgz.asc and check the signature as follows:

$ gpg --keyserver pgp.mit.edu --recv-key CF34B813
$ gpg --verify swift-4.2-git.tgz.asc 
gpg: Signature made Thu 15 Nov 2018 11:03:00 AM CET using RSA key ID CF34B813
gpg: Good signature from "Mickaël Rémond <mremond@p*.net>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 58F4 6916 C32F 20EE 648F  9475

It is signed with my GPG key (Mickaël Rémond).

by Mickaël Rémond at November 15, 2018 10:26

Monal IM

App Nap in OSX

There was a bug that came up recently about Monal disconnecting in Mojave when backgrounded which really confused me.  It seems a feature added to OSX in Mavericks called App Nap that suspends apps to save battery life might be the culprit.  I am putting out a new Mac beta today Bonus: With improved dark mode support, better dark mode correct fonts and icons. 

by Anu at November 15, 2018 01:55

November 13, 2018

Monal IM

New Mac Beta Up

There is new Mac beta. I have tried to fix the dark mode visibility as well as some possible networking issues. 

by Anu at November 13, 2018 00:25

November 12, 2018

Monal IM

New iOS Beta Up

There is a new iOS beta. Testflight users should update or grab it from the beta  link to the side. 

by Anu at November 12, 2018 16:33

November 10, 2018

Monal IM

New Login Screen

In order to reduce the pain for most users, I have added a new login screen that will pop up if no accounts are set up (e.g. first run)

by Anu at November 10, 2018 19:01

November 09, 2018

Monal IM

iOS 3.1 Beta Available

I have made the latest iOS Beta available to the public.  This link is also permanently on the left of this site.  This is a beta so you will see debugging messages as well as a debug log at the bottom of settings titled ‘Log’  this will let you view everything the app is doing.  If you encounter any issues feel free to look there and send me the last few lines (make sure not to send anything involving authentication)

by Anu at November 09, 2018 23:44

ProcessOne

Reading iOS Provisioning Profile in your Swift App

In this short post, I will describe how to a read provisioning profile from iOS mobile app to discover some apps metadata.

The mobile provisioning profile is a file embedded by XCode when you build and package your application. It contains several pieces of information that can be useful for your app. For example, you can get the Apple push environment to use, either sandbox for development apps or production for store or Testflight production builds.

Principles

Getting and reading the mobile provisioning file

The mobile provision file is embedded in the app. You can read it from the main bundle. You first need to read the path of that file from the main bundle:

let profilePath: String? = Bundle.main.path(forResource: "embedded",
                                            ofType: "mobileprovision")

And then you can try reading the file into an string:

let profileString = try? NSString.init(contentsOfFile: profilePath,
                                       encoding: String.Encoding.isoLatin1.rawValue)

Extracting the metadata plist

The provisioning profile contains a plist file that exposes some app metadata. However, the plist string is embedded in a larger binary file. The easiest way to extract the plist is to read only the XML part of the file. This can be done as follows:

// Skip binary part at the start of the mobile provisionning profile
let scanner = Scanner(string: profileString as String)
guard scanner.scanUpTo("<plist", into: nil) != false else { return nil }

// ... and extract plist until end of plist payload (skip the end binary part.
var extractedPlist: NSString?
guard scanner.scanUpTo("</plist>", into: &extractedPlist) != false else { return nil }

guard let plist = extractedPlist?.appending("</plist>").data(using: .isoLatin1) else { return nil }

Parsing the plist string

You can finally parse the plist strong to get the plist content into a MobileProvision struct, using Swift decodable protocol, introduced in Swift 4:

let decoder = PropertyListDecoder()
do {
   let provision = try decoder.decode(MobileProvision.self, from: plist)
   // Do something with the data
} catch let err {
   // Handle parsing error
}

Putting it all together

Here is the full code with the MobileProvision struct implementing the Decodable protocol:

You can use the code from your mobile app as follows:

var sandbox: Bool
if let provision = MobileProvision.read() {
   print("We need to use Sandbox")
   sandbox = provision.entitlements.apsEnvironment == .development ? true : false
}

That’s it. Your application is now able to discover if it should use APNS in development or production mode automatically, without having to rely on defining a DEBUG build environment variable.

by Mickaël Rémond at November 09, 2018 14:16

Monal IM

Planning the next releases

It’s been a while since the last release. I am planning out what will be in the next Mac and iOS clients.   I was hoping to have OEMEO but it hasn’t been sufficiently  tested yet, so I am turning it off until the following release.   I will have an open beta for iOS 3.1 soon. This will be a GDPR update  but along with it comes the new rich links, a more compressed chat ui as well as the share sheet.  Mac clients will see the Mojave dark mode and a share sheet.

by Anu at November 09, 2018 04:06

November 08, 2018

Monal IM

November 03, 2018

Paul Schaub

QR-Code Generator for OMEMO

OMEMO is, like any other encryption protocol based on trust. The user has to make sure, that the keys they are trusting belong to the right users. Otherwise a so called Man-in-the-Middle attack is possible. An attacker might pretend to be your contact and secretly steal all the messages you thought were encrypted. They are, just to the wrong recipient.

To counteract such attacks, OMEMO encourages the user to verify their contacts fingerprints. A fingerprint can be considered the name of a contacts key. The user has to make sure, that the key A he is presented with really belongs to contact C by checking, if the fingerprints match. As those fingerprints are usually long, random series of characters, this is a tedious task. Luckily there are techniques like QR codes, which make our lifes easier. Instead of comparing two long strings character by character, you just scan a code and are done.

The QR-Code contains the Jabber-ID of the owner, as well as all of their fingerprints. So by scanning your code, a friend might automatically add you to their contact list and mark your devices as trusted. You can also put the QR-Code on your personal website, so people who want to reach out to you can easily establish a secure connection to you.

I spent the last few days looking into JavaFX (I have no real UI designing experience in Java, apart from Android), designing a small tool that can generate OMEMO fingerprint QR-Codes. This is what I came up with:

QR-Code generator with selectable fingerprints

The tool logs into your XMPP account and fetches all your published keys. Then it presents you with a list in which you can select, which fingerprints you want to include in the QR-Code.

There are still a lot of features missing and I consider the tool in no means as completed. My plans are to add the possibility to export QR-Codes to file, as well as to copy the text content of the code to clipboard. You see, there is a lot of work left to do, however I wanted to share my thoughts with you, so maybe client developers can adopt my idea.

by vanitasvitae at November 03, 2018 17:41

November 02, 2018

Monal IM

Chat Wallpapers

Something people have requested for a while has been to have wallpapers on chat. This will be in the 3.1 release.  I am also updating the bubbles to contain delivery and time stamp info so you don’t have to worry about text visibility with your background.

by Anu at November 02, 2018 03:23

November 01, 2018

The XMPP Standards Foundation

The XMPP Newsletter, 02 November 2018

Welcome to the XMPP newsletter.

It is also available in French.

If you have an article, tutorial or blog post you'd like us to include in the newsletter, please submit it on the XMPP wiki.

In this newsletter you will find information about an XMPP sprint happening this month in Germany, an article about XMPP use cases, many software releases and much more.

News

The Berlin XMPP meetup was held, where Holger Weiß continued his series about the perfect XMPP server setup. The next Berlin XMPP meetup will be on the 14th of November. Daniel Gultsch will talk about a brand new feature for Conversations he is working on.

On Saturday the 17th and Sunday the 18th of November an XMPP sprint will be held in Düsseldorf. It is still possible to sign up for participation.

Daniel Pocock made a call for participation in the Real Time Communications track at FOSDEM. Great opportunity for anyone interested in giving an XMPP talk.

The XSF is holding Board and Council Elections. Candidates can apply until the 4th of November.

Tutorials

Erlang solutions published some tutorials listed below:

Part one of an XMPP use cases guide titled 21 XMPP use-cases and the best ways to achieve them where one will find an article explaining which XEPs can help software developers when building applications that need to support some XMPP features like groupchats, receive push notifications, etc.

How to set up Push Notifications with MongoosePush.

How to set up MongooseICE (ICE/TURN/STUN server).

Software releases

Tigase XMPP Server v7.1.4 has been released.

ProcessOne, the company behind ejabberd, wrote about improvements made for ejabberd Business Edition and ejabberd SaaS, including HTTP file transfer using S3 and Minio, unread inbox support and more.

RTB (Real-Time Benchmark) can now be used for XMPP benchmarks and MQTT. It supports MQTT 3.1.1 and 5.0.

Clients

October has been an active month for Converse.js. Three releases went out. All of them are available in Github, with 4.0.4 being the latest release.

Libraries

The Smack library released its 4.3.1 version.

JaXMPP (Tigase client library) reaches version 3.2.0 with many fixes and new features including support for XEP-0363 HTTP File Upload and other interesting ones.

Two XMPP libraries for JavaScript got a new release in October. Check the latest versions for Strophe.js and xmpp.js

Escalus 4.0.0 comes with a new XML parser and some other features like an included XML viewer.

Other software

JSXC released the latest version for the Nextcloud authentication hub called xmpp-cloud-auth (also known as xcauth).

by Seve at November 01, 2018 23:00

Monal IM

Links will look different

I’ve been focusing some of my efforts as of late on things that make Monal feel more modern. There are parts of the app I haven’t touched in 5-6 years and expectations have changed in those years.  The inline images in 3.0 was very well received and I am following that up with inline link previews.  If you have used any other modern messaging client this will be very familiar to you.  XMPP doesn’t need to feel like its form the 90s.

by Anu at November 01, 2018 14:59

October 31, 2018

Daniel Pocock

RHL'19 St-Cergue, Switzerland, 25-27 January 2019

(translated from original French version)

The Rencontres Hivernales du Libre (RHL) (Winter Meeting of Freedom) takes place 25-27 January 2019 at St-Cergue.

Swisslinux.org invites the free software community to come and share workshops, great meals and good times.

This year, we celebrate the 5th edition with the theme «Exploit».

Please think creatively and submit proposals exploring this theme: lectures, workshops, performances and other activities are all welcome.

RHL'19 is situated directly at the base of some family-friendly ski pistes suitable for beginners and more adventurous skiers. It is also a great location for alpine walking trails.

Why, who?

RHL'19 brings together the forces of freedom in the Leman basin, Romandy, neighbouring France and further afield (there is an excellent train connection from Geneva airport). Hackers and activists come together to share a relaxing weekend and discover new things with free technology and software.

If you have a project to present (in 5 minutes, an hour or another format) or activities to share with other geeks, please send an email to rhl-team@lists.swisslinux.org or submit it through the form.

If you have any specific venue requirements please contact the team.

You can find detailed information on the event web site.

Please ask if you need help finding accommodation or any other advice planning your trip to the region.

by Daniel.Pocock at October 31, 2018 21:06

October 30, 2018

Peter Saint-Andre

Impasses

Impasses along the path toward the goals of life can occur in three dimensions:...

October 30, 2018 00:00

Goals

There are many ways to categorize and divide up the various areas and activities of life. Here is a six-fold scheme I'm exploring:...

October 30, 2018 00:00

October 29, 2018

Monal IM

Mac devs, why don’t you publish in the App Store?

This is more of a question for other open source developers.  I recognize there are payment structures in the Mac App Store that do not work for paid software. However, I’ve always wondered why other open source apps do not publish there.

My general experience publishing  Monal there has only been positive.   While I still push out beta clients on the web the App Store has been the primary way that users have discovered Monal.  It also takes care of several things that are pain points for developers such as upgrades and hosting/bandwidth costs.  I honestly think more people use XMPP because I have made the software readily available in a trusted location. The Mac App Store has a lot of good software but also a lot of junk. The ratio is a lot worse than on iOS and I think we should change that. 

If the problem is the $99 developer fee, would you be more interested in publishing software there if it were to go away (or at least not be something you need to worry about)?

by Anu at October 29, 2018 22:50

Daniel Pocock

FOSDEM 2019 Real-Time Communications Call for Participation

FOSDEM is one of the world's premier meetings of free software developers, with over five thousand people attending each year. FOSDEM 2019 takes place 2-3 February 2019 in Brussels, Belgium.

This email contains information about:

  • Real-Time communications dev-room and lounge,
  • speaking opportunities,
  • volunteering in the dev-room and lounge,
  • social events (the legendary FOSDEM Beer Night and Saturday night dinners provide endless networking opportunities),
  • the Planet aggregation sites for RTC blogs

Call for participation - Real Time Communications (RTC)

The Real-Time Communications dev-room and Real-Time lounge is about all things involving real-time communication, including: XMPP, SIP, WebRTC, telephony, mobile VoIP, codecs, peer-to-peer, privacy and encryption. The dev-room is a successor to the previous XMPP and telephony dev-rooms. We are looking for speakers for the dev-room and volunteers and participants for the tables in the Real-Time lounge.

The dev-room is only on Sunday, 3rd of February 2019. The lounge will be present for both days.

To discuss the dev-room and lounge, please join the Free RTC mailing list.

To be kept aware of major developments in Free RTC, without being on the discussion list, please join the Free-RTC Announce list.

Speaking opportunities

Note: if you used FOSDEM Pentabarf before, please use the same account/username

Real-Time Communications dev-room: deadline 23:59 UTC on 2nd of December. Please use the Pentabarf system to submit a talk proposal for the dev-room. On the "General" tab, please look for the "Track" option and choose "Real Time Communications devroom". Link to talk submission.

Other dev-rooms and lightning talks: some speakers may find their topic is in the scope of more than one dev-room. It is encouraged to apply to more than one dev-room and also consider proposing a lightning talk, but please be kind enough to tell us if you do this by filling out the notes in the form.

You can find the full list of dev-rooms on this page and apply for a lightning talk at https://fosdem.org/submit

Main track: the deadline for main track presentations is 23:59 UTC 3 November. Leading developers in the Real-Time Communications field are encouraged to consider submitting a presentation to the main track.

First-time speaking?

FOSDEM dev-rooms are a welcoming environment for people who have never given a talk before. Please feel free to contact the dev-room administrators personally if you would like to ask any questions about it.

Submission guidelines

The Pentabarf system will ask for many of the essential details. Please remember to re-use your account from previous years if you have one.

In the "Submission notes", please tell us about:

  • the purpose of your talk
  • any other talk applications (dev-rooms, lightning talks, main track)
  • availability constraints and special needs

You can use HTML and links in your bio, abstract and description.

If you maintain a blog, please consider providing us with the URL of a feed with posts tagged for your RTC-related work.

We will be looking for relevance to the conference and dev-room themes, presentations aimed at developers of free and open source software about RTC-related topics.

Please feel free to suggest a duration between 20 minutes and 55 minutes but note that the final decision on talk durations will be made by the dev-room administrators based on the received proposals. As the two previous dev-rooms have been combined into one, we may decide to give shorter slots than in previous years so that more speakers can participate.

Please note FOSDEM aims to record and live-stream all talks. The CC-BY license is used.

Volunteers needed

To make the dev-room and lounge run successfully, we are looking for volunteers:

  • FOSDEM provides video recording equipment and live streaming, volunteers are needed to assist in this
  • organizing one or more restaurant bookings (dependending upon number of participants) for the evening of Saturday, 2 February
  • participation in the Real-Time lounge
  • helping attract sponsorship funds for the dev-room to pay for the Saturday night dinner and any other expenses
  • circulating this Call for Participation (this text) to other mailing lists

Social events and dinners

The traditional FOSDEM beer night occurs on Friday, 1st of February.

On Saturday night, there are usually dinners associated with each of the dev-rooms. Most restaurants in Brussels are not so large so these dinners have space constraints and reservations are essential. Please subscribe to the Free-RTC mailing list for further details about the Saturday night dinner options and how you can register for a seat.

Spread the word and discuss

If you know of any mailing lists where this CfP would be relevant, please forward this email. If this dev-room excites you, please blog or microblog about it, especially if you are submitting a talk.

If you regularly blog about RTC topics, please send details about your blog to the planet site administrators:

Planet site Admin contact
All projects Free-RTC Planet (http://planet.freertc.org) contact planet@freertc.org
XMPP Planet Jabber (http://planet.jabber.org) contact ralphm@ik.nu
SIP Planet SIP (http://planet.sip5060.net) contact planet@sip5060.net
SIP (Español) Planet SIP-es (http://planet.sip5060.net/es/) contact planet@sip5060.net

Please also link to the Planet sites from your own blog or web site as this helps everybody in the free real-time communications community.

Contact

For any private queries, contact us directly using the address fosdem-rtc-admin@freertc.org and for any other queries please ask on the Free-RTC mailing list.

The dev-room administration team:

by Daniel.Pocock at October 29, 2018 19:57

ProcessOne

What’s new in ejabberd Business Edition and ejabberd SaaS in October

We have been adding many improvements to ejabberd Business Edition and are rolling them out for new ejabberd SaaS customers in October.

HTTP file transfer using S3 and Minio

ejabberd Business Edition was previously supporting HTTP file transfer using Amazon AWS S3 backend. We now created and documented the process where our customers can host their files themselves using Minio, an S3 compliant implementation.

If you are an ejabberd SaaS customer, you can keep on using your own Amazon account by providing specific S3 credentials for your own S3 bucket. This allows you to manage your own storage and define your own retention period. This approach is the best way to also be compliant with GDPR, as ejabberd SaaS service is stateless and does not have any way to access the files your users are transferring.

Improvements in mobile MUC and unread inbox support

MucSub is a popular extension to ejabberd Business Edition and ejabberd SaaS. This is a way to support standard MUC chatroom, while providing and extra protocol to interact with it that is mobile-friendly.

The first improvement we made is that your own MAM archive will now archive the MucSub messages. This makes it possible to manage them as “conversations”, like one-to-one messages, when it comes to Message Archive Management.

Once we stored MucSub message in MAM, we had to go further. We also made some improvements to manage your MAM download efficiently, by providing a way to download an unread inbox summary. This packet allows you to get the list of conversations that have unread messages, either MucSub conversations or one-to-one discussions. The client can then download the message archive containing unread messages on-demand. This avoids having to download all your MAM messages at once on connect to display unread counters. This is a huge optimisation and an improvement for mobile users.

Finally, we expanded the range of MUC Admin functions you can perform as an admin without needing to join the room.

Push module improvements

Push can now be fully customised, with all keys being editable and settable through API.

That said, we also improved the standard behaviour. We now support notification grouping on iOS 12. Notifications sent will be automatically grouped per conversation. The user can still opt for a global app grouping in the iOS notification setting for that application.

MySQL 8 support

ejabberd now supports MySQL 8 new authentication mechanism. You can start testing it today.

Send IQ API call

We exposed and documented an API call that allows you to send an IQ using the API, then wait for the response to that IQ and return it as a result of the HTTP call.

Note for ejabberd SaaS existing customers

If you are already an ejabberd SaaS customers, and need access to the new features immediately, please contact ejabberd SaaS support to plan an upgrade with our team.

by Mickaël Rémond at October 29, 2018 15:45

Monal IM

Push server outage

There was a push server outage on push.monal.im for a few hours this weekend. It was  my mistake while upgrading components. I will be more careful in the future. Obviously no messaging traffic goes through this server so there was no data loss. Some people may not have reliably received new message notifications this weekend. 

by Anu at October 29, 2018 01:55

October 26, 2018

Monal IM

Monal in EU stores

I’ve completed my server changes. Monal for iOS and Mac should both be available in EU stores.  I will update the next release of both with links to the privacy policy. 

by Anu at October 26, 2018 00:17

Peter Saint-Andre

Understanding Others

In my recent philosophy talk, I mentioned that thinking philosophically has helped me better understand people. This might seem counterintuitive - after all, don't big thinkers believe they have all the answers? Yes, I used to have that kind of arrogance, too. Yet over time I started to wonder: why do people have so many different opinions about things? Why have these various philosophies of life persisted for so long (Stoicism, Platonism, Buddhism, Taoism, etc.)? Why do I think what I think? Is it really in my control? At some level can you really "blame" people for the contents of their minds?...

October 26, 2018 00:00

October 24, 2018

Monal IM

Dark Mode

The new Mac beta for OSX should support dark mode. I am still tweaking it so there may be places where colors are less than ideal.  This build also supports OMEMO.

by Anu at October 24, 2018 16:14

ProcessOne

RTB benchmark now supports MQTT

We are happy to announce that RTB now fully supports MQTT 3.1.1 and 5.0. With this addition, RTB is now a fully-featured real-time infrastructure benchmarking tool.

RTB is capable of testing XMPP and MQTT solutions at the rate of millions of concurrent sessions. You can find RTB on GitHub. In the near future we plan to release detailed benchmarks stress-testing ejabberd on both protocols.

What is RTB?

RTB (Real-Time Benchmark) is an open source benchmarking tool to stress-test real-time protocols. The aim of this project is to define an easy benchmark for XMPP and MQTT servers, with minimal configuration overhead.

RTB was first released by ProcessOne in July 2018. To compare server implementations and be sure they are ready for massive traffic, there is a need for a “golden standard” benchmarking tool that is easy to use and avoids ambiguity due to configuration or overhead – each test should have the same baseline and capabilities for the results to be comparable.

We believe RTB fits such a role, because it has sane defaults (gathered from statistics of real world servers) and is able to cover all the test features defined in the XMPP Compliance Suite 2018.

What is next?

The next step for RTB is to implement support for MQTT version 3.1. Additional work will be put into making RTB simple to use and have friendly display of results.

We encourage the community to use RTB, and provide feedback through issues and pull requests.

by Marek Foss at October 24, 2018 14:17