64 lines
2.5 KiB
Markdown
64 lines
2.5 KiB
Markdown
# Delta Chat plugin for libpurple
|
|
|
|
## Overview
|
|
|
|
[Delta Chat](https://delta.chat) is an instant messaging application based on
|
|
email - which is to say, SMTP+IMAP.
|
|
|
|
Delta has:
|
|
|
|
* A mature [core library](https://github.com/deltachat/deltachat-core-rust)
|
|
* A mature [Android application](https://github.com/deltachat/deltachat-android)
|
|
* An experimental [iOS application](https://github.com/deltachat/deltachat-ios)
|
|
* An electron [desktop application](https://github.com/deltachat/deltachat-desktop)
|
|
|
|
This project is a [libpurple](https://developer.pidgin.im/wiki/WhatIsLibpurple)
|
|
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](https://source.puri.sm/Librem5/chatty), 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](https://github.com/sbwtw/libpurple-rust)
|
|
and the [pidgin-wechat plugin](https://github.com/sbwtw/pidgin-wechat), 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.
|