bboozzoo / mconnect

mconnect - KDE Connect protocol implementation in Vala/C
GNU General Public License v2.0
274 stars 27 forks source link

Other vala client #27

Closed getzze closed 6 years ago

getzze commented 6 years ago

Hi, I have been working an another vala/GLib client for KDEConnect, I just wanted to mention it to you: https://github.com/getzze/gconnect It follows the class structure of the original Qt/C++ code, with ideas I have taken from mconnect (for cryptography especially). The differences:

Thank you for your great work and to the developpers of KDEConnect!

bboozzoo commented 6 years ago

Nice work! I see you already support way more plugins than mconnect does.

Nice idea with libpeas and Python plugins. I haven't followed the plugin approach myself as I found it to be a bit too cumbersome. Ideally you should be able to enable/disable 'interfaces' on per device basis, but I don't think loading/unloading code is a convenient way of achieving this.

Switching to meson should be straight forward. Vala support works out of the box, So far I found meson to be rather convenient in use and an improvement from autotools. Something that cannot be always said about cmake.

The crypto part can be done directly in Vala. You may need to update GnuTLS VAPI though. There's a /vapi/gnutls.vapi file in mconnect tree that carries some fixes to X509 namespace.

Good luck developing gconnect and keep up the good work!

getzze commented 6 years ago

I switched to meson, it's much faster! The plugins in python are not working very well actually, a lot of conversion problems between the two languages. I have rewritten all the plugins in vala (feel free to reuse) and I am maybe planning to remove the libpeas dependency to lighten the code. I'm familiar to python so I thought it would make it easier for me to port the plugins, but vala is nice also, you can do almost everything with it.

The GnuTLS vapi is a real mess, I didn't manage to make a pure vala class out of it, that's a nice one. If you don't mind I will post a bug in the vala bugtracker to modify it.