summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordefanor <defanor@uberspace.net>2020-03-31 02:33:17 +0300
committerdefanor <defanor@uberspace.net>2020-03-31 02:33:17 +0300
commit62ec4a47bf097c166b2866e8cb38a4fcd8ae41f7 (patch)
treec777d9e60600cdbb5d42bdd6b7dfc208b287d692
parent93624e68bca2b8efabfa4a320908ab42ad481956 (diff)
Introduce a Texinfo manual
-rw-r--r--Makefile.am1
-rw-r--r--README45
-rw-r--r--rexmpp.texi55
3 files changed, 78 insertions, 23 deletions
diff --git a/Makefile.am b/Makefile.am
index f6d103a..adbeb78 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -2,3 +2,4 @@ ACLOCAL_AMFLAGS = -I m4
SUBDIRS = src
EXTRA_DIST = examples/basic.c
+info_TEXINFOS = rexmpp.texi
diff --git a/README b/README
index 463489a..fe3c6e9 100644
--- a/README
+++ b/README
@@ -43,41 +43,40 @@ A rough roadmap:
- Library refinement:
-[.] Documentation. Partial Doxygen documentation is added, but
- planning a texinfo manual as well.
+[.] Doxygen documentation.
+[.] Texinfo manual.
[ ] Proper JID handling (RFC 7622).
[ ] Abstraction of the used XML, SASL, TLS, and DNS libraries, and
optional usage of alternative ones. Though maybe shouldn't
abstract out XML functions and structures: could reuse existing
libxml2 bindings that way.
[ ] Automated testing.
-[ ] Separate states for server-to-client and client-to-server streams?
-- Primary IM features:
+- IM features:
-[.] XMPP IM (RFC 6121): roster management is implemented, but not keeping
- track of contact presences yet.
-
-
-- Common and mostly reliable IM features:
-
-[.] XEP-0030: Service Discovery: implemented, but without tracking of
- features provided by known entities yet.
-[.] XEP-0115: Entity Capabilities: including them into <presence>, but
- not managing a capabilities database yet.
-[ ] XEP-0045: Multi-User Chat
+[+] XMPP IM (RFC 6121): roster management (loading and pushes, with
+ versioning and caching)
+[+] XEP-0030: Service Discovery (replying to queries)
+[+] XEP-0115: Entity Capabilities (including into initial presence)
[ ] XEP-0166: Jingle
[ ] XEP-0234: Jingle File Transfer
[ ] XEP-0261: Jingle In-Band Bytestreams Transport Method
+[ ] XEP-0363: HTTP File Upload
+[ ] XEP-0260: Jingle SOCKS5 Bytestreams Transport Method
+[ ] XEP-0391: Jingle Encrypted Transports
+[ ] XEP-0184: Message Delivery Receipts?
+[ ] OpenPGP/OTR/OMEMO/MLT encryption?
-- Other features (?):
+- Additional state tracking:
-[ ] XEP-0313: Message Archive Management
-[ ] XEP-0163: Personal Eventing Protocol
-[ ] XEP-0260: Jingle SOCKS5 Bytestreams Transport Method
-[ ] XEP-0391: Jingle Encrypted Transports
-[ ] XEP-0363: HTTP File Upload
-[ ] XEP-0384: OMEMO Encryption
-[ ] XEP-0184: Message Delivery Receipts
+[ ] XMPP IM (RFC 6121): track presences of contacts.
+[ ] XEP-0030: Service Discovery: track features provided by known
+ entities.
+[ ] XEP-0115: Entity Capabilities: maintain a capability database,
+ track capabilities of known entities.
+[ ] XEP-0045: Multi-User Chat: tracking of related states/presences.
+
+
+- Various utility functions?
diff --git a/rexmpp.texi b/rexmpp.texi
new file mode 100644
index 0000000..5a23721
--- /dev/null
+++ b/rexmpp.texi
@@ -0,0 +1,55 @@
+\input texinfo @c -*-texinfo-*-
+@setfilename rexmpp.info
+@settitle rexmpp
+
+@direntry
+* rexmpp: (rexmpp). A reusable XMPP library.
+@end direntry
+
+@include version.texi
+
+@copying
+@quotation
+@verbatiminclude COPYING
+@end quotation
+@end copying
+
+@contents
+
+@node Top
+@top rexmpp
+@menu
+* Copying Conditions:: License information.
+* Introduction:: The basics.
+@end menu
+
+@node Copying Conditions
+@chapter Copying Conditions
+@insertcopying
+
+@node Introduction
+@chapter Introduciton
+
+The library is intended to be reusable: that is, usable on different
+systems, from different languages, and together with different other
+libraries (including UI toolkits), so it is in C, asynchronous, and has
+a relatively simple API. The usage boils down to setting a few callbacks
+and other configuration, regularly asking the library which file
+descriptors it is interested in and when to run it again, running it
+when the time comes or the file descriptors are available for reading or
+writing, and asking it to send messages when needed.
+
+In addition to establishing and maintaining a connection, by default the
+library handles some requests (e.g., roster push, service discovery),
+sends presence stanzas (with item capabilities), etc. These features can
+be implemented in a user-facing application instead, and then disabled
+in the library, but the aim is to make it fairly complete even if a
+program doesn't implement them.
+
+A library user is expected to both handle and compose XML as specified
+in relevant standards: the intent is to keep the library flexible and
+simple, only handling (or assisting with) more complex and routine parts
+of the protocol.
+
+
+@bye