An open source encrypted peer-to-peer system. Own data, own privacy.

Overview

ESSE

ESSE (Encrypted Symmetrical Session Engine) An open source encrypted peer-to-peer session system would allow data to be sent securely from one terminal to another without going through third-party services.

image

ESSE, stands for Encrypted Symmetrical Session Engine, positioned as an engine. The engine is coded in Rust language based on TDN framework, and the cross-platform user interface is built using Flutter.

Features

  • Distributed Identity
  • Distributed Network
  • Synchronization & Distributed Storage
  • Multi-identity System
  • Built-in IM Application
  • Multi-platform Support: Android, iOS, iPadOS, MacOS, Windows, Linux, etc.

About ESSE(English) / 关于ESSE(简体中文)

Usage

1. Use Binary executable

Download

2. Compile

2.1. Pre-installed

  • Rustup install
  • Rust (Nightly Version)
  • Flutter (Master channel)

2.2. Compile Rust code to dynamic link library (FFI)

2.2.1. Auto-compile script

It is recommended to use rust.sh to auto-compile the Rust code

2.2.2. Manually compile
Linux / MacOS / Windows
  • cargo build --release
Linux
  • cp target/release/libesse.a core/linux/share/libesse.a
MacOS
  • cp target/release/libesse.a core/macos/share/libesse.a
Windows
  • cp target/release/esse.dll core/windows/share/esse.dll
  • cp target/release/esse.dll.lib core/windows/share/esse.dll.lib
Android
  1. Add your android device target
  • rustup target add aarch64-linux-android
  • rustup target add armv7-linux-androideabi
  • rustup target add x86_64-linux-android
  1. Configure your NDK

  2. Build the jniLibs

  • cargo build --release --target=aarch64-linux-android
  • cp target/aarch64-linux-android/release/libesse.so core/android/src/main/jniLibs/arm64-v8a/
iOS
  1. Install lipo
  2. cargo lipo --release
  3. cp target/universal/release/libesse.a core/ios/share/libesse.a

2.3. Run flutter to build binary

  • Run flutter run or flutter run --release in terminal, or
  • for Android, run flutter build apk, or
  • for Linux, run flutter build linux, or
  • for MacOS, run flutter build macos, or
  • for Windows, run flutter build windows

License

This project is licensed under either of

at your option.

Issues
  • [Feature] add ETH wallet to ESSE.

    [Feature] add ETH wallet to ESSE.

    Support ETH and ERC20.

    opened by sunhuachuang 2
  • error: $./rust.sh in zsh

    error: $./rust.sh in zsh

    $ ./rust.sh linux          
    ./rust.sh: 2: Syntax error: "(" unexpected
    

    Fix

    Add default sh #!/bin/bash to rust.sh

    #!/bin/bash
    #### Default Current Machine
    function current() {
        cargo build --release
    
        ## check now os.
    }
    ...
    
    opened by chinanf-boy 1
  • use cargo ndk to build android for different targets

    use cargo ndk to build android for different targets

    Have errors build android: needs to install ndk separately and configure path. switch to cargo ndk should be easier for us to builds

    ./rust.sh init_android (init android targets) ./rust.sh android

    opened by DAOCUONG 1
  • [Feature] encrypted local SQLite database.

    [Feature] encrypted local SQLite database.

    What ?

    Encrypted local SQLite database.

    Why ?

    Encrypted everywhere.

    How ?

    • use sqlcipher to handle SQLite. use rusqlite and features bundled-sqlcipher-vendored-openssl. (better for cross-compile)
    • update tdn_storage API. use open(path: PathBuf, password: &str)
    • update ESSE
      • account.db: use device's local secret (every device drive it randomly when first launch) to encrypt/decrypt.
      • account's database: use user encrypt key (which is encrypted by user's PIN and secret) to encrypt/decrypt.
    opened by sunhuachuang 1
  • Next version 0.6

    Next version 0.6

    What is the plan of 0.6 ? (Breaking changes)

    List

    • [ ] Data structure defined Data-Protocol.
    • [ ] Local encrypted database.
    • [ ] Refactor distributed synchronization between devices.
    • [ ] Optional cloud-based data centre.
    • [ ] DAO and organization application (Maybe in 0.7)
    opened by sunhuachuang 0
  • Making installer, and publish to app store.

    Making installer, and publish to app store.

    For safer and more convenient

    Android

    Now that is apk, can install, but we need to upload to Play Store

    IOS

    First, I need to register an IOS developer account. And then upload to App Store.

    macOS

    Also need account, and upload to App Store. Need test on M1 device (arm64)

    Windows

    Make Windows installer. Try msix

    Linux

    Upload to snap

    opened by sunhuachuang 3
  • [Feature] group chat avatar use members.

    [Feature] group chat avatar use members.

    Avatar limit is 4, like 2x2 grid.

    opened by sunhuachuang 0
