JuliaCon 2026

Janis Erdmanis

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.


Sessions

08-12
11:30
30min
AppBundler 1.0 - Bundle your Julia application and beyond
Janis Erdmanis

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.

General
Room 1
08-14
16:45
15min
Jumbo Julia distribution
Janis Erdmanis

Have you ever tried sharing Julia code that computes the Lorenz attractor using DifferentialEquations and visualises it in Makie? I haven't—because the TTFX is unbearable. Users often wait 5+ minutes for compilation during project instantiation, creating an unacceptable first-time experience. What if we could ship precompiled dependencies just like Julia's standard libraries? This is what Jumbo Julia does.

In this talk, I'll explain how Julia distributions work and what's included in Jumbo Julia, including the tradeoffs imposed by package compatibility constraints that can force older versions. I'll demonstrate common workflows and project instantiations to illustrate both capabilities and limitations. Then I'll show you how to create custom distributions for your own package sets. I'll conclude by speculating on how Julia distributions could solve the PkgImage distribution problem in the short term within Pkg itself.

General
Room 1