NOTE: Tigase Halcyon has new home at tigase.dev/tigase/_libraries/halcyon - please submit all issues/pull-requests there!
Halcyon
What it is
Halcyon is an XMPP client library written in a Kotlin programming language. It provides implementation of core of the XMPP standard and processing XML. Additionally it provides support for many popular extensions (XEP's).
Library using Kotlin Multiplatform feature to provide XMPP library for as many platforms as possible. Currently we are focused on
- JVM
- JavaScript
- Android
In the future we want to provide native binary version.
This repository contains source files of the library.
Features
Halcyon implements support for RFC 6120: Extensible Messaging and Presence Protocol (XMPP): Core and RFC 6121: Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence.
Halcyon is under active development, so list of features is changing very often.
Quickstart
Simplest client
Here is example of simplest client sending single message.
val halcyon = createHalcyon {
auth {
userJID = "client@tigase.net".toBareJID()
password { "secret" }
}
}
halcyon.connectAndWait()
halcyon.request.message {
to = "romeo@example.net".toJID()
"body" {
+"Art thou not Romeo, and a Montague?"
}
}.send()
halcyon.disconnect()
Code snippets
There is a set of small examples of Halcyon library usage. You can find them in codeSnippets project.
Support
When looking for support, please first search for answers to your question in the available online channels:
- Our online documentation: Tigase Docs
- Our online forums: Tigase Forums
- Our online Knowledge Base Tigase KB
If you didn't find an answer in the resources above, feel free to submit your question to either our community portal or open a support ticket.
Compilation
Gradle Build Tool is required tool to compile library:
./gradlew assemble
Jar file will be stored in ./build/libs/
, JavaScript files - in ./build/js/
.
License
Official Tigase repository is available at: https://github.com/tigase/halcyon/.
Copyright (c) 2004 Tigase, Inc.
Licensed under AGPL License Version 3. Other licensing options available upon request.