- Dart 89.9%
- HTML 4.5%
- C++ 1.9%
- CMake 1.4%
- Rust 0.6%
- Other 1.4%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .github | ||
| .vscode | ||
| commet | ||
| fastlane/metadata/android | ||
| rust | ||
| tiamat | ||
| widgets | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTING.md | ||
| devtools_options.yaml | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| pubspec.lock | ||
| pubspec.yaml | ||
| README.md | ||
| SECURITY.md | ||
Your space to connect
We are building a client for Matrix focused on providing a feature rich experience while maintaining a simple interface. The goal is to build a secure, privacy respecting app without compromising on the features you have come to expect from a modern chat client.
Features
- Supports Windows, Linux, and Android (MacOS and iOS planned in future)
- End to End Encryption
- Custom Emoji + Stickers
- GIF Search
- Threads
- Encrypted Room Search
- Multiple Accounts
- Spaces
- Emoji verification & cross signing
- Push Notifications
- URL Preview
PGP Public Key to verify executables
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEas3osBYJKwYBBAHaRw8BAQdALOec4NqCqGHROt56oATD/RSPgutQUqTecSxz
QBI5eAG0IWNvbW1ldC5jaGF0IDxjb250YWN0QGNvbW1ldC5jaGF0PoiTBBMWCgA7
FiEECvDGdkMZIcK28HeHAb6sN2i0EZUFAmrN6LACGwMFCwkIBwICIgIGFQoJCAsC
BBYCAwECHgcCF4AACgkQAb6sN2i0EZVlgQD/frVCSbJY+2HKm7yE1gPkRJCHPrOw
xvuyjUoOfhf87UEBANc6JyWZb11r7DX5WeUz75VcLMzDXMzWcVkpBCXrd0sG
=e/bE
-----END PGP PUBLIC KEY BLOCK-----
Translation
Help translate to your language on Weblate
Development
To build, you require Flutter, currently v3.41.9
This repo currently has a monorepo structure, containing two flutter projects: Commet and Tiamat. Commet is the main client, and Tiamat is a sort of wrapper around Material with some extra goodies, which is used to maintain a consistent style across the app. Tiamat may eventually be moved to its own repo, but for now it is maintained here for ease of development.
Building
1. Install Flutter
2. Install Libraries
Commet requires some additional libraries to be built
sudo apt-get install -y cmake clang ninja-build rustup libgtk-3-dev libmpv-dev mpv ffmpeg libmimalloc-dev libwebkit2gtk-4.1-dev keybinder-3.0
3. Fetch Dependencies
You will need to change directory in to the project, then fetch dependencies
cd commet
flutter pub get
4. Code Generation
We make use of procedural code generation in some parts of the project. As a rule, generated code will not be checked in to git, and will need to be generated before building.
To run code generation, run the script within the commet directory:
dart run scripts/codegen.dart
5. Building
When building, there are some additional command line arguments that must be used to configure the build.
Required
| Argument | Valid Values | Description |
|---|---|---|
| PLATFORM | 'desktop', 'mobile', 'linux', 'windows', 'macos', 'android', 'ios', 'web' | Defines which platform to build for |
| BUILD_MODE | 'release', 'debug' | When building with 'debug' flag, additional debug information will be shown |
Optional
| Argument | Valid Values | Description |
|---|---|---|
| GIT_HASH | * | Supply the current git hash when building to show in info screen |
| VERSION_TAG | * | Supply the current build version, to display app version |
| BUILD_DETAIL | * | Can provide additional detail about the current build, for example if it was being built for Flatpak or Snap |
Example:
cd commet
flutter run --dart-define BUILD_MODE=debug --dart-define PLATFORM=linux