JuliaCon 2026

AppBundler 1.0 - Bundle your Julia application and beyond
2026-08-12 , Room 1

Bundling applications into native installers such as MSIX, Snap, or DMG usually requires the target platform access and host system utilities. This creates a maintenance burden: each platform needs special setup, and compatibility must be preserved as operating systems evolve and utility behavior changes. AppBundler eliminates this burden by using cross-compiled, open-source utilities distributed through Julia’s Yggdrasil registry. From a single UNIX host (Linux, FreeBSD, or macOS)—with MSIX support on Windows—developers can generate native installers through a consistent, reproducible pipeline.

In this talk, I will explain the architecture behind AppBundler and walk through each supported installer format. I’ll provide an overview of the open-source pipelines that replace host system utilities, then review the configuration files and common options that control application behavior after installation. I will then introduce the AppBundler API design and show how surgical customizations via native override files are supported.

The session continues with a live demo showing how any application exposing @main can be bundled locally with minimal effort. We’ll add an icon, experiment with configuration options, and iterate on the bundle. I’ll then demonstrate how the same application can be packaged automatically on GitHub Actions, including a walkthrough of the Actions panel and release workflows that build installers across platforms with a single click.

Next, I’ll showcase several larger applications that have been successfully bundled with AppBundler. We’ll discuss common pitfalls that make applications non-relocatable and how to resolve them. I’ll cover JuliaC integration, including a demo of a command-line application using the --trim option. I’ll also touch on asset inclusion and referencing via pkgdir(@__MODULE__), and explain how calling AppEnv.init() in @main populates pkgorigins to enable relocation.

The talk will conclude with future directions beyond the 1.0 release, including how AppBundler could evolve to package not only Julia applications, but software written in other programming languages.

I am a full-stack Julia developer with a Ph.D. in physics from TU Delft, and I enjoy simplifying complex concepts and making the impossible possible. I have thorough experience in Julia, HTTP, QML, cryptographic protocols, and system architectures. Find more about me on janiserdmanis.org.

This speaker also appears in: