VeilidChat
Find a file
2025-06-14 15:31:15 -04:00
.gitlab/issue_templates Added template to new issue creation [ci skip] 2024-08-08 16:44:48 +00:00
android debugging and cleanup 2025-03-13 21:34:12 -04:00
assets update for api fixes 2025-06-14 15:31:15 -04:00
dev-setup more log work 2025-02-18 21:43:05 -05:00
doc big identity refactor 2024-06-07 14:42:04 -04:00
flatpak Build Arm64 flatpaks 2025-04-04 13:17:46 -04:00
ios new qr code scanner 2025-06-05 23:46:46 +02:00
lib update for api fixes 2025-06-14 15:31:15 -04:00
linux more log work 2025-02-18 21:43:05 -05:00
macos new qr code scanner 2025-06-05 23:46:46 +02:00
packages/veilid_support update for api fixes 2025-06-14 15:31:15 -04:00
snap/gui icon 2023-09-29 12:31:16 -04:00
test checkpoint 2023-01-09 22:50:34 -05:00
web Remove duplicate html inside of index.html 2025-04-06 13:45:34 -04:00
windows more log work 2025-02-18 21:43:05 -05:00
.bumpversion.cfg Version update: v0.4.7 → v0.4.8 2025-06-03 13:02:10 -05:00
.gitignore more log work 2025-02-18 21:43:05 -05:00
.gitlab-ci.yml Update .gitlab-ci.yml file to run builds when a new version tag is published. 2025-04-07 14:49:00 +00:00
.metadata initial flutter create 2023-01-07 21:43:31 -05:00
analysis_options.yaml lint cleanup 2023-07-26 17:42:11 -04:00
build.yaml debugging and cleanup 2025-03-13 21:34:12 -04:00
CHANGELOG.md Updated CHANGELOG for v0.4.8 release 2025-06-03 13:00:38 -05:00
code_of_conduct.md Setting up the repo for opening 2023-09-26 21:22:54 -05:00
CONTRIBUTING.md Setting up the repo for opening 2023-09-26 21:22:54 -05:00
devtools_options.yaml clean up a bunch of exceptions 2025-04-17 18:55:43 -04:00
flutter_01.png new chat widget 2025-05-17 18:02:17 -04:00
flutter_02.png new chat widget 2025-05-17 18:02:17 -04:00
flutter_03.png new chat widget 2025-05-17 18:02:17 -04:00
LICENSE Setting up the repo for opening 2023-09-26 21:22:54 -05:00
process_flame.sh cleanup 2024-07-03 20:59:54 -04:00
pubspec.lock new qr code scanner 2025-06-05 23:46:46 +02:00
pubspec.yaml new qr code scanner 2025-06-05 23:46:46 +02:00
README.md Updated CHANGELOG for v0.4.8 release 2025-06-03 13:00:38 -05:00
reset_run.bat work 2023-07-26 10:23:42 -04:00
reset_run.sh work 2023-07-26 10:23:42 -04:00
update_generated_files.bat ui cleanup 2025-03-17 00:51:16 -04:00
update_generated_files.sh ui cleanup 2025-03-17 00:51:16 -04:00
update_icons.sh work 2023-07-26 22:38:09 -04:00
version_bump.sh update version bump logic 2025-06-06 21:58:13 -05:00

VeilidChat

Overview

VeilidChat is a decentralized, secure, and private chat application built upon the Veilid distributed application platform. It offers a familiar messaging interface while leveraging Veilid's underlying end-to-end encrypted and peer-to-peer communication capabilities to ensure privacy and security for person-to-person communications without relying on centralized servers.

For more information about VeilidChat: https://veilid.com/chat/

For more information about the Veilid network protocol and app development platform: https://veilid.com

Setup

Prerequisites

VeilidChat is a Flutter application that interacts with the core Veilid library via Foreign Function Interface (FFI). While this is still in development, you must have a clone of the Veilid source checked out at ../veilid relative to the working directory of this repository for the setup scripts to work. This is because the veilid-core source and build setup (including FFI components), which Veilidchat relies on, reside there.

your_workspace/
├── veilid/        <-- Veilid core repository
└── veilidchat/    <-- This repository

Refer to the main Veilid repository for instructions.

Flutter Installation

VeilidChat requires the Flutter SDK to build and run. Ensure Flutter is installed and available in your system's PATH. Choose one of the methods below:

Option 1: Standard Installation (Recommended)

Follow the official Flutter documentation for your operating system to install the SDK directly.

Option 2: Installation via IDE Extension (Beginner-friendly for VS Code)

Various IDEs may offer Flutter extensions that can assist with setup. For VS Code, the official Flutter extension can assist you through the SDK installation process.

  1. Open VS Code.
  2. Go to the Extensions view (Ctrl+Shift+X or Cmd+Shift+X).
  3. Search for "Flutter" and install the official extension published by Dart Code.
  4. Follow the prompts from the extension to install the Flutter SDK.

Running Veilid Core Setup Scripts:

In order to run the VeilidChat application, you will need the Veilid repository repository set up correctly as mentioned in Prerequisites above. The veilidchat setup scripts in ./dev-setup handle building the necessary Veilid components and checking for or installing other required tools like protoc.

Note: These scripts require Flutter to be already installed and accessible in your system's PATH before they are run.

To run these setup scripts (from the veilidchat directory):

These scripts will check for required dependencies and set up the environment. For Windows users, please ensure you have manually downloaded and installed the protoc compiler (version 25.3 or higher is recommended) and added its directory to your system's PATH before running the setup script. The Windows script will verify its presence.

Note on Python Environments: The dev-setup scripts in the main Veilid repository may utilize Python virtual environments (venv) for managing dependencies needed for build processes (like FFI generation scripts). If your system uses a system-managed Python environment or you encounter permission issues, ensure you follow any instructions provided by the setup scripts regarding environment activation or configuration.

Verifying Installation

After installing Flutter and running the ./dev-setup scripts, verify that everything is set up correctly. Open a terminal and run the following command from anywhere accessible by your PATH:

$ flutter doctor

This command checks your environment and displays a report of the status of your Flutter installation and connected devices. It will list any missing dependencies or configuration issues for common development platforms (Android, iOS, Web, Desktop).

Example Output (Partial):


$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[] Flutter (Channel stable, 3.x.x, on macOS 13.x.x 22Gxxx darwin-x64, locale en-US)
[] Android toolchain - develop for Android devices (Android SDK version 3x.x.x)
[!] Xcode - develop for iOS and macOS
    ✗ Xcode installation is incomplete.
      Install Xcode from the App Store.
[] Chrome - develop for the web
[] Linux toolchain - develop for Linux desktop
[] VS Code (version 1.xx.x)
[] Connected device (1 available)

! Doctor found issues in 1 category.

Address any issues reported by `flutter doctor` before proceeding.

Building and Launching

VeilidChat is a Flutter application and can be built and launched on various platforms supported by Flutter, provided you have the necessary SDKs and devices/emulators configured as verified by flutter doctor.

  1. Ensure Flutter dependencies are installed: From the veilidchat directory, run:

    flutter pub get
    
  2. List available devices: To see which devices (simulators, emulators, connected physical devices, desktop targets, web browsers) are available to run the application on, use the command:

    flutter devices
    
  3. Run on a specific device: Use the flutter run command followed by the -d flag and the device ID from the flutter devices list.

    • Example (Android emulator/device): Assuming an Android device ID like emulator-5554:

      flutter run -d emulator-5554
      

      If only one device is connected, you can often omit the -d flag.

    • Example (iOS simulator/device): Assuming an iOS simulator ID like xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:

      flutter run -d xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` (replace with actual ID)
      

      Or, to target the default iOS simulator:

      flutter run -d simulator
      
    • Example (Linux Desktop):

      flutter run -d linux
      
    • Example (macOS Desktop):

      flutter run -d macos
      
    • Example (Windows Desktop):

      flutter run -d windows
      
    • Example (Web):

      flutter run -d web # Or a specific browser like 'chrome' or 'firefox' if listed by `flutter devices`
      

      This will typically launch the application in your selected web browser.

Updating the WASM Binary

To update the WASM binary

[from the veilid-wasm package located in ../veilid/veilid-wasm]

From the VeilidChat repository working directory (./veilidchat), run the appropriate script:

Refer to the official Flutter documentation for more detailed information on building and deployment with Flutter.