Releases(v0.5.0)
Owner
Cymple Tech
Trust and privacy.
Cymple Tech
One codebase two platforms more privacy for the world 😎

Privyet A Privacy focused social media app. Getting Started This project is a starting point for a Flutter application. A few resources to get you sta

Privyet 3 Jun 3, 2021
Paper is a implementation of Flx Design System for Flutter

Paper is a implementation of Flx Design System for Flutter. Installing Add a lines like this to your pubspec.yaml. dependencies: paper: git:

Flx Team 3 Nov 21, 2021
Flutter Music Player - First Open Source Flutter based material design music player with audio plugin to play local music files.

Flutter Music Player First Open Source Flutter based Beautiful Material Design Music Player(Online Radio will be added soon.) Demo App Play Store BETA

Pawan Kumar 1.3k Jan 16, 2022
Simple yet powerful, open-source SpaceX launch tracker.

SpaceX GO! Simple yet powerful, open-source SpaceX launch tracker About the project The purpose of this project is to develop the ultimate SpaceX expe

Jesús Rodríguez 664 Jan 13, 2022
Timy - open source mobile app for groups to communicate and organize themselves. Built with flutter.

Timy app An amazing open-source group messaging app build with flutter. ✨ Main Features Multiple groups (similar to Teams in Slack). Multiple open or

null 1.8k Jan 13, 2022
freeCodeCamp's open-source mobile app

freeCodeCamp.org's open-source mobile app freeCodeCamp.org is a friendly community where you can learn to code for free. Our full-stack web developmen

freeCodeCamp.org 139 Jan 11, 2022
Nakama is an open-source server designed to power modern games and apps

Nakama is an open-source server designed to power modern games and apps. Features include user accounts, chat, social, matchmaker, realtime multiplayer, and much more.

Allan Nava 38 Jan 3, 2022
Upper is a open source back-end framework based on the Dart language.

What is Upper? Upper is a open source back-end framework based on the Dart language. With it, it is possible to automatically generate a gRPC API for

Andriws Luna 39 Jan 8, 2022
Easy to use open source Hub 🕸️ to control your smart devices from one app.

CyBear Jinni Hub Welcome! This repository is in charge of controlling smart devices and is part of the CyBear Jinni Smart Home system. The software is

CyBear Jinni 19 Jan 18, 2022
Easy to use open source Hub 🕸️ to control your smart devices from one app.

CyBear Jinni Hub Welcome! This repository is in charge of controlling smart devices and is part of the CyBear Jinni Smart Home system. The software is

CyBear Jinni 13 Jul 22, 2021
Berikut merupakan source code Chat Apps dengan Flutter + GetX + Firebase

chatapp A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this

Sandikha Rahardi 17 Dec 28, 2021
Source code for @flutter.master

Flutter-Master Reels Onboarding screen Go Personal Finance Go Nike Store Go Travel App Go Solar system App Go Animations Implicit animations Go Tween

null 18 Dec 21, 2021
News App created in Flutter using News API for fetching realtime data and Firebase as the backend and authenticator.

News Buzz News App created in Flutter using News API for fetching realtime data and Firebase as the backend and authenticator. Features Custom news fe

Ankur Kedia 506 Dec 11, 2021
Obfuscate sensitive data in your pictures before sharing them online.

Privacy Blur A cross-platform application to obfuscate sensitive data from images, targeting iOS and Android devices. Mainly written in dart with the

MATHEMA GmbH 29 Jan 10, 2022
Indonesia Corona data viewer using flutter

corona_app A new Flutter project. Getting Started Clone this project git clone https://github.com/athallahmaajid/Indonesia-Corona-App.git Development

null 3 Jul 10, 2021
An android app built using flutter that displays and forecast the specific city Weather and Climate for dynamic time event by collecting the data from API that is provided for free by OPENWEATHER site.

clima_weather_reporter A new Flutter application. Getting Started This project is a starting point for a Flutter application. A few resources to get y

dev_allauddin 4 Nov 17, 2021
The FlexGrid control provides a powerful and quickly way to display data in a tabular format. It is including that frozened column/row,loading more, high performance and better experience in TabBarView/PageView.

flex_grid Language: English| 中文简体 The FlexGrid control provides a powerful and quickly way to display data in a tabular format. It is including that f

FlutterCandies 32 Jan 6, 2022