Skip to content

Repository files navigation

Skydrivex

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

Tech Stack and Structure

  • Flutter + Riverpod for UI, entry at lib/main.dart, feature modules in lib/features/.
  • Rust handles core sync and OneDrive integration logic, source code in rust/.
  • Flutter and Rust communicate via flutter_rust_bridge 2.11.1, configured in flutter_rust_bridge.yaml.
  • The build script ./build_rust.sh compiles the Rust crate and regenerates bridge code.

Requirements

  • Flutter SDK and Dart (aligned with the channel and version in pubspec.yaml).
  • Rust stable toolchain and cargo.
  • flutter_rust_bridge_codegen 2.11.1 installed (for binding generation).

Quick Start

  1. Fetch dependencies:
    flutter pub get
  2. Build Rust and generate bridge code:
    ./build_rust.sh
    Re-run this script after changing Rust APIs.
  3. Run the app (Linux first):
    flutter run -d linux
    The macOS and Windows scaffolds must stay buildable, but full support is still in progress.

Development and Verification

  • Flutter linting and tests:
    flutter analyze
    flutter test
  • Rust build:
    cargo build --manifest-path rust/Cargo.toml

Release

  • Bump pubspec.yaml to the next app version before tagging.
  • Create a Git tag that exactly matches the full Flutter version string, prefixed with v.
  • Example: if pubspec.yaml is 1.1.0+12, publish the release with tag v1.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.

Contribution Guidelines

  • 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.

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages