OpenSourcePicks

Open source alternatives to popular software, with live GitHub data

GitHub stats refreshed every day

Wire

End-to-end encrypted messaging, calls and file sharing using the MLS standard

Open source alternative to

Visit WireGitHubDocumentation

Main features

  • Messages, calls, conferences and files end-to-end encrypted by default
  • Messaging Layer Security (MLS) for group encryption
  • Self-deleting messages
  • Guest links with passwords and external users
  • Screen sharing, audio and video messages
  • SSO and SCIM user provisioning
  • Federation between Wire backends
  • Legal hold and classified domains
  • Up to 8 devices per user

What Wire does

Wire is a collaboration app for messaging, audio and video calls, conferences and file sharing, developed by Wire Swiss GmbH. It covers the core of team chat: group conversations, direct messages, guest access for people outside the organization, screen sharing and an admin console for managing team members. Its main selling point is that everything is end-to-end encrypted by default, and the server and clients are open source so the encryption can be audited.

The repository listed here is wire-server, the backend. It is made of several Haskell services: accounts, conversations and teams, push notifications, WebSockets, asset storage, single sign-on and a reverse proxy.

Security and encryption

Wire encrypts messages, calls and files end to end and does not let users turn it off. It uses Messaging Layer Security (MLS), the IETF standard published as RFC 9420 in July 2023 for group key agreement, which Wire says supports large groups with efficient key updates; with MLS enabled the maximum conversation size rises from 500 to 2,000 participants. Each message uses a new key, and Wire advertises forward secrecy and post-compromise security. Wire Cloud runs on servers in Germany and Ireland, and the company says it holds ISO 27001 and ISO 27701 certification. For regulated settings, wire-server supports legal hold, classified domains and blocking personal account creation.

Self-hosting Wire

wire-server is deployed on Kubernetes with the Helm charts and instructions in wire-server-deploy. The documentation offers three paths. Wire-in-a-Box Dev runs everything on one Ubuntu VM with temporary data, for trying it out. Wire-in-a-Box Staging reproduces the production layout on about seven VMs on one physical host, for testing. Production uses dedicated VMs for Cassandra, PostgreSQL, MinIO, Elasticsearch and RabbitMQ (three of each) plus two Kubernetes clusters, one of them for calling, spread across three availability zones; the recommended layout adds up to about 18 CPU cores, 38 GB of RAM and 1 TB of disk. TURN (Restund) and SFT servers handle calls and conferences.

The README notes that communication between internal components is not separately authenticated or encrypted and must stay on a private network. Wire also sells supported on-premises deployments.

Hosted version

Wire Cloud has a free plan for teams of up to 5 people with the collaboration basics on all platforms; it cannot start conference calls with more than two participants. Paid plans for small and medium businesses add conferences of up to 150 participants, SSO and SCIM, admin controls and guest roles, and the Enterprise plan adds federation with Wire Cloud and deployment support. Personal accounts are also available.

Limitations

Running Wire yourself is a substantial infrastructure project, closer to operating a cloud service than installing an app. The free cloud tier is only usable by very small teams. The integration story is thin compared with Slack-style servers: bots can be deployed on paid plans, but there is no large app marketplace.

Who it suits

Wire suits businesses and public sector organizations that need encryption for all communication with EU hosting, and larger organizations with the operations staff to run it on premises. Teams that want federation over an open protocol with many clients should compare Element; those who mainly need easy self-hosting should look at Zulip or Mattermost.

License details

AGPL-3.0. No license is granted to the Wire trademark or logos. Clients are in separate repositories; supported on-premises deployments are a commercial offering.

Technical details

Self-hosting needs

  • Kubernetes
  • Cassandra
  • PostgreSQL
  • Elasticsearch
  • MinIO
  • RabbitMQ

Built with

  • Haskell

GitHub topics

  • haskell
  • rust
  • server
  • wire

Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.