Skip to content

fjaeckel/cjabber

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is cjabber, a console based Jabber/XMPP Client.
I don't want ncurses and other bloaty stuff.
Maybe sometimes it becomes stable.
For now it relies on LGPLv2 code and has to be distributed under GPLv2.

standards I want to implement:
  Name       Description
  -----------------------------------------------------------------------------
  RFC 3920 - Jabber/XMPP Core
  RFC 3921 - Blocking Communication (Privacy Rules)
  XEP-0001 - XMPP Extensions Protocols
  XEP-0004 - Data Forms
  XEP-0012 - Last Activity
  XEP-0013 - Flexible Offline Message Retrieval
  XEP-0016 - Privacy Lists
  XEP-0022 - Message Events
  XEP-0023 - Message Expiration
  XEP-0025 - Jabber HTTP Polling
  XEP-0027 - Current Jabber OpenPGP Usage
  XEP-0030 - Service Discovery
  XEP-0045 - Multi-User Chat
  XEP-0047 - In Band Bytestreams (IBB)
  XEP-0050 - Ad-Hoc Commands
  XEP-0055 - Jabber Search
  XEP-0060 - Publish-Subscribe
  XEP-0073 - Basic IM Protocol Suite
  XEP-0077 - In-Band Registration
  XEP-0078 - Non-SASL Authentication
  XEP-0079 - Advanced Message Processing
  XEP-0082 - Jabber Date and Time Profiles
  XEP-0083 - Nested Roster Groups
  XEP-0085 - Chat State Notifications
  XEP-0090 - Entity Time
  XEP-0091 - Delayed Delivery
  XEP-0092 - Software Version
  XEP-0095 - Stream Initiation
  XEP-0100 - Gateway Interaction
  XEP-0114 - Jabber Component Protocol
  XEP-0126 - Invisibility
  XEP-0133 - Service Administration
  XEP-0154 - User Profile
  XEP-0175 - Best Practices for Use of SASL ANONYMOUS
  XEP-0178 - Best Practices for Use of SASL EXTERNAL with Certificates
  XEP-0182 - Application Specific Error Conditions
  XEP-0190 - Best Practice for Closing Idle Streams

TODO:
  - getting the contact list
  - setting presence states
  - building gpg support
    - gpgme?
  - building a configuration system based on files
  - implementing various jabber features
    - muc = multi user chat
    - service discovery
    - transports
    - ping via jabber
    - admin iface for ejabberd/jabberd?
    - ... to be continued ...
  - building a easy to handle TUI (text user interface)
    - everything should be a CLI with scrollback buffer
      - messages
      - text input
      - logs
      - contact list
  - implementing connections via port 5223
  - implementing auth without TLS and SASL (but you don't want to use it :-P)
  - HTTP/SOCKS Proxy support
  - testing with various jabber servers
  - structurizing code
  - cleaning code!!!111oneoneeleven
  - using more memory allocations

About

A jabber client written in C

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages