Delta Chat plugin for libpurple

Overview

Delta Chat is an instant messaging application based on email - which is to say, SMTP+IMAP.

Delta has:

This project is a libpurple plugin that wraps deltachat-core-rust, allowing a number of existing desktop and mobile clients to send and receive IMs over SMTP+IMAP. It may be useful for Linux-based mobile devices, for GUI desktop usage without an Electron dependency, or desktop usage.

Current status

Starting again from scratch in Rust. So currently, nothing works. TODO list:

  • [~] Connect to email account
  • Full settings support
  • Show buddy list
  • Send/receive text messages to single contact
  • Send/receive text messages to group chat
  • IMEX setup
  • Send/receive image messages
  • Send/receive audio messages
  • Send/receive video messages
  • Send/receive arbitrary attachments

Build

To get a target/debug/libpurple_delta.so, just run cargo build.

Since purple-plugin-delta is made to link against libpurple, which is GPLv2 without the "OpenSSL exemption", distributing something that linked against OpenSSL 1 would be a licensing violation. Instead, we configure the build system so we statically link against a vendored OpenSSL 3 instead. This has only been possible since 2021-09-07.

Significant code using the WTFPL includes the libpurple-rust bindings and the pidgin-wechat plugin, which I'm taking a lot of inspiration from. WTF I like happens to include building it against this mess.

Use

The easiest way to use this is to copy the libpurple_delta.so file into ~/.purple/plugins. When running pidgin, you'll now have the option to add a "Delta Chat" account.

At present, the "Username" and "Password" account fields correspond to email address and password, respectively. Many important settings also show up on the "Advanced" tab - if left blank, the plugin will attempt to automatically detect the correct values, but you may need to fill some of them in manually to get the connection to work.

Run pidgin with --debug to see interesting output.

Description
A libpurple plugin for https://delta.chat
Readme 26 MiB
Languages
C 98.1%
Makefile 1.9%