SàT développement/en
From Goffiwiki
SàT development page
Welcome to the developers section. This page is a starting point for technical informations about SàT.
Contents |
Foreword
Think about reading the user documentation for things like how to install SàT, and where to get it.
Overview
Bridge
SàT can communicate with its frontends thought « bridges ». A bridge is actually an Inter-process_communication, and so far SàT is using DBus, but others could be used. If you want to make a frontend, you can check the bridge API.
Plugins
SàT use a plugin architecture in the backend side. You can find information on them here.
E-Mail interactions
Here is a schema detailing SàT interaction with both email (MTA, MUA, ...) and XMPP systems (SMTP gateway, XMPP server,...).
Explanations
- "Salut à Toi" is a Jabber client composed by a front-end (user interface) and a back-end (1)
- As any Jabber client SàT use the XMPP protocol to communicate with a Jabber server (2) and to send/receive messages from other people (3).
- XMPP is an extensible protocol and XMPP servers may include gateway to talk with other networks (like the email system using the SMTP protocol).
Howto
Here is a list of howto for misc stuff
TODO
Here is a list of most important things to do, don't hesitate to write on the mailing list if you'd like to help on one of this tasks
- Test framework: It's extremly important to work on test suits which can be checked on every commit, to check regressions, standards conformity (RFC, XEP), global behavious. It would be good also to have build bot, which can check in a reproductible way if SàT works with various XMPP servers, various paltforms, etc.
- Database: So far, SàT is using RAM and a trivial way to save data. The project becoming bigger and bigger, and managing more and more data, it's now urgent to use a real database.
- File Copy Plugin improvment: File copy is uncomplete, it lack proxy management, in-band bytestream, copy resume, etc. It would be a good idea also to implement Psi's copy protocol
- XMPP Microblogging rework: microblogging is currently implemented using XEP-0277, but this XEP has lot of defaults. It is necessary to find a good way to do microblogging, maybe using Buddycloud's XEP draft.
- Changing syncrhonous methods to asynchronous: SàT is based on twisted and so it is asynchronous and thinked like that from the begining. But some methods (specially in the bridge API) need some work on this side.
- Documentation: a big documentation work is necessary. SàT architecture being a bit complex to understand at the first sight, it's important to have clear explanations to allow an easier understanding.