passepartoutvpn.github.io/about/index.html

169 lines
9.2 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en" itemscope itemtype="http://schema.org/Blog">
<head>
<title>Passepartout, VPN client for Apple platforms</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="author" content="Davide De Rosa" />
<meta name="description" content="Passepartout is a user-friendly VPN client for Apple platforms." />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="apple-mobile-web-app-title" content="Passepartout">
<!-- Twitter -->
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="@keeshux" />
<meta name="twitter:title" content="Passepartout" />
<meta name="twitter:url" content="https://passepartoutvpn.app" />
<meta name="twitter:image" content="https://passepartoutvpn.app/s/logo.png?1734881075" />
<meta name="twitter:description" content="Passepartout is a user-friendly VPN client for Apple platforms." />
<!-- Facebook -->
<meta property="og:type" content="website" />
<meta property="og:url" content="https://passepartoutvpn.app" />
<meta property="og:title" content="Passepartout" />
<meta property="og:site_name" content="Passepartout" />
<meta property="og:description" content="Passepartout is a user-friendly VPN client for Apple platforms." />
<meta property="og:image" content="https://passepartoutvpn.app/s/logo.png?1734881075" />
<!-- Google+ -->
<meta itemprop="name" content="Passepartout" />
<meta itemprop="description" content="Passepartout is a user-friendly VPN client for Apple platforms." />
<meta itemprop="image" content="https://passepartoutvpn.app/s/logo.png?1734881075" />
<link rel="canonical" href="https://passepartoutvpn.app" />
<link rel="author" href="" />
<link rel="stylesheet" href="/s/main.css?1734881075" />
<link rel="stylesheet" href="/s/main-mobile.css?1734881075" media="only screen and (max-width: 600px)" />
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" rel="stylesheet">
<link rel="shortcut icon" href="/s/favicon.ico?1734881075" />
<link rel="apple-touch-icon" href="/s/iphone-icon-precomposed.png?1734881075" />
</head>
<body>
<div id="container">
<header>
<a href="https://passepartoutvpn.app"><img id="logo" src="/s/logo.svg" alt="Passepartout" /></a>
<h1><a href="https://passepartoutvpn.app">Passepartout</a></h1>
<p>Your go-to app for VPN and privacy.</p>
</header>
<main>
<h2 id="about">About</h2>
<ul>
<li><a href="#the-team">The Team</a></li>
<li><a href="#how-passepartout-was-born">How Passepartout was born</a></li>
<li><a href="#the-new-tunnelkit">The “new” TunnelKit</a></li>
<li><a href="#the-story-behind-tunnelkit">The story behind TunnelKit</a></li>
</ul>
<h3 id="the-team">The Team</h3>
<p>Im <a href="https://davidederosa.com">Davide</a>, the “team” behind every aspect of Passepartout.</p>
<p>Bear with me because my duties entail, among others:</p>
<ul>
<li>Planning (<a href="https://github.com/orgs/passepartoutvpn/projects">GitHub Projects</a>)</li>
<li>Design and Development (<a href="https://github.com/passepartoutvpn">GitHub</a>)</li>
<li>Testing (<a href="https://testflight.apple.com/join/K71mtLjZ">TestFlight</a>)</li>
<li>CI/CD (<a href="https://github.com/passepartoutvpn/passepartout/actions">GitHub Actions</a>)</li>
<li>Localization (GPT)</li>
<li>Customer Care (<a href="https://www.reddit.com/r/passepartout">Reddit</a>, App Store)</li>
<li>This website</li>
</ul>
<h3 id="how-passepartout-was-born">How Passepartout was born</h3>
<p>Today, Passepartout is a comprehensive networking/privacy tool <a href="https://apps.apple.com/us/app/passepartout-vpn-client/id1433648537?mt=8">for iPhone, iPad, Mac, and Apple TV</a>.</p>
<p>How did it start?</p>
<p>During my days at PIA, I wondered why there were so many VPN providers doing the same over and over with different skins: an app with a VPN on/off toggle.</p>
<p>I came up with the idea of a <em>single key</em> that would open <em>multiple doors</em>, be it different protocols, providers, or platforms. Thats <a href="https://dictionary.cambridge.org/dictionary/french-english/passe-partout">what the word <em>Passepartout</em> stands for in French</a>, a <em>master key</em>.</p>
<p>Frustrated by the abandonment of OpenVPN Connect, I first published Passepartout in 2018 as an OpenVPN client for iOS based on <a href="#the-story-behind-tunnelkit">TunnelKit</a>, an alternative implementation of OpenVPN that I started in 2017. Through the years, the app has become multiplatform, and WireGuard support was also added.</p>
<p><a href="/s/about/01.png"><img src="/s/about/01.png" alt="The old Mac app" style="width: 100%" /></a></p>
<h3 id="the-new-tunnelkit">The “new” TunnelKit</h3>
<p>Unfortunately, TunnelKit was not designed for the original concept of Passepartout, so <a href="https://www.reddit.com/r/passepartout/comments/1bw4esv/the_looks_of_tunnelkit_20172024/">the app ended up lagging behind its limitations</a>. Beyond that, the library architecture was in general very primitive, tightly coupled to OpenVPN and OpenSSL, and hard to test.</p>
<p>Thats why I dedicated a relevant part of 2023/2024 to a completely new library, <em>PassepartoutKit</em>, a huge rewrite that was, however, worth the pain. Its a well-thought architecture that leverages the experience I gained with TunnelKit and WireGuardKit for OpenVPN and WireGuard connectivity.</p>
<p><em>PassepartoutKit</em> is a game changer in that:</p>
<ul>
<li>It is much easier to deploy and use</li>
<li>It is more stable, for using strict <a href="https://docs.swift.org/swift-book/documentation/the-swift-programming-language/concurrency/">Swift Concurrency</a></li>
<li>It is agnostic of OpenSSL, WireGuard, and even <a href="https://developer.apple.com/documentation/networkextension">Network Extension</a></li>
<li>It handles multiple protocols in a single <a href="https://developer.apple.com/documentation/networkextension/nepackettunnelprovider">Packet Tunnel Provider</a></li>
<li>It is not bound to VPN</li>
<li>It opens the doors to other platforms like Windows and Android</li>
<li>Last but not least, it is widely mockable/testable</li>
</ul>
<p>Contrary to TunnelKit, which is available under the GPL, <em>PassepartoutKit</em> is currently closed-source.</p>
<p>Feel free to <a href="mailto:info@passepartoutvpn.app">contact me</a> for licensing or further information.</p>
<p><a href="/s/about/02.png"><img src="/s/about/02.png" alt="A glance at PassepartoutKit documentation" style="width: 100%" /></a></p>
<h3 id="the-story-behind-tunnelkit">The story behind TunnelKit</h3>
<p><a href="https://github.com/passepartoutvpn/tunnelkit">TunnelKit</a> is a custom Swift/ObjC implementation of the OpenVPN protocol, written from scratch and now superseded by <em>PassepartoutKit</em>.</p>
<p>It all started in 2017, when a former colleague at <a href="https://www.privateinternetaccess.com/">Private Internet Access</a> sent me some Ruby snippets that would connect to an OpenVPN server. He would then ask me: “would you port this to the iPhone?”</p>
<p>Well, not only did I, but the guy left the company a few weeks later. I took care of the project alone for the next 7 years.</p>
<p>TunnelKit is the only stable OpenVPN implementation in native Swift/ObjC out there and, believe it or not, it is relied on by <em>millions</em> of users, be it via my apps or providers like <a href="https://hide.me/">Hide.me</a>, <a href="https://www.privateinternetaccess.com/">PIA</a>, or <a href="https://protonvpn.com/">ProtonVPN</a>.</p>
<p>A pretty <em>big</em> project, huh?</p>
<p><a href="/s/about/03.png"><img src="/s/about/03.png" alt="An old excerpt from TunnelKit" style="width: 100%" /></a></p>
</main>
<footer>
<ul class="contacts">
<li><a href="https://github.com/passepartoutvpn" title="The project on GitHub" class="fab fa-github"></a></li>
<li><a href="https://buymeacoffee.com/passepartout" title="Support with a donation" class="fas fa-coins"></a></li>
<li><a href="https://twitter.com/keeshux" title="Follow the author on Twitter" class="fab fa-twitter"></a></li>
<li><a href="mailto:info@passepartoutvpn.app" title="Submit an inquiry" class="fa fa-envelope"></a></li>
</ul>
<ul class="secondary">
<li><a href="/about/" title="The team and story behind Passepartout">About</a></li>
<li>&mdash;</li>
<li><a href="/faq/" title="Frequently Asked Questions">FAQ</a></li>
<li>&mdash;</li>
<li><a href="/providers/" title="Providers">Providers</a></li>
<li>&mdash;</li>
<li><a href="/disclaimer/" title="Disclaimer">Disclaimer</a></li>
<li>&mdash;</li>
<li><a href="/privacy/" title="Privacy policy">Privacy policy</a></li>
</ul>
<p class="notice">
Copyright (c) 2024 <a href="https://davidederosa.com" title="The author website">Davide De Rosa</a><br />
The logo is taken from the awesome <a href="https://www.iconfinder.com/iconsets/circle-icons-1" title="Circle Icons">Circle Icons</a> set by <a href="https://www.elegantthemes.com/" title="Elegant Themes">Nick Roach</a>
</p>
</footer>
</div>
</body>
</html>