Skip to main content

Python bindings for the Delta Chat Core library using CFFI against the Rust-implemented libdeltachat

Project description

This package provides bindings to the deltachat-core Rust -library which implements IMAP/SMTP/MIME/PGP e-mail standards and offers a low-level Chat/Contact/Message API to user interfaces and bots.

Installing bindings from source (Updated: 20-Jan-2020)

Install Rust and Cargo first. Deltachat needs a specific nightly version, the easiest is probably to first install Rust stable from rustup and then use this to install the correct nightly version.

Bootstrap Rust and Cargo by using rustup:

curl https://sh.rustup.rs -sSf | sh

Then GIT clone the deltachat-core-rust repo and get the actual rust- and cargo-toolchain needed by deltachat:

git clone https://github.com/deltachat/deltachat-core-rust
cd deltachat-core-rust
rustup show

To install the Delta Chat Python bindings make sure you have Python3 installed. E.g. on Debian-based systems apt install python3 python3-pip python3-venv should give you a usable python installation.

Ensure you are in the deltachat-core-rust/python directory, create the virtual environment and activate it in your shell:

cd python
python3 -m venv venv  # or: virtualenv venv
source venv/bin/activate

You should now be able to build the python bindings using the supplied script:

./install_python_bindings.py

The installation might take a while, depending on your machine. The bindings will be installed in release mode but with debug symbols. The release mode is currently necessary because some tests generate RSA keys which is prohibitively slow in non-release mode.

After successful binding installation you can install a few more Python packages before running the tests:

python -m pip install pytest pytest-timeout pytest-rerunfailures requests
pytest -v tests

running “live” tests (experimental)

If you want to run “liveconfig” functional tests you can set DCC_PY_LIVECONFIG to:

  • a particular https-url that you can ask for from the delta chat devs.

  • or the path of a file that contains two lines, each describing via “addr=… mail_pw=…” a test account login that will be used for the live tests.

With DCC_PY_LIVECONFIG set pytest invocations will use real e-mail accounts and run through all functional “liveconfig” tests.

Installing pre-built packages (Linux-only)

If you have a Linux system you may try to install the deltachat binary “wheel” packages without any “build-from-source” steps.

We suggest to Install virtualenv, then create a fresh Python virtual environment and activate it in your shell:

virtualenv venv  # or: python -m venv
source venv/bin/activate

Afterwards, invoking python or pip install only modifies files in your venv directory and leaves your system installation alone.

For Linux, we automatically build wheels for all github PR branches and push them to a python package index. To install the latest github master branch:

pip install --pre -i https://m.devpi.net/dc/master deltachat

To verify it worked:

python -c "import deltachat"

Code examples

You may look at examples.

Building manylinux1 based wheels

Building portable manylinux1 wheels which come with libdeltachat.so can be done with docker-tooling.

using docker pull / premade images

We publish a build environment under the deltachat/coredeps tag so that you can pull it from the hub.docker.com site’s “deltachat” organization:

$ docker pull deltachat/coredeps

This docker image can be used to run tests and build Python wheels for all interpreters:

$ docker run -e DCC_PY_LIVECONFIG \
   --rm -it -v \$(pwd):/mnt -w /mnt \
   deltachat/coredeps ci_scripts/run_all.sh

Optionally build your own docker image

If you want to build your own custom docker image you can do this:

$ cd deltachat-core # cd to deltachat-core checkout directory
$ docker build -t deltachat/coredeps ci_scripts/docker_coredeps

This will use the ci_scripts/docker_coredeps/Dockerfile to build up docker image called deltachat/coredeps. You can afterwards find it with:

$ docker images

Troubleshooting

On more recent systems running the docker image may crash. You can fix this by adding vsyscall=emulate to the Linux kernel boot arguments commandline. E.g. on Debian you’d add this to GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

deltachat-0.700.0.zip (77.9 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

deltachat-0.700.0-cp38-cp38-manylinux1_x86_64.whl (7.8 MB view details)

Uploaded CPython 3.8

deltachat-0.700.0-cp37-cp37m-manylinux1_x86_64.whl (7.8 MB view details)

Uploaded CPython 3.7m

deltachat-0.700.0-cp36-cp36m-manylinux1_x86_64.whl (7.8 MB view details)

Uploaded CPython 3.6m

deltachat-0.700.0-cp35-cp35m-manylinux1_x86_64.whl (7.8 MB view details)

Uploaded CPython 3.5m

File details

Details for the file deltachat-0.700.0.zip.

File metadata

  • Download URL: deltachat-0.700.0.zip
  • Upload date:
  • Size: 77.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: devpi-server/5.3.2.dev0 (py3.7.3; linux)

File hashes

Hashes for deltachat-0.700.0.zip
Algorithm Hash digest
SHA256 9057cc92db15d0152ac53c782695cd1515893b88f2efc6a95e9e071004907968
MD5 b466ce3b0b6237d6d9727ed349d58d73
BLAKE2b-256 c3850ad1469159eb045575221cdd0606c3ee7355e66f2d3b0afe9c0164f54393

See more details on using hashes here.

File details

Details for the file deltachat-0.700.0-cp38-cp38-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for deltachat-0.700.0-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 7fea2d611377e785dd6a25d64bebaa12be763a3057207dc46b95961a873edff0
MD5 65ee7376bbda6e1ad2c73cc7bef24b76
BLAKE2b-256 29af1ba9e4088323cec7cdc20d907ba0f4dd68d861c14df7bed7d5ccce4efd01

See more details on using hashes here.

File details

Details for the file deltachat-0.700.0-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for deltachat-0.700.0-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 82529145fea9b65b17839afde778eaf309609238a59825263d59ccabd00edc09
MD5 e405ecba80d8548c59c62595fc8abf1d
BLAKE2b-256 11be50ca875b491a8833426959d6dce2c19530a103b88cc926156d2e49dcec21

See more details on using hashes here.

File details

Details for the file deltachat-0.700.0-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for deltachat-0.700.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 cc6bacba1680b9e88decec8c0b481456f91b5c40cb5ceb895d2d3eb17f750094
MD5 f26f1dcc14f0eb35e0e8af2ad65c07e7
BLAKE2b-256 538a8718249d7eee0573fd717c51809d5d893c3677006bf7b647a5b273f51d76

See more details on using hashes here.

File details

Details for the file deltachat-0.700.0-cp35-cp35m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for deltachat-0.700.0-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 ee297934022882e1305bd02846be8c3ec604caeefee91488bf47c3868b5fc6ce
MD5 807ffe70ccfceed25360ef7c9817409c
BLAKE2b-256 ed073d194da590ab0a22de73528f42098f5db1e12ced1a44f7c49dc75b4388c6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page