-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
documentation: Bump version & Refactor docs
- Loading branch information
1 parent
c39b52c
commit f10e0f6
Showing
105 changed files
with
1,842 additions
and
1,767 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -14,7 +14,7 @@ MAIN_PARAMS = $(PARAMS) -tags $(TAGS) | |
MAIN = ./cmd/sing-box | ||
PREFIX ?= $(shell go env GOPATH) | ||
|
||
.PHONY: test release | ||
.PHONY: test release docs | ||
|
||
build: | ||
go build $(MAIN_PARAMS) $(MAIN) | ||
|
@@ -182,6 +182,14 @@ lib_install: | |
go install -v github.com/sagernet/gomobile/cmd/[email protected] | ||
go install -v github.com/sagernet/gomobile/cmd/[email protected] | ||
|
||
docs: | ||
mkdocs serve | ||
|
||
publish_docs: | ||
mkdocs gh-deploy -m "Update" --force --ignore-version --no-history | ||
|
||
docs_install: | ||
pip install --force-reinstall mkdocs-material=="9.*" mkdocs-static-i18n=="1.2.*" | ||
clean: | ||
rm -rf bin dist sing-box | ||
rm -f $(shell go env GOPATH)/sing-box | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
# :material-decagram: Features | ||
|
||
#### UI options | ||
|
||
* Display realtime network speed in the notification | ||
|
||
#### Service | ||
|
||
SFA allows you to run sing-box through ForegroundService or VpnService (when TUN is required). | ||
|
||
#### TUN | ||
|
||
SFA provides an unprivileged TUN implementation through Android VpnService. | ||
|
||
| TUN inbound option | Available | Note | | ||
|-------------------------------|------------------|--------------------| | ||
| `interface_name` | :material-close: | Managed by Android | | ||
| `inet4_address` | :material-check: | / | | ||
| `inet6_address` | :material-check: | / | | ||
| `mtu` | :material-check: | / | | ||
| `auto_route` | :material-check: | / | | ||
| `strict_route` | :material-close: | Not implemented | | ||
| `inet4_route_address` | :material-check: | / | | ||
| `inet6_route_address` | :material-check: | / | | ||
| `inet4_route_exclude_address` | :material-check: | / | | ||
| `inet6_route_exclude_address` | :material-check: | / | | ||
| `endpoint_independent_nat` | :material-check: | / | | ||
| `stack` | :material-check: | / | | ||
| `include_interface` | :material-close: | No permission | | ||
| `exclude_interface` | :material-close: | No permission | | ||
| `include_uid` | :material-close: | No permission | | ||
| `exclude_uid` | :material-close: | No permission | | ||
| `include_android_user` | :material-close: | No permission | | ||
| `include_package` | :material-check: | / | | ||
| `exclude_package` | :material-check: | / | | ||
| `platform` | :material-check: | / | | ||
|
||
| Route/DNS rule option | Available | Note | | ||
|-----------------------|------------------|-----------------------------------| | ||
| `process_name` | :material-close: | No permission | | ||
| `process_path` | :material-close: | No permission | | ||
| `package_name` | :material-check: | / | | ||
| `user` | :material-close: | Use `package_name` instead | | ||
| `user_id` | :material-close: | Use `package_name` instead | | ||
| `wifi_ssid` | :material-check: | Fine location permission required | | ||
| `wifi_bssid` | :material-check: | Fine location permission required | | ||
|
||
### Override | ||
|
||
Overrides profile configuration items with platform-specific values. | ||
|
||
#### Per-app proxy | ||
|
||
SFA allows you to select a list of Android apps that require proxying or bypassing in the graphical interface to | ||
override the `include_package` and `exclude_package` configuration items. | ||
|
||
In particular, the selector also provides the “China apps” scanning feature, providing Chinese users with an excellent | ||
experience to bypass apps that do not require a proxy. Specifically, by scanning China application or SDK | ||
characteristics through dex class path and other means, there will be almost no missed reports. | ||
|
||
### Chore | ||
|
||
* The working directory is located at `/sdcard/Android/data/io.nekohasekai.sfa/files` (External files directory) | ||
* Crash logs is located in `$working_directory/stderr.log` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
--- | ||
icon: material/android | ||
--- | ||
|
||
# sing-box for Android | ||
|
||
SFA allows users to manage and run local or remote sing-box configuration files, and provides | ||
platform-specific function implementation, such as TUN transparent proxy implementation. | ||
|
||
## :material-graph: Requirements | ||
|
||
* Android 5.0+ | ||
|
||
## :material-download: Download | ||
|
||
* [Play Store](https://play.google.com/store/apps/details?id=io.nekohasekai.sfa) | ||
* [Play Store (Beta)](https://play.google.com/apps/testing/io.nekohasekai.sfa) | ||
* [Github Releases](https://github.com/SagerNet/sing-box/releases) | ||
|
||
## :material-source-repository: Source code | ||
|
||
* [Github](https://github.com/SagerNet/sing-box-for-android) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
# :material-decagram: Features | ||
|
||
#### UI options | ||
|
||
* Always On | ||
* Include All Networks (Proxy traffic for LAN and cellular services) | ||
* (Apple tvOS) Import profile from iPhone/iPad | ||
|
||
#### Service | ||
|
||
SFI/SFM/SFT allows you to run sing-box through NetworkExtension with Application Extension or System Extension. | ||
|
||
#### TUN | ||
|
||
SFI/SFM/SFT provides an unprivileged TUN implementation through NetworkExtension. | ||
|
||
| TUN inbound option | Available | Note | | ||
|-------------------------------|-----------|-------------------| | ||
| `interface_name` | ✖️ | Managed by Darwin | | ||
| `inet4_address` | ✔️ | / | | ||
| `inet6_address` | ✔️ | / | | ||
| `mtu` | ✔️ | / | | ||
| `auto_route` | ✔️ | / | | ||
| `strict_route` | ✖️ | Not implemented | | ||
| `inet4_route_address` | ✔️ | / | | ||
| `inet6_route_address` | ✔️ | / | | ||
| `inet4_route_exclude_address` | ✔️ | / | | ||
| `inet6_route_exclude_address` | ✔️ | / | | ||
| `endpoint_independent_nat` | ✔️ | / | | ||
| `stack` | ✔️ | / | | ||
| `include_interface` | ✖️ | Not implemented | | ||
| `exclude_interface` | ✖️ | Not implemented | | ||
| `include_uid` | ✖️ | Not implemented | | ||
| `exclude_uid` | ✖️ | Not implemented | | ||
| `include_android_user` | ✖️ | Not implemented | | ||
| `include_package` | ✖️ | Not implemented | | ||
| `exclude_package` | ✖️ | Not implemented | | ||
| `platform` | ✔️ | / | | ||
|
||
| Route/DNS rule option | Available | Note | | ||
|-----------------------|------------------|-----------------------| | ||
| `process_name` | :material-close: | No permission | | ||
| `process_path` | :material-close: | No permission | | ||
| `package_name` | :material-close: | / | | ||
| `user` | :material-close: | No permission | | ||
| `user_id` | :material-close: | No permission | | ||
| `wifi_ssid` | :material-alert: | Only supported on iOS | | ||
| `wifi_bssid` | :material-alert: | Only supported on iOS | | ||
|
||
### Chore | ||
|
||
* Crash logs is located in `Settings` -> `View Service Log` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
--- | ||
icon: material/apple | ||
--- | ||
|
||
# sing-box for Apple platforms | ||
|
||
SFI/SFM/SFT allows users to manage and run local or remote sing-box configuration files, and provides | ||
platform-specific function implementation, such as TUN transparent proxy implementation. | ||
|
||
## :material-graph: Requirements | ||
|
||
* iOS 15.0+ / macOS 13.0+ / Apple tvOS 17.0+ | ||
* An Apple account outside of mainland China | ||
|
||
## :material-download: Download | ||
|
||
* [AppStore](https://apps.apple.com/us/app/sing-box/id6451272673) | ||
* [TestFlight (Beta)](https://testflight.apple.com/join/AcqO44FH) | ||
|
||
## :material-source-repository: Source code | ||
|
||
* [Github](https://github.com/SagerNet/sing-box-for-apple) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
--- | ||
icon: material/pencil-ruler | ||
--- | ||
|
||
# General | ||
|
||
Describes and explains the functions implemented uniformly by sing-box graphical clients. | ||
|
||
### Profile | ||
|
||
Profile describes a sing-box configuration file and its state. | ||
|
||
#### Local | ||
|
||
* Local Profile represents a local sing-box configuration with minimal state | ||
* The graphical client must provide an editor to modify configuration content | ||
|
||
#### iCloud (on iOS and macOS) | ||
|
||
* iCloud Profile represents a remote sing-box configuration with iCloud as the update source | ||
* The configuration file is stored in the sing-box folder under iCloud | ||
* The graphical client must provide an editor to modify configuration content | ||
|
||
#### Remote | ||
|
||
* Remote Profile represents a remote sing-box configuration with a URL as the update source. | ||
* The graphical client should provide a configuration content viewer | ||
* The graphical client must implement automatic profile update (default interval is 60 minutes) and HTTP Basic | ||
authorization. | ||
|
||
At the same time, the graphical client must provide support for importing remote profiles | ||
through a specific URL Scheme. The URL is defined as follows: | ||
|
||
``` | ||
sing-box://import-remote-profile?url=urlEncodedURL#urlEncodedName | ||
``` | ||
|
||
### Dashboard | ||
|
||
While the sing-box service is running, the graphical client should provide a Dashboard interface to manage the service. | ||
|
||
#### Status | ||
|
||
Dashboard should display status information such as memory, connection, and traffic. | ||
|
||
#### Mode | ||
|
||
Dashboard should provide a Mode selector for switching when the configuration uses at least two `clash_mode` values. | ||
|
||
#### Groups | ||
|
||
When the configuration includes group outbounds (specifically, Selector or URLTest), | ||
the dashboard should provide a Group selector for status display or switching. | ||
|
||
### Chore | ||
|
||
#### Core | ||
|
||
Graphical clients should provide a Core region: | ||
|
||
* Display the current sing-box version | ||
* Provides a button to clean the working directory | ||
* Provides a memory limiter switch |
Oops, something went wrong.