• Stars
    star
    2,366
  • Rank 19,444 (Top 0.4 %)
  • Language
  • License
    GNU General Publi...
  • Created over 8 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

〰️ Overview of the open source code for Wire

Wire™

Wire logo

Open source

The privacy page and the privacy and security whitepapers explain the details of the encryption algorithms and protocols used.

For licensing information, see the attached LICENSE file and the list of third-party licenses at wire.com.

If you compile the open source software that we make available from time to time to develop your own mobile, desktop or web application, and cause that application to connect to our servers for any purposes, we refer to that resulting application as an “Open Source App”. All Open Source Apps are subject to, and may only be used and/or commercialized in accordance with, the Terms of Use applicable to the Wire Application, which can be found at https://wire.com/legal/#terms. Additionally, if you choose to build an Open Source App, certain restrictions apply, as follows:

a. You agree not to change the way the Open Source App connects and interacts with our servers; b. You agree not to weaken any of the security features of the Open Source App; c. You agree not to use our servers to store data for purposes other than the intended and original functionality of the Open Source App; d. You acknowledge that you are solely responsible for any and all updates to your Open Source App.

For clarity, if you compile the open source software that we make available from time to time to develop your own mobile, desktop or web application, and do not cause that application to connect to our servers for any purposes, then that application will not be deemed an Open Source App and the foregoing will not apply to that application.

No license is granted to the Wire trademark and its associated logos, all of which will continue to be owned exclusively by Wire Swiss GmbH. Any use of the Wire trademark and/or its associated logos is expressly prohibited without the express prior written consent of Wire Swiss GmbH.

Build your own Wire client

iOS

See wire-ios

Android

See wire-android (legacy version) and wire-android-reloaded (modern version)

Desktop

See wire-desktop

Wire for Web

See wire-webapp

Components

AVS

The audio, video, and signaling (AVS) library of Wire is developed in ANSI C/C++. The code is cross compiled for Android and iOS. Wrappers for interaction with upstream modules are written in Java for Android and Objective-C for iOS.

Repositories

  • avs: Audio-video library for calling (mostly C), then cross compiled for iOS and Android

Proteus/Cryptobox

The Axolotl protocol implementation and other cryptographic and utility libraries are developed in Rust, then cross-compiled for iOS and Android. The web version has its own port of these libraries in JavaScript.

Repositories

  • proteus: Axolotl Protocol Implementation in Rust, then cross compiled for iOS and Android
  • cryptobox: High-level API with persistent storage for proteus
  • cryptobox-haskell: Haskell bindings to cryptobox
  • cryptobox-c: C-FFI to cryptobox
  • hkdf: HKDF implementation (RFC 5869) in Rust, then cross compiled to iOS and Android

Server

The Wire server components can be found in the wire-server repository.

Common definitions

Protocol buffer definitions are used by all clients to communicate with each other and with the backend.

Repositories

  • generic-message-proto: Protocol buffer definitions that are part of the cross-platform client communication protocol
  • backend-api-protobuf: Protocol buffer definitions that are part of the backend communication protocol

Contributions

You can contribute to Wire in several ways:

Finding bugs

If you find a bug in how Wire apps work, please submit a ticket to our support and we will keep you informed about the progress.

Contributing to the code

If you wish to contribute source code to one of our repositories you have to sign our Contributor Agreement first.

We accept only bug fixes and code improvements. We cannot accept new features, UI or UX changes – these are decided on and built by the Wire development team.

When you submit your first pull request, you can sign the agreement electronically by filling in the required information. You will not have to sign it again for subsequent pull requests from the same GitHub account.

Translating the apps

You can help with the crowdsourced translations of Wire apps on Crowdin.

More Repositories

1

wire-server

🇪🇺 Wire back-end services
Haskell
2,599
star
2

wire-webapp

👽 Wire for web
TypeScript
1,103
star
3

wire-desktop

💻 Wire for desktop
TypeScript
1,053
star
4

proteus

Axolotl Protocol Implementation
Rust
412
star
5

