summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorxengineering <me@xengineering.eu>2022-10-06 20:34:32 +0200
committerxengineering <me@xengineering.eu>2022-10-06 20:34:32 +0200
commita9ac36fc0ca4281654cb982d1cf8832c5520b195 (patch)
tree41d3ad6af369c08eca5ca172a55449c87d6f57f7 /README.md
parent30f3c5844539085d7716ef4ca93f4a88cc8de7be (diff)
downloadlimox-a9ac36fc0ca4281654cb982d1cf8832c5520b195.tar
limox-a9ac36fc0ca4281654cb982d1cf8832c5520b195.tar.zst
limox-a9ac36fc0ca4281654cb982d1cf8832c5520b195.zip
Switch to markdown based README
Diffstat (limited to 'README.md')
-rw-r--r--README.md94
1 files changed, 94 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..d7751ed
--- /dev/null
+++ b/README.md
@@ -0,0 +1,94 @@
+
+
+# LimoX
+
+The Linux on mobile XMPP (LimoX) client. It should be fast, compliant and
+usable on mobile linux devices like smartphones or tablets.
+
+Also mind the [project page][2] and my [packaging repository][3] for Arch Linux
+with support for LimoX.
+
+
+## Building and dependencies
+
+Install these build dependencies:
+
+- meson
+- ninja
+- gcc
+
+Install these runtime dependencies:
+
+- libstrophe
+- gtk4
+
+Just run these commands to build and run:
+
+ meson build
+ ninja -C build
+ ./build/limox
+
+Run `rm -r build` to clean the build folder. You can get a help page by running
+`./build/limox -h`.
+
+
+## Roadmap
+
+- [x] build a GTK 4 GUI
+- [x] finish minimal viable product (MVP) to send and receive text messages
+ - [x] static GUI widgets
+ - [x] dynamic GUI widgets (like text messages)
+ - [x] roster request
+ - [x] receiving one-to-one text messages
+ - [x] sending one-to-one text messages
+- [ ] refactoring
+ - [ ] proper memory management
+ - [ ] fix random crashes (if still existing)
+ - [ ] handle roster updates (includes reconnect bug)
+ - [ ] implement 'disconnecting' state
+ - [ ] audit functions combined with every possible state
+ - [ ] consistent error handling (including semantic error codes)
+ - [ ] logging / debug flags and output
+ - [ ] signal handling
+ - [ ] improve event loop performance (if still an issue)
+ - [ ] write docstrings
+ - [ ] check if code is splint-clean
+- [ ] persistence with sqlite3
+- [ ] XMPP core [compliance suite 2022][1] / client
+ - [ ] RFC 6120: XMPP Core
+ - [ ] RFC 7590: TLS for XMPP
+ - [ ] XEP-0030: Service Discovery
+ - [ ] XEP-0115: Entity Capabilities
+- [ ] XMPP IM [compliance suite 2022][1] / client
+ - [ ] RFC 6121: XMPP Instant Messaging
+ - [ ] XEP-0245: The /me Command
+ - [ ] XEP-0054: vcard-temp
+ - [ ] XEP-0280: Message Carbons
+ - [ ] XEP-0045: Multi-User Chat
+ - [ ] XEP-0249: Direct MUC Invitations
+ - [ ] XEP-0363: HTTP File Upload
+- [ ] XMPP mobile [compliance suite 2022][1] / client
+ - [ ] XEP-0198: Stream Management
+ - [ ] XEP-0352: Client State Indication
+- [ ] XEP-0077: In-Band Registration (just password change)
+- [ ] XEP-0313: Message Archive Management
+- [ ] Evaluate multi-platform support (up to Linux, Windows, Android, Mac, iOS)
+ - implement gui.h with cross-platform SDL2?
+ - implement gui.h with native widget toolkits?
+- [ ] implement further XEPs
+ - [ ] XEP-0286: Mobile Considerations on LTE Networks
+ - [ ] XEP-0333: Chat Markers
+ - [ ] XEP-0085: Chat State Notifications
+ - [ ] XEP-0191: Blocking Command
+ - [ ] XEP-0308: Last Message Correction
+ - [ ] XEP-0393: Message Styling
+ - [ ] XEP-0444: Message Reactions
+ - [ ] XEP-0392: Consistent Color Generation
+ - [ ] XEP-0184: Message Delivery Receipts
+ - [ ] XEP-0380: Explicit Message Encryption
+ - [ ] XEP-0384: OMEMO Encryption
+
+
+[1]: https://xmpp.org/extensions/xep-0459.html
+[2]: https://xengineering.eu/git/limox
+[3]: https://xengineering.eu/git/pkgbuilds