Spark is a free, open source collaboration & communication project written in Java and released under Apache-2.0. It has 606 GitHub stars, 445 forks and 7 open issues, and was last pushed 28 hours ago. On this registry it ranks #56 of 62 tracked projects in Collaboration & Communication, with 5 head-to-head comparisons available. It gained 1 stars over the last 30 tracked days.

What is Spark?

Spark is an open-source, cross-platform XMPP instant messaging client written in Java, built for businesses and organizations that want private, standards-based real-time collaboration instead of public consumer IM networks.

What it is

Spark is a desktop instant messaging client that speaks XMPP, also known as Jabber, and is published under the Apache-2.0 licence as an Ignite Realtime community project. It lives in the Java ecosystem, which is what makes the cross-platform claim practical across Windows, macOS and Linux, and the repository is tagged with xmpp, xmpp-client, jabber, openfire, java and collaboration. The registry entry records 604 stars, 445 forks and 7 open issues, with the last push dated 2026-09-13.

The concrete problem Spark solves is stated plainly in its own README: combined with the Openfire server, it is positioned as the alternative to using unsecure public IM networks. That means an organization runs its own XMPP server rather than renting presence and messaging from a consumer platform, and Spark is the client its staff install on their desks. Group chat, file transfer and screen sharing all stay inside the same client, so a company does not have to stitch together a messaging app and a separate screen-sharing tool to get basic internal communication.

Key capabilities

  • Group Chat, which the README lists first and which corresponds to the multi-user chat screenshots in the project documentation.
  • In-line Spell Checking inside the message composition window.
  • End-to-end (E2E) Message Encryption with OTR, giving off-the-record encrypted conversations between clients.
  • Tabbed Conversations, so multiple simultaneous chats stay in one window.
  • File Transfer between users directly through the client.
  • Screen Capture Sharing, letting a participant broadcast a captured screen region.
  • Message translations, for conversations spanning more than one language.

Who uses it and how

  • Organizations that already run or plan to run the Openfire XMPP server, since the README treats Spark plus Openfire as the intended pairing.
  • Windows-based fleets, where administrators can distribute the spark_*-with-jre-amd64.exe build that bundles the JRE and avoids a separate Java install step.
  • Java developers working on the client itself, who clone the repository, run mvn verify, then cd Spark/core and mvn exec:java, or launch the org.jivesoftware.Spark main class from IntelliJ, Eclipse or Visual Studio Code.
  • Plugin authors, who work against the Sparkplug Kit development guide and the Spark Development forum category.
  • Translators, who contribute through the project's Transifex workspace.

Getting started

Download the last release from the GitHub releases page, or a nightly build from the Ignite Realtime downloads page; on Windows the spark_*-with-jre-amd64.exe package with the bundled JRE is the recommended choice. To run from sources, clone https://github.com/igniterealtime/Spark.git, run mvn verify, then cd Spark/core and mvn exec:java.

How it compares

Among the tools named in the project's own material, Spark is the client half of a pair, with Openfire as the server half, and both are Ignite Realtime projects released as open source. That places Spark alongside the broader XMPP client field listed on the XMPP software compliance page, rather than in the proprietary hosted-messaging category, and it is maintained by the same community that maintains the server it is designed to talk to.

When to use it — and when not to

A self-hoster must operate an XMPP server, and the README's recommended path pairs Spark with Openfire, so the client is not useful on its own without somewhere to connect. Bug tracker access is restricted to a small group of users, which means new reporters have to create a Discourse account, log in, open a New Topic in the Spark Dev category and file there instead of in the tracker directly. Anyone wanting a zero-infrastructure, browser-only chat service should look elsewhere; Spark is a Java desktop client aimed at organizations willing to run their own messaging infrastructure.

project readme (upstream, from github) — read inline

Spark spark-64x64

Spark is an Open Source, cross-platform IM client optimized for businesses and organizations.

  • Group Chat
  • In-line Spell Checking
  • End-to-end (E2E) Message Encryption with OTR.
  • Tabbed Conversations
  • File Transfer
  • Screen Capture Sharing
  • Message translations.

Combined with the Openfire server, Spark is the easiest and best alternative to using unsecure public IM networks.

Spark - an Ignite Realtime community project.

Build Status

Resources

Install

Download the last release from the GitHub releases page or nightly build with the latest changes. For Windows, if you are not sure, if it's recommended to download the spark_*-with-jre-amd64.exe that has bundled JRE.

Screenshots

Spark_Login

Spark_menu

Spark_MUC

Bug Reporting

Only a few users have access for filling bugs in the tracker. New users should:

  1. Create a Discourse account
  2. Login to a Discourse account
  3. Click on the New Topic button
  4. Choose the Spark Dev category and provide a detailed description of the bug.

Please search for your issues in the bug tracker before reporting.

Run from sources

git clone https://github.com/igniterealtime/Spark.git
mvn verify
cd Spark/core
mvn exec:java

To run from an IDE execute the Main class org.jivesoftware.Spark and specify VM option -Ddebug.mode=true.

Ignite Realtime

Ignite Realtime is an Open Source community composed of end-users and developers around the world who are interested in applying innovative, open-standards-based Real Time Collaboration to their businesses and organizations. We're aimed at disrupting proprietary, non-open standards-based systems and invite you to participate in what's already one of the biggest and most active Open Source communities.

Frequently asked questions

Is Spark free to use?

Spark is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Spark do?

Cross-platform real-time collaboration client optimized for business and organizations.

What is Spark written in?

Spark is primarily written in Java. Its source is publicly available at https://github.com/igniterealtime/Spark, and it has 606 GitHub stars.