{"id":27160374,"url":"https://github.com/passepartoutvpn/partout","last_synced_at":"2025-04-08T23:45:01.226Z","repository":{"id":272578007,"uuid":"915988459","full_name":"passepartoutvpn/partout","owner":"passepartoutvpn","description":"A scalable framework to build modern network apps.","archived":false,"fork":false,"pushed_at":"2025-04-07T11:04:12.000Z","size":123,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-07T11:36:21.196Z","etag":null,"topics":["combine","ios","macos","network-extension","openvpn","openvpn-client","osx","ovpn","tvos","vpn","wireguard"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/passepartoutvpn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-13T08:41:03.000Z","updated_at":"2025-04-07T11:04:15.000Z","dependencies_parsed_at":"2025-01-15T11:57:36.621Z","dependency_job_id":"bf610ca9-2813-4be9-81cd-9bb20c43f011","html_url":"https://github.com/passepartoutvpn/partout","commit_stats":null,"previous_names":["passepartoutvpn/passepartoutkit","passepartoutvpn/partout"],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passepartoutvpn%2Fpartout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passepartoutvpn%2Fpartout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passepartoutvpn%2Fpartout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passepartoutvpn%2Fpartout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/passepartoutvpn","download_url":"https://codeload.github.com/passepartoutvpn/partout/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247947820,"owners_count":21023058,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["combine","ios","macos","network-extension","openvpn","openvpn-client","osx","ovpn","tvos","vpn","wireguard"],"created_at":"2025-04-08T23:44:59.548Z","updated_at":"2025-04-08T23:45:01.220Z","avatar_url":"https://github.com/passepartoutvpn.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"![iOS 15+](https://img.shields.io/badge/ios-15+-green.svg)\n![macOS 12+](https://img.shields.io/badge/macos-12+-green.svg)\n![tvOS 17+](https://img.shields.io/badge/tvos-17+-green.svg)\n[![License GPLv3](https://img.shields.io/badge/license-GPLv3-lightgray.svg)](LICENSE)\n\n[![Release](https://github.com/passepartoutvpn/partout/actions/workflows/release.yml/badge.svg)](https://github.com/passepartoutvpn/partout/actions/workflows/release.yml)\n\n# Partout\n\nA scalable framework to build modern network apps.\n\nBinary distribution for these architectures:\n\n- macosx\n- iphonesimulator\n- appletvsimulator\n\n## Installation\n\n### Testing\n\nClone the library codebase:\n\n```\n$ git clone https://github.com/passepartoutvpn/partout\n```\n\nClone the app codebase in the \"Passepartout\" directory (do not recurse into submodules):\n\n```\n$ git clone https://github.com/passepartoutvpn/passepartout Passepartout\n```\n\nEdit `Passepartout/Packages/Partout-Framework/Package.swift` and set:\n\n```\nenvironment = .onlineDevelopment\n```\n\nEdit `Demo/Config.xcconfig` with your developer details. You must comply with all the capabilities and entitlements in the main app and the tunnel extension target.\n\nPut your configuration files into `Demo/App/Files` with these names:\n\n- OpenVPN configuration: `test-sample.ovpn`\n- OpenVPN credentials (in two lines): `test-sample.txt`\n- WireGuard configuration: `test-sample.wg`\n\nOpen `Demo.xcodeproj` and run the `PartoutDemo` target on your Mac or iOS/tvOS Simulators.\n\n## License\n\nCopyright (c) 2025 Davide De Rosa. All rights reserved.\n\nThis project is licensed under the [GPLv3][license-gpl]. The core package is distributed as a binary framework in [GitHub Releases][github-releases] and is licensed under the [MIT][license-mit].\n\nIf you want to use this library for proprietary or commercial purposes, please [contact me privately][license-contact].\n\n## Credits\n\n- [GenericJSON][credits-genericjson]\n\n### OpenVPN\n\n© Copyright 2025 OpenVPN | OpenVPN is a registered trademark of OpenVPN, Inc.\n\n### WireGuard\n\n© Copyright 2015-2025 Jason A. Donenfeld. All Rights Reserved. \"WireGuard\" and the \"WireGuard\" logo are registered trademarks of Jason A. Donenfeld.\n\n## Contacts\n\nTwitter: [@keeshux][about-twitter]\n\nWebsite: [passepartoutvpn.app][about-website]\n\n[license-gpl]: LICENSE.gpl\n[license-mit]: LICENSE.mit\n[license-contact]: mailto:license@passepartoutvpn.app\n\n[github-releases]: https://github.com/passepartoutvpn/partout/releases\n[credits-genericjson]: https://github.com/iwill/generic-json-swift\n\n[about-twitter]: https://twitter.com/keeshux\n[about-website]: https://passepartoutvpn.app\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpassepartoutvpn%2Fpartout","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpassepartoutvpn%2Fpartout","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpassepartoutvpn%2Fpartout/lists"}