diff options
author | xengineering <me@xengineering.eu> | 2022-11-27 18:53:12 +0100 |
---|---|---|
committer | xengineering <me@xengineering.eu> | 2022-11-27 19:07:49 +0100 |
commit | 2efc9022bf064136bb7cd25bd59971f2b419ff48 (patch) | |
tree | 87ea72030a3bb28f1ddba1675482a9346c5df814 /README.md | |
parent | 8b9ce1d7848bd8ad417a3834d11e1b00c028f8eb (diff) | |
download | limox-2efc9022bf064136bb7cd25bd59971f2b419ff48.tar limox-2efc9022bf064136bb7cd25bd59971f2b419ff48.tar.zst limox-2efc9022bf064136bb7cd25bd59971f2b419ff48.zip |
Switch completely to SDL2 version
The now legacy version of LimoX with GTK4 and libstrophe is now not part
of the main branch anymore. There might be a legacy branch keeping this
version at the time of reading.
This cut of implemented functionality is motivated by these reasons:
- Implementing XMPP is fun, educative and gives full control.
- Low level graphics with SDL2 is portable, fast, educative an mature.
- I do not have to use GLib and a crazy event loop anymore (run and hide)
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 50 |
1 files changed, 8 insertions, 42 deletions
@@ -6,15 +6,8 @@ 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. - -Currently there is an ongoing rewrite in progress. There is the initial version -of LimoX and a rewrite (`limox_sdl2` in the build folder). The rewrite -substitutes GTK4 by SDL2 for graphics and maybe will also drop libstrophe as a -dependency. - -A nice reference which helps me a lot is [Beej's Guide to Network -Programming][4]. +with support for LimoX. A nice reference which helps me a lot is [Beej's Guide +to Network Programming][4]. ## Building and dependencies @@ -27,8 +20,6 @@ Install these build dependencies: Install these runtime dependencies: -- libstrophe -- gtk4 - sdl2 Just run these commands to build and run: @@ -37,7 +28,6 @@ Just run these commands to build and run: meson setup build ninja -C build ./build/limox -./build/limox_sdl2 # the SDL2 based rewrite ``` Run `rm -r build` to clean the build folder. You can get a help page by running @@ -46,37 +36,15 @@ Run `rm -r build` to clean the build folder. You can get a help page by running ## 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 -- [ ] switch from GTK4 to SDL2 - - [x] implement second executable with empty SDL2 window - - [ ] integrate libstrophe into SDL2 event loop (validate with presence) - - [ ] re-implement login page - - [ ] re-implement roster page - - [ ] re-implement chat page -- [ ] refactoring - - [x] fix reconnection bug - - [ ] check memory management - - [ ] handle roster updates - - [ ] remove states enum in net.c (doubles logic from libstrophe) - - [ ] consistent error handling (maybe including semantic error codes) - - [ ] logging / debug flags and output - - [ ] OS signal handling - - [ ] write docstrings - - [ ] check if code is splint-clean -- [ ] persistence with sqlite3 -- [ ] XEP-0077: In-Band Registration (just password change) -- [ ] XEP-0313: Message Archive Management +- [x] develop minimal viable product with GTK4 (branch `legacy/gtk4-libstrophe`) - [ ] implement XMPP core client ([compliance suite 2022][1]) - [ ] RFC 6120: XMPP Core - [ ] RFC 7590: TLS for XMPP - [ ] XEP-0030: Service Discovery - [ ] XEP-0115: Entity Capabilities +- [ ] implement XMPP mobile client ([compliance suite 2022][1]) + - [ ] XEP-0198: Stream Management + - [ ] XEP-0352: Client State Indication - [ ] implement XMPP IM client ([compliance suite 2022][1]) - [ ] RFC 6121: XMPP Instant Messaging - [ ] XEP-0245: The /me Command @@ -85,11 +53,9 @@ Run `rm -r build` to clean the build folder. You can get a help page by running - [ ] XEP-0045: Multi-User Chat - [ ] XEP-0249: Direct MUC Invitations - [ ] XEP-0363: HTTP File Upload -- [ ] implement XMPP mobile client ([compliance suite 2022][1]) - - [ ] XEP-0198: Stream Management - - [ ] XEP-0352: Client State Indication -- [ ] evaluate multi-platform support (up to Linux, Windows, Android, Mac, iOS) - [ ] implement further XEPs + - [ ] XEP-0077: In-Band Registration (just password change) + - [ ] XEP-0313: Message Archive Management - [ ] XEP-0286: Mobile Considerations on LTE Networks - [ ] XEP-0333: Chat Markers - [ ] XEP-0085: Chat State Notifications |