No description
  • C 97.2%
  • Roff 2.1%
  • Scheme 0.6%
  • CSS 0.1%
Find a file
2024-07-21 16:31:32 +02:00
src [MOD] Make vcard-avatars XEP-0421 tier 2024-07-21 16:31:32 +02:00
.gitignore [MOD] One-way Matrix->XMPP comms. 2024-06-17 18:26:37 +02:00
COPYING.AGPL [META] Actually start licensing 2024-06-23 01:22:10 +02:00
COPYING.CC0 [META] Actually start licensing 2024-06-23 01:22:10 +02:00
COPYING.TELO [META] Actually start licensing 2024-06-23 01:22:10 +02:00
LICENSE [META] Actually start licensing 2024-06-23 01:22:10 +02:00
Makefile [ADD/FIX/WIP] "Fix" concurrency, prepare XEP-0421 2024-07-18 15:50:19 +02:00
README.MD [MOD] Make vcard-avatars XEP-0421 tier 2024-07-21 16:31:32 +02:00
XEPS-TBD.TXT [MOD/FIX] Separate XMPP thread, fix EINVAL issue 2024-07-17 22:55:25 +02:00

Parsee - the jealous XMPP<=>Matrix bridge


Parsee is a Matrix<=>XMPP bridge written in C99, with Cytoplasm, similar to Bifrost, but it is NOT a drop-in replacment.

Why?

Naming

The name 'Parsee' is actually a reference to Parsee Mizuhashi, a "bridge princess".

Reasoning (personal to LDA)

I hate Bifrost. I also wanted to dip my toes in XMPP, XML, and bridges a bit. Also, as a sister project to KappaChat, this means that I can integrate Parsee with KappaChat however I wish it to be, which allows me to mess around with a codebase I'm already familiar with.

"Why not just use Matrix lol"

"Why not just use XMPP lol"

These two having the same answer should be enough information. Also can I just have fun?

Also dependency bad.

BUILDING

$ make # This generates a 'parsee' executable.
$ 

DEPENDENCIES

Parsee tries to avoid dependencies aside from Cytoplasm.

RUNNING

TODO

DOCS

TODO

TODOS

  • Mess with Cytoplasm to make it have support for something like LMDB as an optional dependency. This should increase reliability and speed for anyone.

    • Nesting might be an issue we'll need to deal with. libdb and Berkley DB seem to lack support for them. If we can shove entries at specific indices, we might just manage to get some system that can at least emulate that, and hopefully be reasonably faster than the filesystem, with some added reliability.
      • You can always concat paths, and search by prefix with LMDB. ~512 bytes a key is more than enough. I'll just need to write a good abstraction layer.
  • Get rid of the '?'-syntax and use another invalid Matrix char/valid XMPP char ('$'?) for escaped

  • PROPER FUCKING AVATARS XEP-0084 IS THE WORST PIECE OF SHIT KNOWN TO MAN. If any Jabberbros want to look at terrible code/XML and suggest things to have proper avatar support, I'm all in.

  • Consider making room/MUC admins/owners be able to plumb instead of it being restricted to Parsee admins, with permission from MUC owners, too

    • Limiting to admins may be a way to "control" consent for both, but this is only if Parsee admins are good-willed, which we must assume such statment to be false by default.
  • Look at XEPS-TBD.TXT for XEPs to be done

  • Manage MUC DMs in a reasonable manner. Thanks @freeoffers4u:matrix.org for being a fucking annoyance and DMing an old Parsee semi-anon user for no clear reason.

DONATING/CONTRIBUTING

If you know things about XMPP or Matrix, yet aren't familiar with C99, or just want to suggest a feature, you may open an issue.

Packaging Parsee (and Cytoplasm) for your specific platform might be a nice to have, to make Parsee easier to setup and manage.

(DON'T FOR NOW, THERE IS LITERALLY NOWHERE THIS GOES TO) You may also donate to the LiberaPay, alongside Telodendria's, as it is the project currently maintaining Cytoplasm.