• Kotlin 82.2%
  • Java 17.4%
  • Shell 0.3%
Find a file
2025-01-02 11:36:50 +00:00
.idea Replace last hard-coded string 2022-05-16 12:31:26 +02:00
.reuse Add AGPLv3 license and reuse files 2021-12-13 13:31:30 -03:00
.run Record time of last owner connection 2021-11-24 15:43:26 -03:00
artwork Add logo resources to artwork directory. 2023-02-06 16:27:18 +00:00
config/checkstyle Checkstyle: count tabs as four characters, not eight 2021-11-04 15:13:31 +01:00
gradle Upgrade onionwrapper to 0.1.1. 2024-06-11 13:32:27 +01:00
LICENSES Add AGPLv3 license and reuse files 2021-12-13 13:31:30 -03:00
mailbox-android Add French and Bengali translations. 2025-01-02 11:36:50 +00:00
mailbox-cli Gradle task name to follow conventions (starting lowercase aarch64 for ARM64) 2023-08-23 17:48:25 +01:00
mailbox-core Upgrade onionwrapper to 0.1.0 and snowflake to 2.9.1. 2024-03-09 21:17:48 +00:00
mailbox-lib Upgrade onionwrapper to 0.1.0 and snowflake to 2.9.1. 2024-03-09 21:17:48 +00:00
.gitignore Add project level dictionary and fix a few typos 2022-02-09 17:36:10 +01:00
.gitlab-ci.yml Fix branch of reproducer pipeline 2023-03-01 14:36:41 -03:00
API.md Return 404 for missing or unauthorised folders. 2022-07-27 15:53:11 +01:00
build.gradle Upgrade all outdated dependencies 2022-11-10 16:43:22 +01:00
Dockerfile Added Dockerfile to run the mailbox. 2024-04-15 16:17:11 +00:00
gradle.properties Enable gradle built-in dependency verification 2023-02-21 17:26:30 -03:00
gradlew Upgrade gradle to v7.3 2021-11-23 10:44:24 +01:00
gradlew.bat Upgrade gradle to v7.3 2021-11-23 10:44:24 +01:00
LICENSE Add AGPLv3 license and reuse files 2021-12-13 13:31:30 -03:00
README.md Added Dockerfile to run the mailbox. 2024-04-15 16:17:11 +00:00
settings.gradle Add module mailbox-lib for using mailbox as a library 2022-09-28 08:43:15 +02:00
update-dependency-verification.sh Make dependency verification metadata generation more robust 2023-03-01 15:07:22 +01:00

Briar Mailbox

This project aims to develop an easy way for Briar users to increase their reachability and lower the battery drain of their phone.

In Briar messages are exchanged directly between contacts (peer-to-peer). This kind of synchronous message exchange requires contacts to be online and connected to each other.
While this is great for privacy (no central server which can log things or be censored) it's bad for reachability, especially in mobile networks where connectivity can be limited.

graph LR
 A[Alice]
 B[Bob]
 A1[Alice]
 B1[Bob]
 style B fill:#8db600
 style A1 fill:#8db600
 subgraph Alice offline
 B-. can't send message .-> A
 end
 subgraph Bob offline
 B1-. can't send message .-> A1
 end

Message delivery could be delayed for an arbitrary time (or even indefinitely) until both Bob and Alice are online at the same time.
The mailbox solves this problem by providing a message buffer where contacts can leave messages for the owner of the mailbox and which is connected to a stable internet connection (e.g. the wifi at home, cable internet) and a power source.

graph LR
  A[Alice]
  A1[Alice]
  B[Bob]
  B1[Bob]
  RA["Mailbox (always online)"]
  style B fill:#8db600
  style RA fill:#8db600
  style A1 fill:#8db600
  subgraph Alice offline
  B-. can't send message .-> A
  end
  subgraph Alice's Mailbox
  B-- send message --> RA
  end
  subgraph Alice online
  B1-. can't send message .-> A1
  A1-- get message --> RA
  end

Hardware

We want the mailbox to be as easy to deploy as possible. The target for this project will come as Android application since it will be easy to setup and besides a spare phone, no special hardware is required. Once this is done support for any hardware supporting Java (e.g. unix server, raspberry pi) could be added.

Features

Core features

  • Allow contacts to store messages for the owner of the mailbox
  • Allow the owner to store messages for her contacts. Contacts can pick them up when syncing with the mailbox.
  • Owner and contacts connect to the mailbox via Tor.

Extended features/components

  • The mailbox can sync group messages (from groups the owner is part of) with other group members (increases message circulation)
  • Contacts and the owner can connect to the mailbox via other transports (Bluetooth, Wifi-Direct, Lan)
  • Push-like message notification for the owner to decrease battery drain

Source code

API documentation

Mailbox Architecture

briarproject.org

Server CLI version

A fat JAR for running on a x86_64 GNU/Linux server can be compiled with

./gradlew x86LinuxJar

And also ARM64 with

./gradlew aarch64LinuxJar

As well as a docker container can be built with

docker build -t briar/mailbox .

And run with

docker volume create briar-mailbox-1
docker run --name briar-mailbox --volume briar-mailbox-1:/root briar/mailbox

Donate

Donate using Liberapay Flattr this
Bitcoin and BCH: 1NZCKkUCtJV2U2Y9hDb9uq8S7ksFCFGR6K

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Compliant with version 3.0 of the REUSE Specification.