yuhan6665 42aea01fb5
Core: Add mutex to injection resolution (#4206)
* Revert "Add RequireFeaturesAsync() that works regardless order of app init"

* Add mutex to injection resolution

- Turns out we already support async DI resolution regardless of feature ordering
Previous code contain a race condition causing some resolution is lost
- Note that the new mutex cover s.pendingResolutions and s.features
but must not cover callbackResolution() due to deadlock
- Refactor some method names and simplify code

* Add OptionalFeatures injection

For example OptionalFeatures() is useful for fakedns module
2024-12-26 12:55:12 +00:00
2024-11-09 11:16:11 +00:00
2024-12-02 09:56:16 +00:00
2020-11-25 19:01:53 +08:00
2024-07-12 00:20:06 +02:00
2024-12-07 14:43:38 +00:00

Project X

Project X originates from XTLS protocol, providing a set of network tools such as Xray-core and REALITY.

README is open, so feel free to submit your project here.

Donation & NFTs

License

Mozilla Public License Version 2.0

Documentation

Project X Official Website

Telegram

Project X

Project X Channel

Project VLESS (non-Chinese)

Installation

Usage

GUI Clients

Others that support VLESS, XTLS, REALITY, XUDP, PLUX...

Contributing

Code of Conduct

Credits

Compilation

Windows (PowerShell)

$env:CGO_ENABLED=0
go build -o xray.exe -trimpath -ldflags "-s -w -buildid=" ./main

Linux / macOS

CGO_ENABLED=0 go build -o xray -trimpath -ldflags "-s -w -buildid=" ./main

Reproducible Releases

make

Stargazers over time

Stargazers over time

Description
Languages
Go 99.6%
HTML 0.2%
Shell 0.1%