https://github.com/commetchat/commet
Your space to connect
https://github.com/commetchat/commet
matrix-org
Last synced: 4 days ago
JSON representation
Your space to connect
- Host: GitHub
- URL: https://github.com/commetchat/commet
- Owner: commetchat
- License: agpl-3.0
- Created: 2023-02-07T09:24:03.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-04-13T15:17:02.000Z (about 2 years ago)
- Last Synced: 2024-04-14T01:04:29.605Z (about 2 years ago)
- Topics: matrix-org
- Language: Dart
- Homepage: https://commet.chat
- Size: 11.8 MB
- Stars: 73
- Watchers: 2
- Forks: 4
- Open Issues: 30
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README

### Your space to connect
We are building a client for [Matrix](https://matrix.org) 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-----
xiYEaVcZBRudW9w7efKKX9fRmwwQ8VSGeBDxPR/L1ZiorA99Ja93y80cQ29tbWV0
IDxjb250YWN0QGNvbW1ldC5jaGF0PsKCBBMbCAAuBQJpVxkFFiEEdJSx+k46noJT
sEiwnYIftF7A4aoCGwECHgEBCwEVARYBJwIZAQAKCRCdgh+0XsDhqiE1sVz/Q146
a/XQm2yeA+QJ4KuD+YY7j1zUl8gNZGJtl4LfvzMlEgrl9Tt8r6FP35mlRhKl+XSG
GwMpXUeHJwxvCM4mBGlXGQUbia8Ea3sb8PNFMjxgTF+gjCOBou6vMn8dCux6QEqs
fSDCwCcEGBsIAJMFAmlXGQUCGwIWIQR0lLH6TjqeglOwSLCdgh+0XsDhqnIgBBkb
CAAdBQJpVxkFFiEExdz0cdzyrZo8ihAhUfYeLD/fY80ACgkQUfYeLD/fY812w6BM
9avvCNSTmyogmsYLBpUb5XxaSe+3J6WhwBHyblaodZ2dlJg+npi1qRnMxvz+jTyQ
ctgmD24jtS2EbXlkCQkACgkQnYIftF7A4aqUviQ+fo2mEwweefVoqGuu2Tx/04B2
RY6FOKYsZL4qnEEO8lW7MoLXhVev8QHxmA6TQae8KZKbh8MXdCHW/cA3ZwjOOARp
VxkFEgorBgEEAZdVAQUBAQdAQatH56zW5TzNugWIsK1UGACqdQ/FCFcG/KT5LDiW
TDwDAQgHwnQEGBsIACAFAmlXGQUCGwwWIQR0lLH6TjqeglOwSLCdgh+0XsDhqgAK
CRCdgh+0XsDhqg1ipzJFtQCftqPRNvYPq96xFw3SAAE3CpAfHi+gwOk3BM7FmMxV
COa2WMfqY9EZxYWMwsbF6wZMdI2w3TLbo68MCc4zBGlXGQUWCSsGAQQB2kcPAQEH
QKcpVnktGVrHWHShUhp2Xb/nX6bQfy57gCe8zQ4Kzp0fwnQEGBsIACAFAmlXGQUC
GyAWIQR0lLH6TjqeglOwSLCdgh+0XsDhqgAKCRCdgh+0XsDhqkolM/gHzXSWM9t5
menzfZtegZnLPZ+n/zufzXdidzGa1K88juIrgoUjGZYJXnPHOJKm8qBXbLBscDkc
SHrEquc3Cw==
=wnah
-----END PGP PUBLIC KEY BLOCK-----
```
# Translation
Help translate to your language on [Weblate](https://hosted.weblate.org/projects/commetchat/commet/)
# Development
To build, you require [Flutter](https://flutter.dev), currently v3.41.1
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](https://docs.flutter.dev/get-started/install)
### 2. Install Libraries
Commet requires some additional libraries to be built
```bash
sudo apt-get install -y ninja-build libgtk-3-dev libmpv-dev mpv ffmpeg libmimalloc-dev
```
### 3. Fetch Dependencies
You will need to change directory in to the project, then fetch dependencies
```bash
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:**
```bash
cd commet
flutter run --dart-define BUILD_MODE=debug --dart-define PLATFORM=linux
```