Coder Social home page Coder Social logo

velopack / velopack.fusion Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 1.0 2.16 MB

Velopack client libraries for a variety of programming langauges

Home Page: https://velopack.io

License: MIT License

Batchfile 1.00% C++ 26.91% C 9.52% C# 20.68% JavaScript 13.86% TypeScript 12.02% CSS 0.04% HTML 0.10% Shell 1.09% Rust 14.78%
automatic-updates cpp desktop dotnet installer linux macos rust squirrel updater

velopack.fusion's Introduction

Velopack Logo

Nuget Discord Build Codecov License Hits

Velopack is an installation and auto-update framework for cross-platform applications. It's opinionated, extremely easy to use with zero config needed. With just one command you can be up and running with an installable application, and it's lightning fast for your users, too.

Features

  • ๐Ÿ˜ Zero config โ€“ Velopack takes your compiler output and generates an installer, updates, delta packages, and self-updating portable package in just one command.
  • ๐ŸŽฏ Cross platform โ€“ Velopack supports building packages for Windows, OSX, and Linux, so you can use one solution for every target.
  • ๐Ÿš€ Automatic migrations - If you are coming from other popular frameworks (eg. Squirrel), Velopack can automatically migrate your application.
  • โšก๏ธ Lightning fast โ€“ Velopack is written in Rust for native performance. Delta packages mean your user only downloads what's changed between versions.
  • ๐Ÿ“” Language agnostic - With support for C#, C++, JS, Rust and more. Use a familiar API for updates no matter what language your project is.
cli_demo.mp4

Documentation

Community

Contributing

Testimonials

I have now got my external facing application using velopack. I am very impressed. Seems to work fabulously well and be much faster both in the initial build and in the upgrading of the software on the end user's machine than Squirrel was. It's amazing and the best installer I've ever used in over 30 years of development. Thanks so much! You are doing some great work! - Stefan (Discord)

Just wanted to say a huge thank you. I've been using Clowd.Squirrel for a couple of years now since Squirrel.Windows wasn't working for me. Just popped into that repository today to look for some documentation and noticed the release of Velopack. How unexpected! It works fantastic and is so much faster, wow! Thank you again, the amount of work that went into both Clowd.Squirrel and Velopack is staggering. It's very appreciated. - Kizari (Discord)

I've used a lot of installer frameworks and Velopack is by far the best. Everything is like magic: you run the installer, and then the app is just open, ready to use. Updates apply and relaunch in ~2 seconds with no UAC prompts. The installer creation process is painless and integrates easily with code signing, and the command-line tool makes it simple to upload your updater files. You don't need to futz with separate installer scripts in some weird language; you can build all those hooks into your main app! The support is also phenominal; every concern I've had has been addressed. This is the future of desktop installers. - RandomEngy (Discord)

velopack.fusion's People

Contributors

caesay avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

nathan-teoh

velopack.fusion's Issues

Fusion API feed rework

In order to fully support the CLI and expose some more fine grained control, we should modify the API

  • new "get_feed()" function to return all available releases (both Rust & CLI)
  • "download" cli function needs to take a release name, and download that specific release.
  • new "get-packages-dir" function to return the path to the current app packages dir (CLI only)

With these changes, it will be possible for an application developer to list all available releases, then choose a specific release to download and apply, rather than being forced to rely on the default version selection behavior.

Support delta packages

At the moment, fusion only supports downloading full releases. The delta logic needs to be replicated here.

Support GitHub Releases

Since update source is now passed by string (From fusion to the cli) we should implement a GithubUpdateSource in rust and then add some regex matching to see if that should be used instead of HttpSource.

Improvements to C++ lib

Future improvements:

  • Qt should have some special support, eg. AutoUpdate from the Qt sample built in
  • Eventually, the Vfusion binary logic is going to get moved into Update.exe, which is already distributed with your app automatically, so you don't need to bring that binary yourself.
  • Add CMake scripts and distribute it on vcpkg so it's easy for developers to install and update.

Compile the sample:

In a c++ cmake project, extending it with libraries is pretty much:

  1. add library repo as submodule
  2. Add 1-2 commands in parent cmake to embed/compile library statically or dynamically
  3. #include <Library.h>
  4. PROFIT!

With vcpkg it's the same except without the first step.

Latest build not available anymore

Hey, the build artifacts appear to have expired. I'm trying to build an integration just using the Fusion CLI so would be great to have access to the latest build without having to build it myself. Would probably be best to have the latest build as a Github Release.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.