{"id":13480862,"url":"https://github.com/YtFlow/Maple","last_synced_at":"2025-03-27T11:31:00.699Z","repository":{"id":37671356,"uuid":"347320205","full_name":"YtFlow/Maple","owner":"YtFlow","description":"A lightweight Universal Windows proxy app based on https://github.com/eycorsican/leaf","archived":false,"fork":false,"pushed_at":"2025-03-05T13:46:56.000Z","size":1139,"stargazers_count":1281,"open_issues_count":7,"forks_count":128,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-03-24T05:10:04.508Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/YtFlow.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":"2021-03-13T08:54:38.000Z","updated_at":"2025-03-23T23:29:17.000Z","dependencies_parsed_at":"2023-02-02T13:30:43.567Z","dependency_job_id":"86095dab-b45a-4b62-aa4a-2640ed93ed32","html_url":"https://github.com/YtFlow/Maple","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YtFlow%2FMaple","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YtFlow%2FMaple/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YtFlow%2FMaple/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YtFlow%2FMaple/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/YtFlow","download_url":"https://codeload.github.com/YtFlow/Maple/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245836001,"owners_count":20680305,"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":[],"created_at":"2024-07-31T17:00:45.971Z","updated_at":"2025-03-27T11:30:59.769Z","avatar_url":"https://github.com/YtFlow.png","language":"C++","funding_links":[],"categories":["C++"],"sub_categories":[],"readme":"# Maple\nA lightweight Universal Windows proxy app based on https://github.com/eycorsican/leaf\n\n## Features\n\n- Comes with Leaf core:\n   - Domain name resolution with built-in DNS processor\n   - `tun`/`shadowsocks`/`socks`/`trojan`/`ws` chainable inbounds\n   - `direct`/`drop`/`tls`/`ws`/`h2`/`shadowsocks`/`obfs`/`vmess`/`trojan`/`socks` chainable outbounds\n   - `failover`/`tryall`/`static` composed outbounds\n   - `amux` multiplexing\n   - Rule system based on IP, GeoIP and domain name\n   - External rules from GeoIP database and V2Ray [Domain List Community](https://github.com/v2fly/domain-list-community)\n- Configuration management\n- Monaco-based conf editor with IntelliSence support\n- Outbound network adapter selection\n- UWP VPN Platform as TUN provider\n\n## Screenshots\n\n![Settings Page with IntelliSense demo](image/screenshot-setting-editor-intellisense.png?raw=true)\n\n## Getting Started\n\nMaple as a UWP app is distributed for sideloading only. When installed, it acts as a VPN provider which you will find in the VPN Settings. Use Maple app for configuration management, as well as adding external databases.\n\n### Install\n\n1. Grab the latest package from [Release](https://github.com/YtFlow/Maple/releases) page.\n2. Extract everything from the package.\n3. Right click the certificate (named `Maple.App_x.y.z.0_x64.cer`) and select Install Certificate.\n4. On the Certificate Import Wizard, select **Local Machine**. Administrator privileges may be required to proceed.\n5. Import the certificate to the **Trusted Root Certification Authorities** folder. *Note: failure to import the certificate or choosing a wrong certificate store will prevent you from installing the app.*\n6. Open the AppxBundle (named `Maple.App_x.y.z.0_x64.appxbundle`) and follow the instructions until Maple is successfully installed on your computer.\n\n### Set up\n\n1. Launch Maple from the Start menu.\n2. Edit configuration. Refer to https://github.com/eycorsican/leaf/blob/master/README.zh.md for further explanation.\n3. Save the configuration file.\n4. If any `EXTERNAL` or `GEOIP` directive is used, drag external database files into `Config` area. V2Ray Domain List Community database can be fetched at https://github.com/v2ray/domain-list-community/releases/latest/download/dlc.dat . For GeoIP database, please go to [MaxMind Developer Portal](https://dev.maxmind.com/geoip/geolite2-free-geolocation-data) and sign up for free download.\n5. Rename these databases accordingly (if applicable). By default, GeoIP database is `geo.mmdb` and V2Ray Domain List Community database is `site.dat`.\n6. Go to Setting page in Maple. Choose your network adapter such as `Ethernet` or `WLAN`.\n7. Launch [Windows Settings](\tms-settings:network-vpn) app.\n8. Add a VPN connection.\n   - For VPN provider, choose **Maple**.\n   - In the Connection name box, enter **Maple**.\n   - In the Server name or address box, enter https://github.com/YtFlow/Maple .\n   - Select Save.\n9. If any Proxy Server has a loopback address (`127.0.0.1` or `::1`), make sure Loopback Exemption is enabled for Maple. See https://docs.microsoft.com/en-us/previous-versions/windows/apps/hh770532(v=win.10) .\n\n### Connect\n\n- Simply click the toggle button on the title bar, or\n- In Windows 11, select the battery, network, or volume icon to open the Quick Settings panel. Find **Maple** in VPN panel and connect, or\n- In Windows 10, select the Network  icon on the taskbar, and click Maple. In [Windows Settings](\tms-settings:network-vpn) app, select **Maple**, and then Connect.  \n\n\u003cdel\u003e*Note: Modifying the current configuration file while VPN is connected will take effect immediately.*\u003c/del\u003e Hot reloading may be removed in a future release.\n\n## TODO\n\n- [x] VPN lifecycle management on Maple UI\n- [x] Better editing experience\n- [x] `external` entries\n- [x] Custom configuration folder location\n- [ ] Log collection (currently logs are sent to Visual Studio Output window for debugging only)\n- [ ] Unsandboxed Leaf core ([#29](https://github.com/YtFlow/Maple/issues/29))\n- [ ] VPN On Demand\n- [ ] Configurable routing entries\n- [x] IPv6 support\n\n## Build\n\nTo build Leaf and Maple, you will need:\n\n- a Rust `nightly-x86_64-pc-windows-msvc` toolchain\n- Windows 10 SDK 10.0.22621\n- Visual Studio 2022 with C++ Development Workflow\n   -  [C++/WinRT Visual Studio extension](https://marketplace.visualstudio.com/items?itemName=CppWinRTTeam.cppwinrt101804264) must be installed to generate Windows Metadata.\n- Node.js 19.x or higher\n\nBuild steps:\n\n1. **Recursively** clone this repository.\n2. Open a PowerShell Prompt.\n3. Change working directory to `leaf`.\n4. `cargo build -p leaf-ffi -Z build-std=std,panic_abort --target x86_64-uwp-windows-msvc`.  \n   For Release builds, use `cargo build -p leaf-ffi -Z build-std=std,panic_abort --target x86_64-uwp-windows-msvc --release`.  \n   See also https://github.com/eycorsican/leaf#build .\n5. Change working directory to `Maple.App\\MonacoEditor`.\n6. Build Monaco editor and language support: `npm install \u0026\u0026 npm run build`.\n7. Open `Maple.sln` in Visual Studio.\n8. Build Solution.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FYtFlow%2FMaple","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FYtFlow%2FMaple","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FYtFlow%2FMaple/lists"}