Chat SDK is a full-featured open source instant messaging framework for Android. The full featured Chat SDK, can be scaled and flexible and follows the following main principles:
- Free. Chat SDK is free for commercial use
- Open Source. Chat SDK is open source
- Full data control. You have full and exclusive access to user chat data
- Fast integration. The SDK chat is fully displayed outside the box
- Demo Version. Firebase or XMPP opens this link on your Android phone to install
- Can be measured. Supports millions of daily users [1, 2]
- Agnostic backend. The SDK chat can be customized to support any backend
- Multiple backend support Firebase, ejabberd, OpenFire
- Data storage all data is persisted using the GreenDao
- Dynamic image loading using Fresco
- Reactive using RXAndroid
- Java 8 supports Java 8 and lamda expressions
- API Level 16+ Compatible with 99.3% of Android devices
- Private and group messages
- Public chat rooms
- Username / password, Facebook, Twitter, Anonymous and custom login
- Phone number authentication
- Push notifications (using FCM)
- Text, Image and Location messages
- User profiles
- User search
- Powered by Firebase
- Firebase UI
Performance and Scalability
This is the average cost of Firebase hosting calculated using the Firebase Database Profiling tool. Firebase charges 1 USD per GB of data downloaded (not including images or files). We have tabulated several general operations and how much can be done per 1 USD from the monthly hosting fee:
- Message Received (1kb) = 1,000,000
- Login (10kb) = 100,000
- Profile Update (0.2 kb) = 5,000,000
- User search (2kb) = 500,000
What is possible on the free Firebase (10GB / month) package:
500k login, 5 million messages.
What is possible on the Flame package (20GB / month / 20 USD):
1 million logins, 10 million messages.
The real time data base will support up to 100,000 users simultaneously. From our experience, 1 concurrent connection is enough to support 10 users per minute. That means that at peak capacity, the SDK Chat can support 1 million users per minute and more than 20 million monthly users.
If you are interested in the Chat SDK version that supports Firebase's new database, please vote for this issue and help us meet our targets on Patreon.
Support the project
We want to work full time developing open source. At present we have to spend a lot of time doing other consulting work to cover our costs. If you like what we do and want to support us to focus our time more on open source projects, we will be very grateful.
We are very happy with this project and we are looking for other people to get involved. Over time, we want to make the best messaging framework for mobile. Helping us can involve one of the following:
Provide feedback and feature requests
- Report a bug
- Fix a bug
- Writing documentation
- Improve user interface
- Help us update the library to use Swift
- Help write adapters for other services such as Layer, Pusher, Pubnub etc.
Agnostic architecture Backend
The user interface for Chat SDK is completely separated from the backend. This means that the Chat SDK can be adapted to connect to all types of messaging servers by creating special network adapters. We have currently written two network adapters, one for Firebase and one for XMPP. It has a number of benefits:
- You can connect the SDK Chat user interface to your messaging server by writing a special network adapter. This saves complex work on building a full user interface.
- You can change the backend used by your application. Imagine you decided to start with the Firebase version of the Chat SDK but at some point you decide that you want to switch to using the XMPP server. Usually, this requires a complete rewrite of the message sending client but with the Chat SDK it can be achieved by changing one line of code!
We offer a choice of two license for this app. You can either use the Chat SDK license or the GPLv3 license.
Most Chat SDK users either want to add the Chat SDK to an app that will be released to the App Store or they want to use the Chat SDK in a project for their client. The Chat SDK license gives you complete flexibility to do this for free.
Chat SDK License Summary
- License does not expire.
- Can be used for creating unlimited applications
- Can be distributed in binary or object form only
- Commercial use allowed
- Can modify source-code but cannot distribute modifications (derivative works)
If a user wants to distribute the Chat SDK source code, we feel that any additions or modifications they make to the code should be contributed back to the project. The GPLv3 license ensures that if source code is distributed, it must remain open source and available to the community.
GPLv3 License Summary
- Can modify and distribute source code
- Commerical use allowed
- Cannot sublicense or hold liable
- Must include original license
- Must disclose source