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.
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.
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.
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.
$ 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
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.
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
Because we are targeting so many languages, to build and test each library you need the following installed: