whixp 2.0.0-beta1 copy "whixp: ^2.0.0-beta1" to clipboard
whixp: ^2.0.0-beta1 copied to clipboard

Streamline Your XMPP Messaging with Lightweight Dart-Based XMPP Client

Whixp #

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

whixp

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

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 #

Connection Management: Establishes secure connections to XMPP servers effortlessly. Manage connection states with ease: connect, disconnect, and handle reconnections properly.

Stanzas Handling: Efficiently handles various XMPP stanzas, including IQ, message, and presence stanzas. You can customize stanza handling based on your application's requirements.

Extensions Support: Extensible architecture supports XMPP protocol extensions.

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, PLAIN and ANONYMOUS.

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

Pluggable Architecture: Build on top of a modular and pluggable architecture. You can easily extend and customize Whixp to fit your specific use case.

Fundamental Functionalities: Whixp 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: Whixp is designed to be lightweight, providing a streamlined solution for XMPP connectivity without unnecessary dependencies or overhead.

Available Plugins #

DataForms: Providing a mechanism for exchanging complex data.

DISCO: Discovers information about entities and services.

Result Set Management: Provides reliable stanza delivery.

PubSub: Enables publish-subscribe messaging.

Ping: Checks the connection status of another entity.

Date and Time Profiles: Negotiates the format of date and time information.

Delay: Delays the delivery of stanzas.

API #

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

import 'package:whixp/whixp.dart';

void main() {
  final whixp = Whixp(
    'vsevex@example.com/desktop',
    'passwd',
    host: 'example.com',
    logger: Log(enableError: true, enableWarning: true),
  );

  whixp.connect();
  whixp.addEventHandler('sessionStart', (_) {
    whixp.getRoster();
    whixp.sendPresence();
  });
}

Contributing to Whixp #

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