A modern proxy framework, core of YtFlow.
If you are looking for the UWP app powered by YtFlowCore, please head over to YtFlowApp.
- Fully customizable. Design your own network flow!
- Multiple inbound types: VPN, SOCKS5.
- Supports common proxy protocols: Shadowsocks, Trojan, VMess, SOCKS5 and HTTP.
- Flexible outbound transports: simple-obfs, WebSocket, TLS etc.
- DNS resolvers at your option: libc resolver, classic DNS over UDP, DNS over HTTPS.
- GeoIP based split routing.
- Runs on Linux, macOS and Universal Windows Platform.
Use ytflow-edit
to generate a new database file conf.db
and a profile my_profile
, and edit plugins accordingly. For newcomers, you may be interested in the profile-shadowsocks
and profile-redir
plugins. Read the YtFlowCore Book to learn more about configuration.
When the profile is ready, execute ytflow-core --db-file conf.db my_profile
to launch YtFlowCore.
Package | Description | Dependency |
---|---|---|
ytflow | Includes all components and plugins to run a YtFlowCore instance. | - |
ytflow-bin | Produces the core executable ytflow-core and a TUI editor ytflow-edit . |
ytflow |
ytflow-ffi | Exports FFI functions into a static library and generates a C header file. | ytflow |
ytflow-uwp-plugin | UWP VPN related core wrapper. Provides a UWP VPN plugin implementation. | ytflow |
Steps to build ytflow-core
and ytflow-edit
:
- Setup rustup and Visual C++ Build Tools on Windows or GCC toolchain on Linux.
- Clone this repository.
- Rename
.cargo/publish.config.toml
to.cargo/config.toml
. - Run
cargo build -p ytflow-bin --release
. - If no error occurrs, you can find the binaries in
target/release/
.
To build for YtFlowApp, please refer to the build steps on https://github.com/YtFlow/YtFlowApp/blob/main/README.md.
This project is inspired from:
- shadowsocks-rust
- Leaf
- Project V
- ... and many more others!