Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nozwock/flatsync
Flatsync's clone. (https://gitlab.gnome.org/Cogitri/flatsync)
https://github.com/nozwock/flatsync
Last synced: 10 days ago
JSON representation
Flatsync's clone. (https://gitlab.gnome.org/Cogitri/flatsync)
- Host: GitHub
- URL: https://github.com/nozwock/flatsync
- Owner: nozwock
- Created: 2024-03-30T17:49:33.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-04-02T16:37:20.000Z (9 months ago)
- Last Synced: 2024-11-08T22:17:56.217Z (2 months ago)
- Language: Rust
- Homepage:
- Size: 387 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# FlatSync
Synchronise your Flatpak packages across machines
Currently, it’s rather bothersome to sync the Flatpak packages installed on multiple systems: One either has to manually keep them in sync or use the CLI to get a list of installed Flatpaks. To improve this situation, FlatSync was created. It creates a D-Bus daemon that automatically collects a list of installed Flatpaks and pushes it to a service like GitHub Gists. It also pulls configuration from this service and installs Flatpaks that are missing remotely.
To interact with this daemon, FlatSync provides both a CLI and a GUI component, see [Architecture](#architecture).
# Getting Started
0. **Setup Rust**: See [rustup.rs](https://rustup.rs) for more information
1. **Generate `config.rs`**: Run `meson setup build` to create essential configuration files.
2. **Install Dependencies** (For Red Hat-based systems like RHEL, CentOS, Fedora):
```bash
sudo dnf install libadwaita-devel flatpak-devel gtk4-devel
```Now that all the basics are setup, you should be able to build the project with `cargo build`. To learn the basics, check out [The Rust Programming Language](https://doc.rust-lang.org/book/) and [GUI development with Rust and GTK4](https://gtk-rs.org/gtk4-rs/stable/latest/book/), two excellent books for beginners.
# Architecture
This project is split into multiple parts:
* libflatsync-common: A library for (utility) functions that are shared across the projects
* flatsync-daemon: A D-Bus daemon that periodically fetches installed flatpaks via `libflatpak` and pushes them to a gist provider. It provides a D-Bus API that both flatsync-cli and flatsync can use for setting things like the gist secret token or manually triggering a push to the gist provider.
* flatsync-cli: A CLI application for interfacing with flatsync-daemon
* flatsync: A GUI application for interfacing with flatsync-daemon# Communication
* Matrix: You can join the chat room [here](https://matrix.to/#/#flatsync:gnome.org)