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.
- Rule-based split routing modules: GeoIP, Surge domain set, Quantumult X filter.
- Share link encoders/decoders: Shadowsocks, SIP002, Trojan, SOCKS5, HTTP and V2rayN
- Subscription parsers: Base64 encoded share links, SIP008, Surge proxy list
- 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 default-ss
and default-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 | Shell executables for the core ytflow-core and a TUI editor ytflow-edit that actually call into entrypoints exposed by ytflow-bin-shared . |
ytflow-bin-shared |
ytflow-bin-shared | Contains the actual code for the binaries. Produces a single cdylib that reuses common dependencies to reduce final artifact size. | ytflow, ytflow-app-util |
ytflow-app-util | Provides utilities for app frontends to handle share links, subscriptions etc. Also exports FFI functions and generates a C header file. | 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!