Metadata-Version: 2.1
Name: Furious-GUI
Version: 0.2.5.dev0
Summary: A PySide6-based cross platform GUI client that launches your beloved GFW to outer space.
Home-page: https://github.com/LorenEteval/Furious
Author: Loren Eteval
Author-email: loren.eteval@proton.me
License: GPL v3.0
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Intended Audience :: End Users/Desktop
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Operating System :: OS Independent
Classifier: Topic :: Internet
Classifier: Topic :: Internet :: Proxy Servers
Description-Content-Type: text/markdown
License-File: LICENSE

# Furious

[![Build Furious](https://github.com/LorenEteval/Furious/actions/workflows/wheels.yml/badge.svg?branch=main)](https://github.com/LorenEteval/Furious/actions/workflows/wheels.yml)

A PySide6-based cross platform GUI client that launches your beloved GFW to outer space.
Support [Xray-core](https://github.com/XTLS/Xray-core)
and [hysteria](https://github.com/apernet/hysteria).

![Furious](https://raw.githubusercontent.com/LorenEteval/Furious/main/Icons/png/rocket-takeoff-window-400x400.png)

## Features

* Runs on Windows, macOS and Linux.
* Built-in support for [Xray-core](https://github.com/XTLS/Xray-core)
  and [hysteria](https://github.com/apernet/hysteria). Cores are actually Python bindings that shipped with the source
  code. See more information: [Xray-core-python](https://github.com/LorenEteval/Xray-core-python)
  and [hysteria-python](https://github.com/LorenEteval/hysteria-python).
* Support TUN mode on Windows and macOS. (experimental, requires administrator/root privilege)
* Support import from JSON or share link (`vmess://...`, `vless://...` or `ss://`, including the
  newest [REALITY](https://github.com/XTLS/REALITY) share standard).
* Support export to JSON, share link or QRCode.
* Built-in routing mode support: `Bypass Mainland China(with Ads filter)`, `Bypass Iran(with Ads filter)`,
  [`Route My Traffic Through Tor`](https://github.com/LorenEteval/Furious/wiki/Route-My-Traffic-Through-Tor)
  and `Global`. You can also choose to customize your own routing rules.
* Built-in editor support.
* VPN-client user experience.
* Support system theme detection and switch to dark/light theme automatically.
* Multiple language support: English, Spanish, Simplified Chinese and Traditional Chinese.
* Built-in user-friendly feature such as startup on boot.
* ...

## Install

There are **two** ways of installing Furious:

* Download zip file in the [release](https://github.com/LorenEteval/Furious/releases) page that contains pre-built
  binaries. In this case there is no dependency required. (only for **Windows** users)
* Install via `pip` (requires **Python 3.8 and above**). You need to follow instructions below. (available for **all** platform)

### Core Building Tools

> Note: These steps are the same in [Xray-core-python](https://github.com/LorenEteval/Xray-core-python)
> or [hysteria-python](https://github.com/LorenEteval/hysteria-python) *Core Building Tools* steps.

As mentioned above, cores are shipped as Python bindings to support cross-platform running. So to install Furious
via `pip` you must have tools ready for building these bindings for your current platform first. Core building requires:

* [go](https://go.dev/doc/install) `1.20.x` in your PATH. To check go is ready,
  type `go version`. Also, if google service is blocked in your region(such as Mainland China), you have to configure
  your GOPROXY to be able to pull go packages. For Chinese users, refer to [goproxy.cn](https://goproxy.cn/) for more
  information.
* [cmake](https://cmake.org/download/) in your PATH. To check cmake is ready, type `cmake --version`.
* A working GNU C++ compiler(i.e. GNU C++ toolchains). To check GNU C++ compiler is ready, type `g++ --version`. These
  tools should have been installed in Linux or macOS by default. If you don't have GNU C++ toolchains(especially for
  Windows users) anyway:

    * For Linux users: type `sudo apt update && sudo apt install g++` and that should work out fine.
    * For Windows users: install [MinGW-w64](https://sourceforge.net/projects/mingw-w64/files/mingw-w64/)
      or [Cygwin](https://www.cygwin.com/) and make sure you have add them to PATH.

These tools should be installed easily using `brew install` on macOS, or using `sudo apt install` on Linux.

### Install Furious

> Note: Install Furious in a Python virtual environment(i.e. venv) is recommended.

```
pip install Furious-GUI
```

Launch Furious, type:

```
Furious
```

## Run From Source

Clone this repository and enter the project folder. Install requirements:

> Note: Install requirements in a Python virtual environment(i.e. venv) is recommended.

> Note: To install requirements successfully you will also need
> those [Core Building Tools](https://github.com/LorenEteval/Furious#core-building-tools) above.

```
pip install -r requirements.txt
```

Run:

```
python -m Furious
```

> Note: Furious will ignore current startup on boot request if it's lauched from source.

## Wiki

* [Route My Traffic Through Tor](https://github.com/LorenEteval/Furious/wiki/Route-My-Traffic-Through-Tor)
* [TUN Mode](https://github.com/LorenEteval/Furious/wiki/TUN-Mode)

## Build Status

See the build result in [github actions](https://github.com/LorenEteval/Furious/actions).

| Platform     | Python 3.8-Python 3.11 |
|--------------|:----------------------:|
| ubuntu 20.04 |   :heavy_check_mark:   |
| ubuntu 22.04 |   :heavy_check_mark:   |
| windows-2019 |   :heavy_check_mark:   |
| windows-2022 |   :heavy_check_mark:   |
| macos-11     |   :heavy_check_mark:   |
| macos-12     |   :heavy_check_mark:   |
| macos-13     |   :heavy_check_mark:   |

## Core Installation Script

Below are some one-click/automatic installation script that's been tested to work in Furious.

| Project Address                                                   |  Supported Core Installation  | Share Link Import Support? | JSON Import Support? |
|-------------------------------------------------------------------|:-----------------------------:|:--------------------------:|:--------------------:|
| [233boy/v2ray](https://github.com/233boy/v2ray)                   |          v2ray-core           |            Yes             |          /           |
| [mack-a/v2ray-agent](https://github.com/mack-a/v2ray-agent)       | v2ray-core/Xray-core/hysteria |            Yes             |         Yes          |
| [zxcvos/Xray-script](https://github.com/zxcvos/Xray-script)       |           Xray-core           |            Yes             |          /           |
| [aleskxyz/reality-ezpz](https://github.com/aleskxyz/reality-ezpz) |           Xray-core           |            Yes             |          /           |
| [emptysuns/Hi_Hysteria](https://github.com/emptysuns/Hi_Hysteria) |           hysteria            |             No             |         Yes          |

## License

License under [GPL v3.0](https://github.com/LorenEteval/Furious/blob/main/LICENSE).

---

## 功能

* 在Windows、macOS和Linux上运行。
* 内置对[Xray-core](https://github.com/XTLS/Xray-core)和[hysteria](https://github.com/apernet/hysteria)的支持。
  Core实际是与源代码一起发行的Python绑定。更多信息: [Xray-core-python](https://github.com/LorenEteval/Xray-core-python), [hysteria-python](https://github.com/LorenEteval/hysteria-python)。
* 在Windows和macOS上支持TUN模式。（实验性功能，需要管理员/root权限）
* 支持从JSON或分享链接导入（`vmess://...`，`vless://...`或`ss://`，包括最新的[REALITY](https://github.com/XTLS/REALITY)
  分享标准）。
* 支持导出为JSON、分享链接或二维码。
* 内置路由模式支持：`绕过中国大陆（带广告过滤）`、`绕过伊朗（带广告过滤）`、
  [`通过Tor路由我的流量`](https://github.com/LorenEteval/Furious/wiki/Route-My-Traffic-Through-Tor)
  和`全球`。也可选择使用自己的路由规则。
* 内置编辑器支持。
* VPN客户端的使用体验。
* 支持系统主题检测并自动切换深色/浅色主题。
* 多语言支持：英语、西班牙语、简体中文和繁体中文。
* 内置用户友好的功能，例如开机自启动等。
* ...

## 安装

有**两种**安装Furious的方式：

* 在[release](https://github.com/LorenEteval/Furious/releases)界面下载打包好的二进制文件。不需要任何依赖。（仅适用于**Windows**用户）
* 通过`pip`安装（需要**Python 3.8及以上**），且需要按照以下步骤进行操作。（适用于**所有**平台）

### Core编译工具

> 注意: 这些步骤与[Xray-core-python](https://github.com/LorenEteval/Xray-core-python)
> 和[hysteria-python](https://github.com/LorenEteval/hysteria-python)中*Core Building Tools*一节的步骤一样。

根据上文所述，Core是对应的Python绑定以支持跨平台运行。所以通过`pip`安装Furious首先得准备好当前平台的Core编译工具。编译Core需要：

* [go](https://go.dev/doc/install)在PATH中。建议使用go 1.20.0及以上版本。要检查go是否就绪，输入`go version`
  。另外，如果当前所在地区（例如中国大陆）屏蔽了google服务，还需要配置GOPROXY才能拉取go包。对于中国用户，请访问[goproxy.cn](https://goproxy.cn/)
  了解更多信息。
* [cmake](https://cmake.org/download/)在PATH中. 要检查cmake是否就绪，输入`cmake --version`。
* GNU C++编译器（即GNU C++工具链）。要检查GNU C++编译器是否准备就绪，输入`g++ --version`
  。默认情况下，这些工具应该已安装在Linux或macOS中。如果仍然没有GNU C++工具链（特别是对于Windows用户）：

    * 对于Linux用户：输入`sudo apt update && sudo apt install g++`。
    * 对于Windows用户：安装[MinGW-w64](https://sourceforge.net/projects/mingw-w64/files/mingw-w64/)
      或[Cygwin](https://www.cygwin.com/)并确保已将它们添加至PATH。

这些工具可用`brew install`在macOS上安装，或者用`sudo apt install`在Linux上安装。

### 安装Furious

> 注意：推荐在Python虚拟环境(i.e. venv)中安装Furious。

```
pip install Furious-GUI
```

启动Furious，输入：

```
Furious
```

## 从源码运行

克隆该仓库并进入项目文件夹。安装所需依赖包：

> 注意：推荐在Python虚拟环境(i.e. venv)中安装依赖。

> 注意：为了安装依赖包成功，仍然需要准备好上文中的Core编译工具。

```
pip install -r requirements.txt
```

运行:

```
python -m Furious
```

> 注意：如果从源码运行，Furious将忽略当前的开机自启动请求。

## License

License under [GPL v3.0](https://github.com/LorenEteval/Furious/blob/main/LICENSE).