wire-ios-sync-engine

iOS synchronization library for Wire
Swift
149
star
6

wire-avs

Audio Video Signaling (AVS)
C
133
star
7

wire-server-deploy

Code to install/deploy wire-server (on kubernetes)
Shell
94
star
8

wire-android

🤖 The new Wire client for Android
Kotlin
94
star
9

lithium

Wire Services JDK
Java
79
star
10

coax

A (barely working) native Wire client for Unix
Rust
75
star
11

wire-ios

📱 Wire for iOS (iPhone and iPad)
Swift
65
star
12

wire-web-packages

Collection of npm modules created by Wire's web team.
TypeScript
59
star
13

wire-android-sync-engine

Sync library for Android.
Scala
58
star
14

bot-sdk-node

🤖
JavaScript
58
star
15

pqproteus

PQProteus
Rust
57
star
16

echo-bot

Echo bot
Java
56
star
17

cryptobox

High-level API with persistent storage for proteus
Rust
52
star
18

melissa

Messaging Layer Security (MLS) implementation in Rust
Rust
52
star
19

wire-ios-link-preview

🏷 Open Graph data parser used to generate link previews
Swift
48
star
20

kalium

🍌 An SDK for creating Wire clients on Android and JVM. Expanding to iOS and Web.
Kotlin
44
star
21

carthage-gradle-plugin

Gradle plugin for Carthage
Kotlin
36
star
22

libsodium-neon

Node.js bindings to rust_sodium.
Rust
36
star
23

proteus.js

Axolotl protocol implementation for JavaScript
JavaScript
36
star
24

generic-message-proto

Protocol definition for generic messages.
Scala
35
star
25

hkdf

HKDF implementation (RFC 5869)
Rust
29
star
26

cryptobox-c

C-FFI to cryptobox
C
29
star
27

wire-ios-data-model

Core Data model and entity classes
Swift
28
star
28

cryptobox-haskell

Cryptobox Haskell FFI
Haskell
27
star
29

wire-signals

A small and effective event-handling library for Scala
Scala
23
star
30

wire-ios-cryptobox

Swift
22
star
31

wire-ios-transport

Objective-C
22
star
32

wire-ios-ziphy

https://wire.com
Swift
22
star
33

wire-ios-share-engine

Share extension framework for iOS
Swift
22
star
34

core-crypto

MLS/Proteus multiplexer abstraction with encrypted persistent storage in Rust
Rust
20
star
35

node-addressbook

Node.js module providing access to the macOS address book
C++
18
star
36

cryptobox-jni

JNI bindings for cryptobox with support for cross-compilation to Android.
Java
17
star
37

cryptobox.js

JavaScript
17
star
38

wire-ios-images

🗻 Framework to perform rotation and scaling of images
Objective-C
16
star
39

wire-ios-system

Swift
15
star
40

github-action-wire-messenger

JavaScript
15
star
41

wire-ios-utilities

Swift
14
star
42

saml2-web-sso

Library and example web app for the SAML Web-based SSO profile.
Haskell
14
star
43

wire-ios-mocktransport

Objective-C
13
star
44

wire-ios-canvas

Canvas is a component for painting and composing pictures
Swift
13
star
45

wire-ios-protos

📜 obj-c autogenerated classes from https://github.com/wireapp/generic-message-proto protocol buffer definitions
Swift
13
star
46

wire-emails

Templates for sending emails for Wire
HTML
12
star
47

wire-ios-testing

Objective-C
12
star
48

wire-ios-request-strategy

iOS synchronization base interfaces for Wire
Swift
12
star
49

ansible-cassandra

Ansible role to install an Apache Cassandra cluster
Shell
12
star
50

wire-ios-message-strategy

iOS synchronization of messages for Wire
Swift
11
star
51

backend-api-protobuf

Scala
11
star
52

antiscroll-2

macOS Lion-styled scrollbars for DOM elements.
HTML
11
star
53

anna-bot

Rosie chatbot for Wire
Java
11
star
54

wire-account

