XMPP Over WebSocket
X.O.W.S (or XoWS) stands for "XMPP Over WebSocket" and is a Javascript XMPP web client
that use the WebSocket protocole.
The main idea of the project is initially to create a XMPP client with the following
caracteristics:
- Free from thirdparty library, lightweight and quick to load.
- Performant with low memory footprint.
- Allowing easy customisation and creation of graphical theme / web interface.
- Implementing features closer to modern chat clients like a one with name
beginning by "D".
The library is written in old fashion C-style Javascript to keep code as clear and
optimized as possible, avoiding as most as possible Javascript false friends like the
"this" keyword, anonymous functions, and modern Javascript syntax and confusional
paradigms such as promises, sync and async functions features.
The following screenshots are not up-to-date and do not reflect exactly the current
stage of GUI.
0.9.1 (2022-05-09)
- Refactoring of GUI Module
- Refactoring of GUI Theme and templates
- Adding support for PEP Native Bookmarks (XEP-0402)
- Improved avatar and user data caching mechanisms
- New "less angry" logo
- Numerous bugs fixed
0.9.0 (2021-02-07)
- First public BETA release
The library is divided into several "API Modules" with one file per "module", each
"module" is dedicated to a specific aspect of the program and have a dedicated function
name prefix except the "base API". Here is module list and their quick description:
xows_base.js
Base API: Base constants and functions such as string/bytes manipulation and algorithmsxows_xml.js
XML Module: XML parsing, manipulation and building functionsxows_sasl.js
SALS Module: SASL mechanism implementationxows_sck.js
WebSocket Module: WebSocket interface functionsxows_xmp.js
XMPP Module: "Low-Level" XMPP protocol client interfacexows_cach.js
Caching Module: Data caching and Browser local storage management functionsxows_cli.js
Client Module: "High-level" XMPP client interfacexows_l10n.js
l10n Module: Localization mechanisms and translation functions xows_tpl.js
HTML Templates Module: HTML templates download and parsing mechanismxows_doc.js
DOM Managment Module: Browser DOM document management and GUI base toolsxows_gui.js
GUI Module: GUI related functions and mechanismsxows_init.js
Init Module: The main "Public" API and library initialization functions