3.7 KiB
3.7 KiB
#+TITLE:XMPP Client Library
Aims
- XMPP Advanced Client and AV Calling compliance
- Must be possible to use to create clients on all platforms
- Do not restrict the kind of UI library users can make
- Make it easy to implement a new XML element
Strategies
-
native Common Lisp library
- From what I hear, it's a lot of work to write an XMPP client library, even if using TLS, XML, and DNS libraries.
- EQL5-Android client for Android, iOS, and desktop
-
McCLIM client for desktop, web (Broadway backend; demo), Emacs (CLIME; demo), and TUI (ncurses backend)
- Most of those backends are WIP, and I'm not aware of McCLIM having Windows or Wayland support…
- An isomorphic web framework like CLOG may also be an option.
-
[C] CFFI + libstrophe
- libstrophe calls itself "minimalist"…might be about as much work as #1 to write the required features
-
[Python] burgled-batteries/py4cl/cl-python + slixmpp/aioxmpp/nbxmpp
-
Will this work on Android and iOS?
- cl-python + EQL5-Android might. cl-python runs Python in Lisp. Might not be performant, but it might work.
-
-
[C++] Clasp/ECL + Swiften
- Will this work on Android and iOS?
-
[Java] ABCL + Smack
- Will this work on Android and iOS? ABCL does not yet have Dalvik/ART support…
-
[JavaScript] Parenscript + strophe.js/xmpp.js + ReactNative
- I haven't heard of anyone using Parenscript + ReactNative to make cross-platform applications…try making a "hello world" cross-platform application?
- Make separate desktop-only learning project using #3 or #5. Later, take up #1.
Resources
Names
Containing "cl"
- canticle - "A chant, hymn or song, especially a nonmetrical one, with words from a biblical text." - ties into "stanzas"
- clairvoyance
- clamor
- claptrap - "Empty verbiage or nonsense." - ties into "Jabber"
- conclave - "A private meeting; a close or secret assembly."
-
declaim - meaning #1 ties into Matrix, #2 and #3 into "Jabber"; also happens to be a Common Lisp identifier
- To object to something vociferously; to rail against in speech.
- To recite, e.g., poetry, in a theatrical way; to speak for rhetorical display; to speak pompously, noisily, or theatrically; bemouth; to make an empty speech; to rehearse trite arguments in debate; to rant.
- To speak rhetorically; to make a formal speech or oration; specifically, to recite a speech, poem, etc., in public as a rhetorical exercise; to practice public speaking.
- exclaim - ties into "Jabber"; also starts with "ex" (X), tying into "XMPP"
- proclaim
-
treacle
- Cloying sentimental speech.
[…]
- (obsolete) An antidote for poison; theriac.
- (obsolete, figuratively) Any all-powerful curative; a general remedy, a cure-all.
Others
- Neo/[The] One - "[whose] coming would hail the destruction of the Matrix"