wireapp/coax

Name: coax

Owner: Wire Swiss GmbH

Description: A (barely working) native Wire client for Unix

Created: 2017-02-16 10:41:36.0

Updated: 2018-05-01 14:12:03.0

Pushed: 2018-01-10 23:15:12.0

Homepage: null

Size: 507

Language: Rust

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README


:warning: THIS PROJECT IS NOT OFFICIALLY SUPPORTED! ALL CODE IN HERE IS IN DEVELOPMENT AND LIKELY TO CHANGE WITHOUT WARNING. USE AT YOUR OWN RISK. :warning:


Coax

A (barely working) native Wire client for Unix

In here you find the source code of Coax, a native client for Wire. The repository consists of a single Cargo workspace which contains several libraries which may or may not be useful individually. Together they form a client with a GTK+ UI for Unix-like operating systems.

Motivation

This client is meant to be hackable with a small and (hopefully) easy to understand code base written in a compiled language (Rust). It may be useful for testing purposes. It can not replace any of the existing Wire clients. Its feature set is currently severely limited and basically just allows for sending and receiving text messages.

Features

Not much is supported right now. In particular this client is currently NOT SECURE. There is no TLS cerificate pinning, nor is it possible to compare identity keys.

Outline

This workspace consists of the following libaries:

coax-net: Basic networking support (e.g. TLS connections) plus a tiny subset of HTTP/1.1.

coax-ws: Implements a subset of RFC 6455 (websocket protocol).

coax-data: Storage support based on SQLite.

coax-api: Wire API types with JSON serialisation.

coax-api-proto: Protocol buffers API corresponding to Wire's generic-message-proto.

coax-client: Client for Wire's HTTP API.

coax-actor: Higher level client which also utilises local storage and asynchronous notifications over websockets.

coax-gtk: A simplistic GUI to test the whole stack interactively.

Build instructions

Building the whole client depends on recent versions of

Individual libraries may have less dependencies. To start the build cd into coax-gtk and type make install. The resulting executable is installed into $HOME/.cargo/bin. On startup a configuration file coax.toml is written to $HOME/.config/coax/.

License

All code in here is subject to the terms and conditions of the GNU General Public License version 3.

Contributing

Contributions to any part of this project are very much welcome. However it is necessary to sign a contributor agreement first. The actual agreement can be found here:

https://github.com/wireapp/wire/raw/master/assets/Wire%20Contributor%20Agreement.pdf

When you submit your first pull request CLAssistant will present you a link to a submission form. Once the agreement has been submitted your contribution and any possible future ones will be gladly considered for inclusion into this project.


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.