Skydrivex is a Linux-first third-party OneDrive desktop client that also supports macOS and Windows. The goal is to deliver a native desktop experience while staying fully compatible with the official OneDrive service.
Chinese README: zh_README.md
- Flutter + Riverpod for UI, entry at
lib/main.dart, feature modules inlib/features/. - Rust handles core sync and OneDrive integration logic, source code in
rust/. - Flutter and Rust communicate via
flutter_rust_bridge2.11.1, configured influtter_rust_bridge.yaml. - The build script
./build_rust.shcompiles the Rust crate and regenerates bridge code.
- Flutter SDK and Dart (aligned with the channel and version in
pubspec.yaml). - Rust stable toolchain and
cargo. flutter_rust_bridge_codegen2.11.1 installed (for binding generation).
- Fetch dependencies:
flutter pub get
- Build Rust and generate bridge code:
Re-run this script after changing Rust APIs.
./build_rust.sh
- Run the app (Linux first):
The macOS and Windows scaffolds must stay buildable, but full support is still in progress.
flutter run -d linux
- Flutter linting and tests:
flutter analyze flutter test - Rust build:
cargo build --manifest-path rust/Cargo.toml
- Bump
pubspec.yamlto the next app version before tagging. - Create a Git tag that exactly matches the full Flutter version string, prefixed with
v. - Example: if
pubspec.yamlis1.1.0+12, publish the release with tagv1.1.0+12. - The desktop release workflow only publishes a GitHub Release from such a tag and fails if any Linux, macOS, or Windows asset is missing.
- Keep Linux desktop usable and avoid breaking macOS/Windows builds.
- When adding or changing Rust APIs, update the bridge definitions, regenerate bindings, then implement Dart-side logic.
- Ensure bridge code is up to date.