Account verifications and forgotten passwords (https://wire-account-staging.zinfra.io/forgot/).
TypeScript
10
star
55

libsodium.js

libsodium compiled to pure JavaScript, with convenient wrappers
JavaScript
10
star
56

wire-web-store-engine

Provider for the following storage engines: File, IndexedDB, Memory & LocalStorage.
JavaScript
10
star
57

picklejar-engine

A JUnit 5 Test engine for running cucumber test in Java. Suitable for very big test suite projects.
Java
9
star
58

wire-web-core

Collection of npm modules created by Wire's web team.
TypeScript
9
star
59

wire-web-queue-priority

A promise based dynamic priority queue runner.
JavaScript
9
star
60

libsodium

A modern and easy-to-use crypto library.
C
9
star
61

avs-ios-binaries

AVS binaries for iOS
Objective-C
9
star
62

libsodium-native

C++
8
star
63

alert-bot

Broadcasts alerts
Java
8
star
64

backup-export-tool

Tool which exports Wire client's backups and generates PDF from it.
Java
8
star
65

wire-audio-files

Audio notifications files for Wire application.
Scala
8
star
66

wire-web-config-default

7
star
67

cryptobox-ios

iOS binaries for cryptobox
Shell
7
star
68

wire-android-translations

☎️ Non-english strings for Wire android client
7
star
69

wire-theme

CSS
6
star
70

rusty-jwt-tools

Tools for manipulating JSON Web Tokens, JWS, JWE, and JWK in Rust
Rust
6
star
71

roman

Lithium proxy for Wire
Java
6
star
72

scala-utils

JVM friendly utility classes for Scala, including signals and threading.
Scala
6
star
73

recording-bot

Java
6
star
74

broadcast-bot

Broadcast Channel for Wire
Java
6
star
75

wire-ios-shared-resources

Shared resources used by the Wire iOS application
Groovy
6
star
76

bazinga64

Base64 encoding and decoding with ASCII string representation. Works with Node.js and modern browsers.
JavaScript
6
star
77

mls-client

Rust
5
star
78

gitlab

GitLab integration for Wire
Java
5
star
79

babel-plugin-remove-jsx-attributes

Babel plugin for removing attributes from JSX elements
JavaScript
5
star
80

ldap-scim-bridge

Command-line translator between LDAP and SCIM systems.
Haskell
5
star
81

wire-web-ets

End-to-end Test Service (ETS) for Wire's test automation suite
TypeScript
5
star
82

charon

Proxy mapping requests from Slack bots to Roman and back
Python
5
star
83

don-bot

Don - Wire meta bot
Java
4
star
84

prebuilt-webrtc-binaries

Prebuilt binaries for webrtc library
Shell
4
star
85

wire-ios-notification-engine

Notification extension framework for iOS
Swift
4
star
86

wire-desktop-packages

Collection of npm modules used by Wire's desktop clients.
TypeScript
4
star
87

grunt-npm-bower

Grunt plugin which helps migrating from Bower to npm.
JavaScript
4
star
88

brand

Brand assets & styleguide content · brand.wire.com
HTML
3
star
89

webapp-module-modal

CSS
3
star
90

mls-server

A prototype MLS server (deprecated)
Haskell
3
star
91

mi

morphing identity
Rust
3
star
92

terraform-hcloud-rke2

HCL
3
star
93

cryptobox4j

Cryptobox jni optimized for Services
Java
3
star
94

hscim

System for Cross-domain Identity Management (SCIM)
Haskell
3
star
95

wire-web-config-wire

2
star
96

outlook-addin

Wire add-in for Microsoft Outlook
TypeScript
2
star
97

restund

Fork of restund from http://www.creytiv.com/restund.html with custom patches
C
2
star
98

echo-bot-roman

Implementation of echo bot using Roman as proxy
Python
2
star
99

admin-broadcast

Admin messages broadcasts across the Wire
TypeScript
2
star
100

mi-haskell

Haskell bindings for wireapp/mi
Haskell
2
star