Files
chatmail-core/deltachat-rpc-server/README.md

2.0 KiB

Delta Chat RPC server

This program provides a JSON-RPC 2.0 interface to DeltaChat over standard I/O or UNIX sockets.

Install

To download binary pre-builds check the releases page. Rename the downloaded binary to deltachat-rpc-server and add it to your PATH.

To install from source run:

cargo install --git https://github.com/chatmail/core/ deltachat-rpc-server

The deltachat-rpc-server executable will be installed into $HOME/.cargo/bin that should be available in your PATH.

Usage

To use just run deltachat-rpc-server command. The accounts folder will be created in the current working directory unless DC_ACCOUNTS_PATH is set:

export DC_ACCOUNTS_PATH=$HOME/delta/
deltachat-rpc-server

The common use case for this program is to create bindings to use Delta Chat core from programming languages other than Rust, for example:

  1. Python: https://pypi.org/project/deltachat-rpc-client/
  2. Go: https://github.com/deltachat/deltachat-rpc-client-go/

Run deltachat-rpc-server --version to check the version of the server. Run deltachat-rpc-server --openrpc to get OpenRPC specification of the provided JSON-RPC API.

Usage over unix sockets

At this time this does not work on windows because rust does not support unix sockets on windows, yet (https://github.com/rust-lang/rust/issues/150487).

Standard I/O is the default option, but you can also tell deltachat-rpc-server to use a unix socket instead.

RUST_LOG=info deltachat-rpc-server --unix ./chatmail-core.sock

While this technically allows multiple processes to communicate with the same rpc server instance, please note that there is still only event queue, so only one of these processed should read the events at a time.

You can test it with socat:

socat - UNIX-CONNECT:./chatmail-core.sock

Then paste the following jsonrpc command and press enter:

{"method": "get_system_info","id": 1,"params": []}