The year is ending, and in this last quarter I had to reorganize a few priorities of the project. Let me tell you more about them.
Remote configuration
A few months ago, I introduced the use of remote feature flags in Passepartout. This was a game-changer to avoid disruption when making potentially dangerous changes to the app behavior, and allowed me to make huge leaps forward when it comes to the cross-platform initiative.
During September and October, I went through the activation of the new OpenVPN and WireGuard cross-platform implementations under the hood, which from time to time led to inevitable bugs. This time, though, I could turn off the faulty code instantly without going through Apple review. The approach sped up the internal app evolution immensely, and the upcoming 3.6.0 should wrap up the most difficult stage of porting Passepartout to new platforms, which was the VPN layer.
Thanks to all the kind users that helped me resolve the bugs that emerged along the way. I couldn’t make it without your support.
Android MVP
This goal alone should shed light on those cross-platform toggles in Preferences > Advanced that some users may have noticed recently in Passepartout.
Together with remote configurations, those toggles allowed me to live-test the new cross-platform implementations of the OpenVPN/WireGuard layers. If things went really wrong, turning off the remote configuration would immediately restore operation. Rinse and repeat until stability. The result of this process is however amazing, because it’s the living proof that Passepartout will work outside of the Apple platforms without going through long and flaky beta phases.
That’s why a stable 3.6.0 would mean that things are finally aligned to start the foundations of non-Apple apps, and Passepartout for Android is the first one in my list. We’re talking about a very minimal app here, but last summer I’ve done enough tests to confirm that the VPN functionality of Partout works on Android. Windows and Linux are planned for the first half of 2026, but take it with a grain of salt, nothing is set in stone.
Interoperability
Partout already operates on data structures that are very friendly to import/export operations, but Passepartout didn’t have a UI that exposed them. Version 3.6.0 will introduce a few features for that matter, specifically:
- Export a profile in a human-readable Partout/Passepartout JSON format, also suitable for import.
- Share a profile via AirDrop or any other available means.
- Import a profile via text or QR, to increase feature-parity with the official WireGuard app in particular.
- Copy modules across profiles, as discussed here.
Sharing buttons will be available through the “iCloud and Sharing” paywall, a feature included in all the “Core” and “Complete” packages.
Going forward, the JSON format will be the universal standard for all the Partout/Passepartout apps, and regardless of the target OS. I like the idea of promoting a custom file format as a crucial step towards brand-awareness. It goes without saying, other protocol-specific formats keep being supported for import, and later versions will also be able to export single modules like OpenVPN (as .ovpn) and WireGuard (as .conf).
Farewell to OpenVPN compression
Compression support will be removed from OpenVPN in December 2025 due to the old VORACLE vulnerability. OpenVPN Inc. has deprecated compression for years, and any decently sized VPN provider shouldn’t be using compression at the time being. Some users may still be affected in legacy environments, but this is non-negotiable.
Therefore, by 2026, compression will be gone for good in Passepartout. Make sure to update your server settings accordingly, or encourage your providers to not use compression in case they do.
WireGuard in providers
Let’s get this straight. Providers are the most annoying feature to maintain in Passepartout, to the point that sometimes I regret having introduced it (heh). Two months ago, I was about to add the WireGuard integration to providers, but then I had to take a step back because the current implementation of the Passepartout providers bears an excessive amount of complexity compared to the value that it offers.
So, this had to be taken more carefully to prevent progressive rot of the codebase. The providers in general will be re-thought and simplified, once again, and only after that will the WireGuard integration be reconsidered. For what it’s worth, I’ll try my best to meet the Mullvad deadline.
If you have suggestions about how you would integrate providers in Passepartout, please post them on Reddit.