You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
dequbed e1871fbe55 Print all events 2 months ago
.idea Initial commit 3 months ago
cmake Better `doc` target, generating Rust docs as well 2 months ago
src Print all events 2 months ago
vendor Update xmpp-rs submodule 2 months ago
.gitignore Initial commit 3 months ago
.gitmodules Second commit 2 months ago
CMakeLists.txt Better `doc` target, generating Rust docs as well 2 months ago
Cargo.toml Second commit 2 months ago
Doxyfile.in Third commit. Still not really working on code 2 months ago
LICENSE Second commit 2 months ago
README.md Third commit. Still not really working on code 2 months ago
build.rs Second commit 2 months ago

README.md

Moko, (yet another) XMPP Client

Introduction

I needed an XMPP client I could quickly hack on to be able to test out extensions for ejabberd I was writing, so I made this ¯\_(ツ)_/¯

Since the requirement "quickly hack on" means that the GUI needs to use Qt/C++ and the XMPP side of the client needs to use Rust with the xmpp-rs crate, this client does use both Languages with cxx.rs providing a FFI shim.

Building

Moko uses CMake as meta build system, see the CMakeLists.txt file. It adds two main targets you will need for development work: moko building the Rust crate and Moko compiling the C++ and linking in the static libmoko.a the moko target creates.

If you just want to compile Moko to run it, do the usual spiel of:

$ mkdir build && cd build/
$ cmake .. -DCMAKE_BUILD_TYPE=Release && make

Contributing

Due to how CMake works you need to add all Rust and all C++ source files you write to the CMakeLists.txt file. Yes coming from Rust that is annoying. But if you don't CMake doesn't know the crate needs to be rebuilt and won't. If you have a smart idea how to fix that, please do!

License

Moko and all it's source files are licensed under the Mozilla Public License v2 (MPLv2), unless otherwise noted inside the file in question.