Monal Internals - XML Query Language

In this new series, I want to shine some light onto specific parts of Monal鈥檚 internals. It鈥檚 dedicated to programmers or people curious about how Monal works internally. If you want to give some feedback, feel free to send an email to thilo@monal-im.org Other articles in this series: Monal Internals - Handlers framework The MLXMLNode methods All incoming and outgoing XMPP stanzas are parsed to/from an instance of nested MLXMLNode elements. This class therefore provides some methods for creating such elements as well as querying them. In this chapter I want to briefly introduce some parts of the MLXMLNode interface before diving into our XML Query Language in the next chapter. ...

09.09.2024 路 12 min 路 Thilo Molitor RSS

New NLNet Funding

We are pleased to announce that we got selected in another funding round by the EU鈥檚 NGI via the NLnet Foundation NGI0 Entrust Fund to work on some important features in Monal. In short this consists of the following tasks (in no special order). Implement Dialpad: Add Dialpad to our Call-UI and backend code to be able to send DTMF tones in A/V calls. This will make Monal fully compatible with jmp.chat, like Snikket is already. Rewrite Chat UI: Our current chat UI is still UIKit-based and it鈥檚 hard to improve it or fix some UI glitches. We want to rewrite and modernize the whole chat UI using SwiftUI. This will not only simplify maintenance a lot and allow us to fix these UI glitches, but also enable us to implement modern XMPP features like message reactions, message styling, message replies or mentions. UI work: Implement Message Reactions, Rich Replies and Stickers: Implement UI and backend for message reactions (XEP-0444), rich replies (XEP-0461) and Stickers, once the chat UI is ported to SwiftUI XSF work: After having successfully worked on the SASL2 XEP-suite, I want to modernize XEP-0389: Extensible In-Band Registration to also send only password hashes instead of cleartext passwords (similar to password upgrades specced in XEP-0480: SASL Upgrade Tasks) Write documentation of Monal internals: After having started to publish a blog series and wiki articles about Monal鈥檚 internals (beginning with the Handlers Framework), I want to publish blog and wiki articles on our XML query-language (intentionally based on the XPath-like syntax of Prosody鈥檚 query language), the PubSub/PEP framework, Model-Classes used as data sources for our UI (MLContact, MLMessage etc.) and possibly more. Thanks again to NLNet for fund this! ...

22.07.2024 路 2 min 路 Monal RSS

New fundraising campaign

Our current development iPhone 8, which we bought in 2020, is getting on in years, is not able to run iOS 17 and the battery is broken. So it鈥檚 that time again: we are launching a new fundraising campaign for 350 EUR to finance a new development iPhone capable of running iOS 17 and several upcoming iOS versions. Currently we are aiming for an iPhone 13. You can view our donation options over here: Donate ...

18.06.2024 路 1 min 路 Thilo Molitor RSS

ROS Security Audit

Radically Open Security (ROS) kindly performed a security audit of some parts of Monal. Specifically they audited the usage of our XML query language and the implementations of SASL2, SCRAM and SSDP. The results in a nutshell: no security issues found, read the full report here: Monal IM penetration test report 2024 1.0 .

15.04.2024 路 1 min 路 Thilo Molitor RSS

iOS app banned from chinese appstore

Some may have predicted it, but now it happened: the chinese government banned Monal from the chinese appstore. Below is the complete email we got from Apple regarding this ban. We got that mail twice, once on Wed, 27 Mar 2024 15:46:18 +0100 and a second time on Thu, 28 Mar 2024 17:01:19 +0100. The macOS version of Monal is still available in the appstore and with homebrew, though. Here is the full mail, a translation of the CAC articles can be found over here for reference. ...

31.03.2024 路 2 min 路 Thilo Molitor RSS