From 62ec4a47bf097c166b2866e8cb38a4fcd8ae41f7 Mon Sep 17 00:00:00 2001 From: defanor Date: Tue, 31 Mar 2020 02:33:17 +0300 Subject: Introduce a Texinfo manual --- Makefile.am | 1 + README | 45 ++++++++++++++++++++++----------------------- rexmpp.texi | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 78 insertions(+), 23 deletions(-) create mode 100644 rexmpp.texi 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 , 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 -- cgit v1.2.3