EchoX

EchoX Logo Github last build (main) License: MIT GitHub Repo stars

EchoX is a lightweight and pure Dart library that allows you to connect to XMPP (Extensible Messaging and Presence Protocol) servers. This package provides a range of fundamental functionalities for XMPP communication. And is built on top of the popular Strophe.js library, providing a streamlined and efficient solution for XMPP communication in Dart applications.

XMPP

XMPP is an open source standart protocol widely used for real-time communication, enabling features such as instant messaging, presence information, and contact list management. With this package, you can easily integrate XMPP capabilities into your Dart & Flutter applications, facilitating secure communication between users.

Features

WebSocket Connectivity: EchoX establishes connections to XMPP servers exclusively over the WebSocket protocol, ensuring efficient and reliable communication.

Authentication Mechanisms: Provides support for various XMPP authentication mechanisms, including SASL SCRAM with encryption options such as SHA-1, SHA-256, SHA-384, SHA-512, XOAUTH-2, OAUTHBEARER, Anonymous, and EXTERNAL.

While support for these mechanisms are available, only SHA-1, PLAIN, and SHA-256 have been tested thoroughly.

Fundamental Functionalities: EchoX provides a set of fundamental functionalities, including sending and retrieving messages, presence management, roster management, and more.

Pure Dart implementation: Written in pure Dart, enabling easy integration with Dart and Flutter projects.

Lightweight: EchoX is designed to be lightweight, providing a streamlined solution for XMPP connectivity without unnecessary dependencies or overhead.

API

This code snippet demonstrates how to establish a connection using the EchoX package.

import 'package:echox/echox.dart';

void main() async {
  final echox = EchoX(
    service: 'ws://example.com:port/ws',
    jid: JabberID(
      'user',
      domain: 'localhost',
      resource: 'mobile',
    ),
    password: 'somepsw',
  );

  debug(echox);
  echox.connect();
}

Contributing to EchoX

We welcome and appreciate contributions from the community to enhance the EchoX. If you have any improvements, bug fixes, or new features to contribute, you can do so by creating a pull request.

Libraries

echox
Serves as the foundation for establishing and managing XMPP (Extensible Messaging and Presence Protocol) connections.