gitmyhub

client

Go ★ 9.2k updated 1d ago

Keybase Go Library, Client, Service, OS X, iOS, Android, Electron

Keybase's encrypted messaging and file-sharing platform, source code for desktop apps on macOS, Windows, and Linux and mobile apps on iOS and Android, with cryptographic identity verification.

GoReact NativeElectronJavaScriptAvrosetup: hardcomplexity 5/5

Keybase is an encrypted communication platform, and this repository contains the source code for all of its client applications: desktop apps on macOS, Windows, and Linux, plus mobile apps on iOS and Android. If you just want to use Keybase, the README recommends downloading the official releases from the website rather than building from source, because the source code can include unfinished experiments that may not behave as expected.

The codebase is organized into several areas. The core cryptography and the background service that powers all Keybase apps are written in Go. The mobile apps for iOS and Android are built with React Native, a framework that lets developers write JavaScript code that runs on both mobile platforms. The desktop app uses Electron, a tool for building cross-platform desktop applications with web technologies, and it shares React code with the mobile apps.

The protocol folder defines how client apps communicate with the Keybase service, using a format called Avro for structuring that communication. The packaging folder contains scripts for building and releasing the apps on each platform. A separate macOS-native app also exists alongside the Electron version.

Keybase includes cryptographic features for encrypting messages, files, and identity verification. Because of this, the README includes a notice that export laws in some countries may restrict the use or distribution of software that handles encryption, and it recommends checking local regulations before redistributing the code.

For contributors, the project uses pre-commit hooks to check code quality before commits are accepted. External pull requests go through a security review before the team builds them in their CI system, because running untrusted code in a build environment poses a risk. Issues with the client apps can be reported on the GitHub issue tracker, and the team monitors it alongside an internal tracker.

Where it fits