rencfs-desktop
GUI written in Rust with egui for rencfs.
[!WARNING]
This is still under development. Please do not use it with sensitive data for now, please wait for a stable release.
It’s mostly ideal for experimental and learning projects. It serves as a reference app for a GUI forrencfs
.
Currently, it is working only on Linux, with plans to support macOS and Windows, Android and iOS in the future. Check out rencfs-kotlin for the Kotlin Multiplatform app that is build ready for desktop operating systems and Android.
It uses:
- egui with eframe for GUI
- tokio for concurrency
- tonic for gRPC communication between GUI and daemon
- diesel with Sqlite for ORM
Contribute
Feel free to fork it, change and use it in any way that you want. If you build something interesting and feel like sharing pull requests are always appreciated.
How to contribute
Please see CONTRIBUTING.md.
Build project locally
git clone https://github.com/radumarias/rencfs-desktop
Dependencies
To use the encrypted file system, you need to have FUSE installed on your system. You can install it by running the following command (or based on your distribution).
Arch
sudo pacman -Syu && sudo pacman -S fuse3
Ubuntu
sudo apt-get update && sudo apt-get -y install fuse3
Protocol Buffer Compiler Installation
https://grpc.io/docs/protoc-installation/
Linux
Using apt or apt-get, for example
apt install -y protobuf-compiler
protoc --version # Ensure compiler version is 3+
MacOS
Using Homebrew
brew install protobuf
protoc --version # Ensure compiler version is 3+
Install pre-compiled binaries (any OS)
https://grpc.io/docs/protoc-installation/#install-pre-compiled-binaries-any-os
Build
cargo build
Run
Start the daemon in one terminal
cd rencfs_desktop_daemon
cargo run --package rencfs_desktop_daemon --bin rencfs_desktop_daemon
Start the GUI in another terminal
cd rencfs_desktop_gui
cargo run --package rencfs_desktop_gui --bin rencfs_desktop_gui