A pure-Dart XMPP library
Go to file
Alexander "PapaTutuWawa f73daf4d1c fix(core): Fix getting stuck on invalid stream ends
Whenever the stream ends in a weird state, for example with
`<some-tag`, initiating a new stream will confuse the XML parser
and lead errors causing the connection to get stuck.

To fix this, we had to work around xml's extension methods and implement
the extensions in the new "stream parser" where we can reset the parser
(and by reset I mean replace) and thus continue with a fresh parsing state
whenever we reconnect (or connect).
2023-05-06 20:58:34 +02:00
.github docs: Add funding.yml 2022-12-23 15:18:53 +01:00
.idea refactor: Move packages into packages/ 2022-11-08 20:05:22 +01:00
example_flutter fix(example): Remove useDirectTLS 2023-04-09 13:14:06 +02:00
examples_dart release: Version 0.3.1 2023-04-05 13:20:16 +02:00
integration_tests feat(tests): Add a MUC component for testing 2023-04-09 13:14:30 +02:00
nix release: Version 0.3.1 2023-04-05 13:20:16 +02:00
packages fix(core): Fix getting stuck on invalid stream ends 2023-05-06 20:58:34 +02:00
scripts docs: Add some doc string to the scripts 2023-01-28 15:31:47 +01:00
.gitignore feat: Make moxxmpp docs buildable using flakes 2023-01-28 15:22:37 +01:00
.gitlint fix(meta): Add 'example' as a 'commit target' 2023-03-18 15:00:54 +01:00
.woodpecker.yml ci: Add Woodpecker CI 2023-01-14 15:00:55 +01:00
analysis_options.yaml chore(tests): Format and lint tests 2023-03-18 16:13:45 +01:00
CONTRIBUTING.md feat(docs): Add CONTRIBUTING.md 2023-03-08 20:51:38 +01:00
flake.lock feat(tests): Add an integration test for SASL2 2023-04-02 17:20:14 +02:00
flake.nix feat(tests): Add an integration test for SASL2 2023-04-02 17:20:14 +02:00
LICENSE Initial commit 2022-11-05 12:51:36 +01:00
melos_moxxmpp.iml feat: Add example 2022-11-08 17:54:19 +01:00
melos.yaml refactor: Move packages into packages/ 2022-11-08 20:05:22 +01:00
README.md fix(core): Fix components' stanza matching 2023-04-05 13:17:18 +02:00

moxxmpp

moxxmpp is a XMPP library written purely in Dart for usage in Moxxy.

Packages

moxxmpp

This package contains the actual XMPP code that is platform-independent.

Documentation is available here.

moxxmpp_socket_tcp

moxxmpp_socket_tcp contains the implementation of the BaseSocketWrapper class that implements the RFC6120 connection algorithm and XEP-0368 direct TLS connections, if a DNS implementation is given, and supports StartTLS.

Development

To begin, use melos to bootstrap the project: melos bootstrap. Then, the example can be run with flutter run on Linux or Android.

To run the example, make sure that Flutter is correctly set up and working. If you use the development shell provided by the NixOS Flake, ensure that ANDROID_HOME and ANDROID_AVD_HOME are pointing to the correct directories.

Examples

This repository contains 2 types of examples:

  • example_flutter: An example of using moxxmpp using Flutter
  • examples_dart: A collection of pure Dart examples for showing different aspects of moxxmpp

For more information, see the respective README files.

License

See ./LICENSE.

Support

If you like what I do and you want to support me, feel free to donate to me on Ko-Fi.