blob: d7751ed29b202a2663b4ed719852efdc89fe5aac (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
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
|