Git Product home page Git Product logo

maple's Introduction

Maple

A lightweight Universal Windows proxy app based on https://github.com/eycorsican/leaf

Features

  • Comes with Leaf core:
    • Domain name resolution with built-in DNS processor
    • tun/http/socks/trojan/ws chainable inbounds
    • direct/drop/tls/ws/h2/shadowsocks/vmess/trojan/socks chainable outbounds
    • failover/tryall/random/retry composed outbounds
    • amux multiplexing
    • Rule system based on IP, GeoIP and domain name
    • External rules from GeoIP database and V2Ray Domain List Community
  • Configuration management
  • Outbound network adapter selection
  • UWP VPN Platform as TUN provider

Screenshots

Settings Page

Getting Started

Maple 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.

Install

  1. Grab the latest package from Release page.
  2. Extract everything from the package.
  3. Right click the certificate (named Maple.App_x.y.z.0_x64.cer) and select Install Certificate.
  4. On the Certificate Import Wizard, select Local Machine. Administrator privileges may be required to proceed.
  5. 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.
  6. Open the AppxBundle (named Maple.App_x.y.z.0_x64.appxbundle) and follow the instructions until Maple is successfully installed on your computer.

Set up

  1. Launch Maple from the Start menu.
  2. Edit configuration. Refer to https://github.com/eycorsican/leaf/blob/master/README.zh.md for further explanation.
  3. Save the configuration file.
  4. 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, see this script for inspiration.
  5. Rename these databases accordingly (if applicable). By default, GeoIP database is geo.mmdb and V2Ray Domain List Community database is site.dat.
  6. Go to Setting page in Maple. Choose your network adapter such as Ethernet or WLAN.
  7. Launch Windows Settings app.
  8. Add a VPN connection.
    • For VPN provider, choose Maple.
    • In the Connection name box, enter Maple.
    • In the Server name or address box, enter https://github.com/YtFlow/Maple .
    • Select Save.
  9. 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) .

Connect

  1. Launch Windows Settings app.
  2. In the VPN Settings, select Maple, and then Connect.
    Note: Modifying the current configuration file while VPN is connected will take effect immediately.
  3. Select Disconnect to disconnect.

TODO

  • VPN lifecycle management on Maple UI
  • Better editing experience
  • Log collection (currently logs are sent to Visual Studio Output window for debugging only)
  • external entries
  • VPN On Demand
  • Configurable routing entries

Build

To build Leaf and Maple, a Rust nightly-x86_64-pc-windows-msvc toolchain, Windows 10 SDK 10.0.19041 and Visual Studio 2019 with C++ Development Workflow are required. C++/WinRT Visual Studio extension must be installed to generate Windows Metadata.

  1. Recursively clone this repository.
  2. Open a PowerShell Prompt.
  3. Change working directory to leaf/leaf-ffi.
  4. cargo build -Z build-std=std,panic_abort --target x86_64-uwp-windows-msvc.
    For Release builds, use cargo build -Z build-std=std,panic_abort --target x86_64-uwp-windows-msvc --release.
    See also https://github.com/eycorsican/leaf#build .
  5. Open Maple.sln in Visual Studio.
  6. Build Solution.

maple's People

Contributors

bdbai avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.