Hi all,

What with the chaos of Mobile World Congress last week we seem to have been hoarding releases - so here's what's been happening!

Synapse 0.8.0 was released this afternoon. This is a major performance/stability release, with lots of good stuff going on - especially adding more customisable push notification support APIs for iOS/Android; support for registering accounts from mobile devices; extensions to the new Application Service API and lots of federation improvements and bug fixes. Please upgrade at your earliest convenience.

Meanwhile, we quietly released the Matrix Console Android example app to the Google Play last week, alongside v0.2.2 of the Android SDK - release notes below. There'll be a new version of the Android Console app out tomorrow, but mentioning here for completeness and to share the release notes. Also, the iOS SDK is now on v0.3.1, with lots of performance and usability improvements.

Finally, we have a whole new official Matrix client SDK for JavaScript, all packaged up ready for use by Node developers and JS purists alike as an NPM with minimal dependencies. Meanwhile, the matrix-angular-sdk has been switched to use matrix-js-sdk from now on. You can use the plain JS API with a npm install matrix-js-sdk and then:

var sdk = require("matrix-js-sdk");
var client = sdk.createClient("https://matrix.org");
client.publicRooms(function(err, data) {'{'}
    console.log("Public Rooms: %s", JSON.stringify(data));

Meanwhile, release notes for all & sundry lie below.

Changes in synapse v0.8.0 (2015-03-06)


  • Add support for registration fallback. This is a page hosted on the server which allows a user to register for an account, regardless of what client they are using (e.g. mobile devices).

  • Added new default push rules and made them configurable by clients:

    • Suppress all notice messages.
    • Notify when invited to a new room.
    • Notify for messages that don't match any rule.
    • Notify on incoming call.


  • Added per host server side rate-limiting of incoming federation requests.
  • Added a /get_missing_events/ API to federation to reduce number of /events/ requests.


  • Added configuration option to disable registration: disable_registration.
  • Added configuration option to change soft limit of number of open file descriptors: soft_file_limit.
  • Make tls_private_key_path optional when running with no_tls.

Application services:

  • Application services can now poll on the CS API /events for their events, by providing their application service access_token.
  • Added exclusive namespace support to application services API.
Changes in Matrix Android SDK in 0.2.2 (2015-02-27)


Matrix Console


  • Exif management : the uploaded image is rotated according to the exif metadata (if the device has enough free memory).
  • Add a piechart while downloading an image
  • Add JSON representation of a message (tap on its row, “Message details”
  • The public rooms list is now sorted according to the number of members.


  • Add configuration and skeleton classes for receiving GCM messages
  • Add REST client for pushers API with add method for HTTP pushers.
  • Add the account creation.

Bug fixes:

  • Reset the image thumbnail when a row is reused.
  • SYAND-30 Notification should be away when entering a room.
  • Some images thumbnails were downloaded several times.
  • Restore the foreground service
  • The medias cache was not cleared after logging out.
  • The client crashed when joining #anime:matrix.org.
  • SYAND-29 Messages in delivery status are not seen
  • Some user display names were their matrix IDs.
  • The room name/ topic were invalid when inviting to a room.
Changes in Matrix iOS SDK in 0.3.1 (2015-03-03)



  • Improved push notifications documentation.
  • MXSession: Slightly randomise reconnection times by up to 3s to prevent all Matrix clients from retrying requests to the homeserver at the same time.
  • Improved logs

Bug fixes:

  • SYIOS-90 - iOS can receive & display messages multiple times when on bad connections

Matrix Console


  • Fixed warnings with 64bits builds.
  • Room history: Improve scrolling handling when keyboard appears.
  • Contacts: Prompt user when local contacts tab is selected if constact sync is disabled.

Bug fixes:

  • Fix crash when switching rooms while the event stream is resuming.
  • SYIOS-69 - On Screen Keyboard can end up hiding the most recent messages in a room.
  • SYIOS-98 - Crash when attempting to attach image on iPad

Changes in Matrix iOS SDK in 0.3.0 (2015-02-23)



  • [MXSession initWithMatrixRestClient: andStore: ] and the onStoreDataReady argument in [MXSession start:] has been removed. The SDK client can now use the asynchronous [MXSession setStore:] method to define a store and getting notified when the SDK can read cached data from it. (SYIOS-62)
  • MXStore implementations must now implement [MXStore openWithCredentials].
  • All MXRestClient methods now return MXHTTPOperation objects.


  • Created the MXSession.notificationCenter component: it indicates when an event must be notified to the user according to user's push rules settings.
  • MXFileStore: Improved loading performance by 8x.
  • Added an option (MXSession.loadPresenceBeforeCompletingSessionStart) to refresh presence data in background when starting a session.
  • Created MXLogger to redirect NSLog to file and to log crashes or uncaught exception.
  • MXRestClient: Added [MXRestClient registerFallback].
  • Logs: Make all NSLog calls follows the same format.


  • SYIOS-40 - Any HTTP request can fail due to rate-limiting on the server, and need to be retried.
  • SYIOS-81 - Ability to send messages in the background.

Bug fixes:

  • SYIOS-67 - We should synthesise identicons for users with no avatar.
  • MXSession: Fixed crash when closing the MXSession before the end of initial Sync.

The Foundation needs you

The Matrix.org Foundation is a non-profit and only relies on donations to operate. Its core mission is to maintain the Matrix Specification, but it does much more than that.

It maintains the matrix.org homeserver and hosts several bridges for free. It fights for our collective rights to digital privacy and dignity.

Support us