Skip to content

YtFlow/YtFlowCore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

8309837 · May 7, 2024
May 1, 2024
Mar 12, 2024
May 4, 2024
May 7, 2024
May 4, 2024
May 4, 2024
Dec 25, 2021
May 4, 2024
May 1, 2024
Apr 11, 2024
Mar 13, 2024
Feb 10, 2024
Apr 28, 2024

Repository files navigation

YtFlowCore

build tests ci

A modern proxy framework, core of YtFlow.

If you are looking for the UWP app powered by YtFlowCore, please head over to YtFlowApp.

Features

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

Usage

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.

Project Layout

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

Build

Steps to build ytflow-core and ytflow-edit:

  1. Setup rustup and Visual C++ Build Tools on Windows or GCC toolchain on Linux.
  2. Clone this repository.
  3. Rename .cargo/publish.config.toml to .cargo/config.toml.
  4. Run cargo build -p ytflow-bin --release.
  5. 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.

Credits

This project is inspired from: