xeme/xeme

8747bf715804
Add a XemeOutputStream property to XemeInputStream

This is necessary as the input handlers need to respond to the remote side as
well as send additional requests.

Testing Done:
Ran the unit tests under valgrind.

Reviewed at https://reviews.imfreedom.org/r/2953/
# Xeme
A high level XMPP parsing library based on GObjects.
## About
This project grew out of necessity for [Pidgin 3](https://pidgin.im). We needed
to modernize our XMPP support but we also have Bonjour support which uses the
XMPP standards for sending messages. This meant we needed something reuseable
between the two, and thus Xeme was born.
It's meant to be a standalone library so that others can use it as well. Its
goal is to handle all of the marshaling and unmarshaling for you and give you
high level XMPP stanza objects to work with.
## Name
The name Xeme comes from one of the alternate scientific names of
[Sabine's Gull](https://birdsoftheworld.org/bow/species#larida1:sabgul). As
this project is related to Pidgin, it is only fitting that it got a bird name.
But since it is an XMPP project as well, it need an X. To top everything off,
the name is very close to meme, which get shared via chat networks. This level
of criteria is fitting for an open source project, so we went with it!
## Building
Standard [meson](https://mesonbuild.com) project build:
```sh
meson setup build
meson compile -C build
meson install -C build
```
### Configuration
There are configuration options for a few things, but you'll probably only be
interested in `doc` and `introspection`. Please note that `doc` requires
`introspection`.
## Documentation
Documentation and API reference for the project can be found at
[docs.imfreedom.org/xeme](https://docs.imfreedom.org/xeme/).