An open source encrypted peer-to-peer system build with flutter
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.
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
- Built-in IM Application
- Built-in Group Chat
- Built-in Robot assistant
- Distributed Identity
- Distributed Network
- Synchronization & Distributed Storage
- Multi-identity System
- Multi-platform Support: Android, iOS, iPadOS, MacOS, Windows, Linux, etc.
Usage
1. Use Binary executable
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
- Add your android device target
rustup target add aarch64-linux-android
rustup target add armv7-linux-androideabi
rustup target add x86_64-linux-android
-
Configure your NDK
-
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
- Install lipo
cargo lipo --release
cp target/universal/release/libesse.a core/ios/share/libesse.a
2.3. Run flutter to build binary
- Run
flutter run
orflutter 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