All Projects → wireapp → Coax

wireapp / Coax

Licence: gpl-3.0
A (barely working) native Wire client for Unix

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Coax

dotfiles
My awesomewm dotfiles for awesome people! ✨
Stars: ✭ 1,764 (+2190.91%)
Mutual labels:  gtk, unix
Simple
The Simple Intelligent and Modular Programming Language and Environment
Stars: ✭ 120 (+55.84%)
Mutual labels:  experimental, unix
Mog
A different take on the UNIX tool cat
Stars: ✭ 62 (-19.48%)
Mutual labels:  unix
Librepcb
A powerful, innovative and intuitive EDA tool for everyone!
Stars: ✭ 1,173 (+1423.38%)
Mutual labels:  unix
Gtfonow
Automatic privilege escalation for misconfigured capabilities, sudo and suid binaries
Stars: ✭ 68 (-11.69%)
Mutual labels:  unix
Jsonf
A Unix-y utility for formatting JSON in a more stream-friendly way
Stars: ✭ 65 (-15.58%)
Mutual labels:  unix
Bleachbit
BleachBit system cleaner for Windows and Linux
Stars: ✭ 1,151 (+1394.81%)
Mutual labels:  gtk
Unixagent
This is the OCS unified agent for Unix operating systems
Stars: ✭ 61 (-20.78%)
Mutual labels:  unix
Godot Scraps
Experimental projects for learning the Godot engine
Stars: ✭ 76 (-1.3%)
Mutual labels:  experimental
Fest
A GTK+ 3 Matrix client written in Rust [work in progress]
Stars: ✭ 67 (-12.99%)
Mutual labels:  gtk
Allegro5
The official Allegro 5 git repository. Pull requests welcome!
Stars: ✭ 1,165 (+1412.99%)
Mutual labels:  unix
Made With Love
🚀 An experimental project which demonstrates an Angular Package which contains Angular Elements and Schematics
Stars: ✭ 67 (-12.99%)
Mutual labels:  experimental
Nanvix
Educational Spinoff of Nanvix
Stars: ✭ 65 (-15.58%)
Mutual labels:  unix
Cross Platform Node Guide
📗 How to write cross-platform Node.js code
Stars: ✭ 1,161 (+1407.79%)
Mutual labels:  unix
Wsend
wsend: The opposite of wget
Stars: ✭ 64 (-16.88%)
Mutual labels:  unix
Glob
Glob for C++17
Stars: ✭ 74 (-3.9%)
Mutual labels:  unix
Pass For Macos
macOS wrapper for pass, the standard UNIX password manager
Stars: ✭ 62 (-19.48%)
Mutual labels:  unix
Pmenu
A pie-menu in xlib and imlib2.
Stars: ✭ 66 (-14.29%)
Mutual labels:  unix
Ideogram
Insert emoji anywhere in elementary OS, even in non-native apps
Stars: ✭ 68 (-11.69%)
Mutual labels:  gtk
Oh
A new Unix shell.
Stars: ✭ 1,206 (+1466.23%)
Mutual labels:  unix

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


Coax

A (barely working) native Wire GUI 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.

Build instructions

Building the whole client depends on recent versions of

  • Rust nightly + Cargo
  • libsodium
  • sqlite
  • Gtk+
  • OpenSSL

Here are the instructions for some OSes:

  • On macOS, do brew install glib cairo pango gdk-pixbuf gtk+3 atk gnome-icon-theme pkg-config

On startup a configuration file coax.toml is written to $HOME/.config/coax/.

Assuming that you have all non-Rust dependencies installed, you can build the client (nightly toolchain required):

$ rustup override set nightly-2018-04-10
$ cargo build

To run it, do cd coax-gtk and then either cargo run to just run the client, or make install to install it as a desktop application.

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.

  • [x] Receive messages
  • [x] Send messages
  • [ ] Everything else

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.

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].