summaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README45
1 files changed, 32 insertions, 13 deletions
diff --git a/README b/README
index 6e6e27a..858b59c 100644
--- a/README
+++ b/README
@@ -1,7 +1,5 @@
rexmpp - a reusable XMPP IM client library
-This is currently at a draft/prototype stage.
-
The goal is to produce a library reusable from different languages
(via C FFI), without hijacking an event loop, requiring any specific
one, or otherwise restricting a user, and fairly feature-rich. The
@@ -14,9 +12,31 @@ rely on any particular UI, should be flexible and not stay in the way
of implementing additional XEPs on top of it, and should try to make
it easy to implement a decent client application using it.
-Current dependencies: libxml2, libgcrypt. Optionally gsasl, libunbound
-or c-ares, gnutls with gnutls-dane or openssl, icu-i18n, gpgme, curl,
-libnice (with glib), libsrtp2.
+Mandatory dependencies:
+
+- libxml2, libexpat, or rxml (Rust)
+- gcrypt, nettle, or openssl
+
+Optional dependencies:
+
+- gsasl
+- libunbound or c-ares
+- gnutls with gnutls-dane or openssl
+- icu-i18n
+- gpgme
+- curl
+
+For Jingle calls:
+
+- libnice (with glib)
+- gnutls or openssl
+- libsrtp2
+- portaudio
+- opus (optional)
+
+For use of the alternative Rust implementations, rustc and cargo
+should be available, and the following Rust libraries will be pulled:
+libc, errno, rxml.
A rough roadmap:
@@ -53,9 +73,10 @@ A rough roadmap:
[.] Texinfo manual.
[.] Proper JID handling (RFC 7622).
[+] Abstraction of the used XML, SASL, TLS, and DNS libraries, and
- optional usage of alternative ones. Though left libxml2 for now:
- could reuse existing libxml2 bindings that way.
+ optional usage of alternative ones.
[.] Automated testing.
+[.] Alternative module implementations in Rust (looks like there is a
+ memory leak somewhere around those though).
- IM features:
@@ -68,20 +89,18 @@ A rough roadmap:
[+] XEP-0092 v1.1: Software Version
[+] XEP-0172 v1.1: User Nickname
[+] XEP-0373 v0.6: OpenPGP for XMPP
-[+] XEP-0402 v1.1: PEP Native Bookmarks (autojoin conferences)
+[+] XEP-0402 v1.1: PEP Native Bookmarks
+[+] XEP-0410 v1.1: MUC Self-Ping
[+] XEP-0363 v1.0: HTTP File Upload (when built with curl)
[+] XEP-0166 v1.1: Jingle
[+] XEP-0234 v0.19: Jingle File Transfer (sending and accepting, but
no requests and no ranged transfers)
[+] XEP-0261 v1.0: Jingle In-Band Bytestreams Transport Method
-[+] XEP-0167 v1.2: Jingle RTP Sessions (relaying RTP packets over an
- encrypted channel to/from local UDP ports, for use with external
- players and streamers)
+[+] XEP-0167 v1.2: Jingle RTP Sessions (uses PortAudio and Opus)
[+] XEP-0176 v1.1: Jingle ICE-UDP Transport Method (uses libnice,
discovers TURN/STUN servers with XEP-0215: External Service
Discovery)
-[+] XEP-0320 v1.0: Use of DTLS-SRTP in Jingle Sessions (uses gnutls
- and libsrtp2)
+[+] XEP-0320 v1.0: Use of DTLS-SRTP in Jingle Sessions
[ ] XEP-0260: Jingle SOCKS5 Bytestreams Transport Method?
[ ] XEP-0391: Jingle Encrypted Transports?
[ ] XEP-0184: Message Delivery Receipts?