Files
purple-plugin-delta/README.md

71 lines
2.7 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
There are some licensing issues at present, so you shouldn't build this plugin.
`deltachat-core-rust` uses a vendored openssl 1, unconditionally links it, and
is MPL-licensed.
`purple-plugin-delta` is GPLv3 without the [OpenSSL exemption](https://people.gnome.org/~markmc/openssl-and-the-gpl.html)
`libpurple` itself is GPLv2 without the OpenSSL exemption.
There's no point to `purple-plugin-delta` adding the OpenSSL exemption because
`libpurple` lacks it, and in any event, it will be unnecessary with the next
major version of OpenSSL. So, time should resolve this for us one way or another.
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 `libdelta.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.