Skip to content

ARK-Builders/ARK-Drop-Desktop

Repository files navigation

ARK Drop

ARK Drop is designed for easy file transfer. You can use QR codes to quickly send and receive files between devices. This app is part of ARK Framework and uses iroh to sync data between devices.

Warning

ARK Drop is currently under heavy development and should be used with caution. It has not undergone extensive testing and may contain bugs, vulnerabilities, or unexpected behavior.

Development

ARK Drop is built using Tauri with SvelteKit.

Tauri

Tauri is a framework for creating small, fast binaries for all major desktop platforms. It allows integration with any frontend framework that compiles to HTML, JavaScript, and CSS. Tauri prioritizes security and provides a detailed architecture guide.

SvelteKit

SvelteKit is an application framework built on Svelte. Unlike traditional frameworks, SvelteKit shifts work to a compile step during the build process, resulting in code that directly updates the DOM when the application's state changes, enhancing performance.

Running ARK Drop Locally

You can use either cargo tauri CLI or npm CLI commands to run ARK Drop locally.

Installing cargo tauri

To install cargo tauri, run:

cargo install tauri-cli

Starting the Tauri Development Window

To start the Tauri development window, run:

npm run tauri dev

or

cargo tauri dev

This command builds the Rust code and opens the webview to display your web app. You can make changes to your web app, and if your tooling supports it, the webview will update automatically, similar to a browser.

Building the Project

Tauri will detect your operating system and build a corresponding bundle. To build the project, run:

npm run tauri build

or

cargo tauri build

This process will build your frontend, compile the Rust binary, gather all external binaries and resources, and produce platform-specific bundles and installers.

For more information about Tauri builds, refer to the Tauri building guide.

Dependencies

Cross compilation building is done easiest via cross library.

Alternatively you can setup the NDK and build manually

Building for Android

Make sure you have added the nessecary targets to build for android

rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android

Build the cdylib for all the targets

cross build -p drop_core --target aarch64-linux-android
cross build -p drop_core --target armv7-linux-androideabi
cross build -p drop_core --target i686-linux-android
cross build -p drop_core --target x86_64-linux-android

Generate the bindings using uniffi for kotlin

cargo run -p uniffi-bingen generate --library target/x86_64-linux-android/debug/libdrop_core.so --language=kotlin --out-dir ./bindings

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published