Smack
=====

[![Build Status](https://github.com/igniterealtime/Smack/workflows/CI/badge.svg)](https://github.com/igniterealtime/Smack/actions?query=workflow%3A%22CI%22)  [![Coverage Status](https://coveralls.io/repos/igniterealtime/Smack/badge.svg)](https://coveralls.io/r/igniterealtime/Smack)  [![Project Stats](https://www.openhub.net/p/smack/widgets/project_thin_badge.gif)](https://www.openhub.net/p/smack)  [![Link to XMPP chat smack@conference.igniterealtime.org](https://inverse.chat/badge.svg?room=smack@conference.igniterealtime.org)](https://inverse.chat/#converse/room?jid=smack@conference.igniterealtime.org)

About
-----

[Smack] is an open-source, highly modular, easy to use, XMPP client library written in Java for Java SE compatible JVMs and Android.

Being a pure Java library, it can be embedded into your applications to create anything from a full XMPP instant messaging client to simple XMPP integrations such as sending notification messages and presence-enabling devices.
Smack and XMPP allow you to easily exchange data in various ways e.g., fire-and-forget, publish-subscribe, between human and non-human endpoints (M2M, IoT, …).

More information is provided by the [Overview](documentation/overview.md).

Getting started
---------------

Start with having a look at the **[Documentation]** and the **[Javadoc]**.

Instructions on how to use Smack in your Java or Android project are provided in the [Smack Readme and Upgrade Guide](https://igniterealtime.org/projects/smack/readme).

License
-------

Most of Smack is governed by the Apache License 2.0 (SPDX License Identifier: Apache 2.0). This license requires that the contents of a NOTICE text file are shown "…within a display generated by the Derivative Works, if and wherever such third-party notices normally appear.".

Smack comes which such a NOTICE file. Moreover, since `smack-core` is licensed under the Apache License 2.0, the conditions apply to every project using Smack. The content of Smack's NOTICE file can conveniently be retrieved using `Smack.getNoticeStream()`.

Some subprojects of Smack are governed by other licenses. Please refer to the individual subprojects.

Professional Services
---------------------

Smack is a collaborative effort of many people.
Some are paid, e.g., by their employer or a third party, for their contributions.
But many contribute in their spare time for free.
While we try to provide the best possible XMPP library for Android and Java SE-compatible execution environments by following state-of-the-art software engineering practices, the API may not always perfectly fit your requirements.
Hence welcome contributions and encourage discussion about how Smack can be further improved.
We also provide **paid services** ranging from **XMPP/Smack related consulting** to **designing and developing features** to accommodate your needs.
Please contact [Florian Schmaus](mailto:flo@geekplace.eu) for further information.

Bug Reporting
-------------

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

1. Read ["How to ask for help or report an issue"](https://github.com/igniterealtime/Smack/wiki/How-to-ask-for-help,-report-an-issue-and-possible-solve-the-problem-yourself)
2. [Create a discourse account](https://discourse.igniterealtime.org/signup) (you can also sign up with your Google account).
3. Login to the forum account
4. Press "New Topic" in your toolbar and choose the 'Smack Support' sub-category.

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

Donate
------

If you find Smack useful and feel like donating, then you can use one of the following systems:

- Donate via Bitcoin: 1LiU78z3498wu3jwRPKbvovKAHjTcpVbuK

Contact
-------

The developers hang around in [smack@conference.igniterealtime.org](xmpp:smack@conference.igniterealtime.org?join). You may use [this link](https://inverse.chat/badge.svg?room=smack@conference.igniterealtime.org) to join the room via [inverse.chat](https://inverse.chat).
Remember that it may take some time (~hours) to get a response.
 
You can also reach us via the [Smack Support Forum] if you have questions or need support, or the [Smack Developers Forum] if you want to discuss Smack development.

Contributing
------------

If you want to start developing for Smack and eventually contribute code back, then please have a look at the [Guidelines for Smack Developers and Contributors](https://github.com/igniterealtime/Smack/wiki/Guidelines-for-Smack-Developers-and-Contributors).
The guidelines also contain development quickstart instructions.

Resources
---------

- Current Readme: https://igniterealtime.org/projects/smack/readme
- Bug Tracker: https://issues.igniterealtime.org/browse/SMACK
- JaCoCo Coverage Reports: https://www.igniterealtime.org/builds/smack/dailybuilds/jacoco/html/
- Nightly Javadoc: http://www.igniterealtime.org/builds/smack/dailybuilds/javadoc/
- Nightly Documentation: http://www.igniterealtime.org/builds/smack/dailybuilds/documentation/
- User Forum: https://discourse.igniterealtime.org/c/smack/smack-support
- Dev Forum: https://discourse.igniterealtime.org/c/smack/smack-dev
- Maven Releases: https://oss.sonatype.org/content/repositories/releases/org/igniterealtime/smack/
- Maven Snapshots: https://oss.sonatype.org/content/repositories/snapshots/org/igniterealtime/smack/
- Nightly Unique Maven Snapshots: https://www.igniterealtime.org/archiva/repository/maven/

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 RealTime 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.

[Smack] - an [Ignite Realtime] community project.

[Smack]: https://www.igniterealtime.org/projects/smack/index.jsp
[Ignite Realtime]: https://www.igniterealtime.org
[XMPP (Jabber)]: https://xmpp.org/
[Smack Developers Forum]: https://discourse.igniterealtime.org/c/smack/smack-dev
[Smack Support Forum]: https://discourse.igniterealtime.org/c/smack/smack-support
[Documentation]: https://download.igniterealtime.org/smack/docs/latest/documentation/
[Javadoc]: https://download.igniterealtime.org/smack/docs/latest/javadoc/
