summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorxengineering <me@xengineering.eu>2022-11-27 18:53:12 +0100
committerxengineering <me@xengineering.eu>2022-11-27 19:07:49 +0100
commit2efc9022bf064136bb7cd25bd59971f2b419ff48 (patch)
tree87ea72030a3bb28f1ddba1675482a9346c5df814 /README.md
parent8b9ce1d7848bd8ad417a3834d11e1b00c028f8eb (diff)
downloadlimox-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.md50
1 files changed, 8 insertions, 42 deletions
diff --git a/README.md b/README.md
index a82b47d..ca58bbd 100644
--- a/README.md
+++ b/README.md
@@ -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