A PLT scheme module for the XMPP or Jabber protocol
Find a file
2009-04-03 10:48:50 +02:00
gibberish.scrbl PLaneT compatability 2009-04-03 10:48:50 +02:00
info.ss PLaneT compatability 2009-04-03 10:48:50 +02:00
LICENCE seed 2009-04-02 17:49:11 +02:00
README.md PLaneT compatability 2009-04-03 10:48:50 +02:00
xmpp.ss PLaneT compatability 2009-04-03 10:48:50 +02:00

Gibberish

A basic module for IM using the Jabber/XMPP protocol with PLT Scheme.

Protocol Support

Should eventually implement XMPP-Core and XMPP-IM to conform with RFCs 3920 and 3921. Progress toward supporting the full protocol is currently documented in the file 'xmpp.scm'

Installation

(require (planet "xmpp.scm" (zzkt gibberish 1 0)))

Example Chat Client

(require xmpp)

(define (read-input prompt)
  (display prompt)
  (read-line (current-input-port)))

(define (chat)
  (let ((jid  (read-input "jid: "))
        (pass (read-input "password: "))
        (to   (read-input "chat with: ")))
    (with-xmpp-session jid pass 
                       (set-xmpp-handler 'message print-message)
                       (let loop ()                         
                         (let ((msg (read-line (current-input-port))))
                           (send (message to msg))
                           (loop))))))

possiby interesting extensions to implement.

see http://xmpp.org/extensions/

  • XEP-0047: In-Band Bytestreams
  • XEP-0066: Out of Band Data
  • XEP-0030: Service Discovery
  • XEP-0060: Publish-Subscribe
  • XEP-0045: Multi-User Chat
  • XEP-0149: Time Periods
  • XEP-0166: Jingle
  • XEP-0174: Serverless Messaging
  • XEP-0199: XMPP Ping
  • XEP-0224: Attention
  • XEP-0077: In-Band Registration