DeltaChat terminology

I’ve been talking to people who want to know technical details about the DeltaChat ecosystem, and getting terminologically muddled. Here are the concepts I am trying to distinguish (all of which have also been discussed on the forums), with names that may be wrong. Corrections and suggestions very welcome:

  1. Chatmail/core (formerly DeltaChat core): The backend code used by DeltaChat clients (in the sense that is inclusive of third-party clients like ArcaneChat and DeltaTouch). Developed and maintained by Merlinux.
  2. DeltaChat client:
    a. A first-party (Merlinux) client using the Chatmail/core code.
    b. DeltaChat client: A client using the Chatmail/core code.
  3. Chatmail client:
    a. A client using the Chatmail/core code.
    b. A client implementing the Chatmail standard for doing instant messaging over e-mail.
    c. A client that can send and receive Autocrypt e-mails by IMAP (meaning it can log into/register and use accounts on a Chatmail/relay instance). Has (SecureJoin?) key exchange.
  4. chatmail client: A mail client with a chatlike threaded interface.
  5. Chatmail/relay: A codebase for running Chatmail relays, developed and maintained by Merlinux. (server/README.md at main · chatmail/server · GitHub)
  6. Chatmail services: Chatmail/relay instances (used here).
  7. Chatmail server or Chatmail relay:
    a. A server/relay using the Chatmail/relay codebase. This definition excludes reimplementations in Mox etc..
    b. a server/relay that quickly relays only Autocrypt-encrypted e-mail using IMAP and SMTP (and usually has a low-maintenance config with fairly temporary storage and open registration).
  8. chatmail server/relay:
    a. A fast mailserver that does not lag unacceptably when used for chatting.
    b. A mailserver used for chatting
  9. Chatmail: A formal standard for doing instant messaging over e-mail. This is a client standard.
  10. Chat-over-Email: The same standard (alternate name used in the docs).

The server/relay and client names match, which produces an impression that they are a closed system. This is not the case (Chatmail/core can use any IMAP-capable mailserver and Chatmail/relay can interoperate with any standard mailclient that can handle Autocrypt). Using something other than “Chatmail” for the name of the relay or relay type might clarify.

Chatmail/relay implicitly defines a de-facto standard which Mox, for instance, is trying to reimplement. Having a name for this standard, perhaps with just an informal checklist for re-implementors, would be useful.

It is confusing for a standard to share a name with an implementation (if not uncommon).

In the past, “Delta” seems to have been used as a prefix for implementations by Merlinux (and the Merlinux-endorsed Deltatouch).

A glossary of ecosystem terms would be useful. https://cosmos.delta.chat/ is useful and related.

1 Like

You have permission to convert your post to a wiki so others can edit it.

Thank you, I did not know that! Done.

1 Like

Since it’s been a week, I’ll throw some ideas here. Crits, suggestions, and alt names are welcome.

For purposes of discussion, shall we dub the implied server standard “the Keymail standard” (its most distinctive characteristic is pre-exchange of keys, and “key” rhymes with “e”)? @s0ph0s is working to make Keymail Mox servers and Keymail relays in Go; Merlinux made theirs in Python.

The Chatmail client standard gets priority for the name “Chatmail”, avoiding renaming standards. So for the sake of clarity, I nickname the Chatmail/core software “the Deltacore”.*

So:

  • Chatmail clients implement the Chatmail standard.

  • Current Chatmail clients all use the Deltacore backend.

  • All Deltacore clients are Chatmail clients.

  • Deltachat clients are Deltacore clients made by Merlinux.

And:

  • A Keymail-compatible mail client is one that can interact with Keymail instances (has Autocrypt, IMAPS+SMTP, and some form of key exchange, likely SecureJoin).

  • All Chatmail clients are Keymail-compatible.

  • K9 (and other trad mailclients with Autocrypt) is also Keymail-compatible.

Finally:

  • A chat-over-e-mail client is any mailclient with a chatlike interface. All Chatmail clients are chat-over-e-mail clients.

I think some terms like this could cut down on the conversational confusion I generate.

*“the Deltacore” admittedly sounds like something out of Star Wars. Again, alternate suggestions welcome!