Juliacon 2024

Creating Enterprise grade Desktop applications with Julia
07-11, 10:00–10:10 (Europe/Amsterdam), For Loop (3.2)

A Desktop application is an ideal way to ship a Julia app to your target audience, especially when you're dealing with air-gapped (No Internet) environments & have concerns over privacy & cost-effectiveness. In this talk, we will discuss on how bundle your Julia app on all 3 major operating systems (Mac, Windows & Linux) and how to overcome challenges (Such as Regulatory compliance, portability, certifications, licensing, etc) that your Julia application would face in an enterprise environment.


Your app can be enterprise ready regardless of whether there is a commercial aspect to it or not. Being enterprise ready will increase the usability of your app by making it usable by a wide variety of audience. Unlike other Desktop apps, Julia apps have a unique trait to them; which needs to be addressed while shipping your app to the target audience.

Following topics will be discussed in this talk. All the aspects discussed in this talk will be backed by more than 8 years of practical experience gained by developing and maintaining Julia based desktop products such as JuliaPro and Pumas (https://pumas.ai/pumas).

  • Your Julia app has to go through cybersecurity compliance frameworks inorder to be accepted by many enterprises, we will discuss on how to make sure your Julia app meets these Regulatory compliance's.
  • Certifying your Julia app is not only a requirement for enterprises, it has become a basic necessity for non-commercial users as well, because modern operating systems are making it difficult to bypass these certifications, we will discuss on how to certify your Julia app on each operating system.
  • We will also discuss on challenges faced while deploying your Julia app in an air-gapped (No Internet) environment and how to overcome them.
  • We will touch base on how to automate your Desktop binary builds using Julia scripts.
  • Upon installation of your app, the Julia dependencies (Artifacts, registries, package source code, environments, etc) that's being shipped by your binary; might be deployed on distributed user environments (Roaming profiles) and multi-user environments, we will discuss on how your Julia app should handle these kind of environments.
  • Support for a License Manager in your Julia app.
  • Code obfuscation for your private Julia code that's being shipped in your Desktop binary.
See also: Presentation (64.7 KB)