README.md 2.3 KB

Tauri Plugin: AppLoad

A Tauri plugin for downloading and loading web app bundles into WebView.

![GitHub License MIT](https://img.shields.io/github/license/CuriousCorrelation/tauri-plugin-appload) ![Tauri 2.0](https://img.shields.io/badge/Tauri-2.0-blue) [![Rust](https://img.shields.io/badge/Rust-1.77.2+-orange)](https://www.rust-lang.org)

Features

  • 🦀 Blazingly fast!
  • Download and load web app bundles from remote servers
  • Secure verification using ed25519 + blake3
  • Caching with hot/cold storage strategy
  • Custom URI scheme for isolated app loading

Installation

[!IMPORTANT] This plugin requires Tauri 2.0 or later.

Add the plugin to your project by installing directly from GitHub:

[dependencies]
tauri-plugin-appload = { git = "https://github.com/CuriousCorrelation/tauri-plugin-appload" }
"dependencies": {
  "@CuriousCorrelation/plugin-appload": "github:CuriousCorrelation/tauri-plugin-appload"
}

Quick Start

Rust

fn main() {
    tauri::Builder::default()
        .plugin(tauri_plugin_appload::init())
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}

JavaScript/TypeScript

import { download, load } from '@CuriousCorrelation/plugin-appload'

// Download a bundle
const { bundleName } = await download({
  serverUrl: "https://example.com"
})

// Load the bundle in a new window
await load({
  bundleName,
  window: {
    title: "My App",
    width: 800,
    height: 600
  }
})

Configuration

[!NOTE] The plugin uses sensible defaults but can be customized via configuration.

Option Description Default
api.serverUrl Bundle server URL http://localhost:3200
cache.maxSize Maximum cache size 100MB
cache.filesTtl File time-to-live 1 hour
storage.maxBundleSize Maximum bundle size 50MB

Permissions

The plugin defines the following permissions:

  • allow-download: Enable bundle downloads
  • allow-load: Enable bundle loading
  • deny-download: Disable bundle downloads
  • deny-load: Disable bundle loading

Development

Requirements:

  • Rust 1.77.2 or later
  • Node.js 18 or later
  • pnpm

License

Code: (c) 2024 - CuriousCorrelation

MIT or MIT/Apache 2.0 where applicable.