Skip to content
This repository has been archived by the owner on Oct 8, 2024. It is now read-only.
/ velopack.fusion Public archive

Velopack client libraries for a variety of programming langauges

License

Notifications You must be signed in to change notification settings

velopack/velopack.fusion

This branch is 20 commits behind master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

3250a10 · Feb 27, 2024
Feb 27, 2024
Feb 27, 2024
Feb 27, 2024
Feb 27, 2024
Feb 27, 2024
Feb 27, 2024
Feb 26, 2024
Feb 26, 2024
Feb 27, 2024
Feb 27, 2024
Feb 25, 2024
Feb 23, 2024
Feb 25, 2024

Repository files navigation

Velopack Logo

Discord Crates.io Build License

Velopack Fusion

Velopack is an installer and automatic update framework for cross-platform desktop applications.

Fusion is the home for client libraries which assist developers integrating their applications with Velopack. Fusion also provides a simple command line interface for downloading and staging updates, so if your language does not have a client library you can still use the CLI to integrate your app.

Documentation / Getting Started

The full Velopack documentation for the framework is available at https://velopack.io/docs, however there may be some additional library-specific documentation linked below.

There are a variety of getting started guides also available at https://velopack.io/docs, so be sure to check it out first.

Supported Languages

Lang Status Runtime Deps Sync Async Links
C# ✅ Done ✅ None ✅ Yes ✅ Yes quick start, docs, samples, nuget.org
Rust ✅ Done ✅ None ✅ Yes ✅ Yes quick start, docs, samples, crates.io
JS ✅ Done ✅ None ✅ Yes ✅ Yes -
C++ ✅ Done 🔶 vfusion.exe ✅ Yes ❌ No velopack.hpp
Java Planned - - - -
Swift Planned - - - -
Python Planned - - - -
Go Planned - - - -

Want to see your programming language get a client library but it's not listed here? Open an issue!

Warning

If your library requires vfusion.exe in the table above as a runtime dependency, it's currently up to you to manually distribute this small binary (1.3mb) with your application. In the future, this will be automated.

Other Languages

If your programming language is not listed above, or is not completed, you can always redistribute the vfusion.exe binary with your application and use the command line interface to download updates.

Command Line Reference

$ vfusion.exe -h
Velopack Fusion manages and downloads packages.
https://github.com/velopack/velopack

Usage: vfusion.exe [OPTIONS]
       vfusion.exe get-version [OPTIONS]
       vfusion.exe get-packages [OPTIONS]
       vfusion.exe check [OPTIONS] --url <URL>
       vfusion.exe download [OPTIONS] --url <URL> --name <NAME>

Options:
      --verbose  Print debug messages to console / log
  -h, --help     Print help
  -V, --version  Print version

vfusion.exe get-version:
Prints the current version of the application

vfusion.exe get-packages:
Prints the path to the packages directory

vfusion.exe check:
Checks for available updates
      --url <URL>       URL or local folder containing an update source
      --downgrade       Allow version downgrade
      --channel <NAME>  Explicitly switch to a specific channel

vfusion.exe download:
Download/copies an available remote file into the packages directory
      --url <URL>       URL or local folder containing an update source
      --name <NAME>     The name of the release to download
      --channel <NAME>  Explicitly switch to a specific channel

How does Velopack Fusion work?

Velopack has two fully implemented reference libraries, one for C# and one for Rust.

For other languages, the Rust library is compiled into a small binary (vfusion.exe) which exposes the core functionality as a CLI.

The rest of the libraries available here are transpiled from the fusion (fut) language, which is a programming langauge which does not compile, and is designed to be transpiled into other languages. These light-weight transpiled libraries interface with the fusion cli to provide a native-like programming experience, which is why they require the fusion binary bundled with your application.

Compiling Fusion

There is a custom build system written in C#. To compile all of Fusion you can run the following commands in your terminal:

git clone https://github.com/velopack/velopack.fusion.git
cd velopack.fusion
dotnet run

Prerequisites

Because we are targeting so many languages, to build and test each library you need the following installed: