Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

License

NotificationsYou must be signed in to change notification settings

XTLS/libXray

Repository files navigation

简体中文

This is a wrapper aroundXray-core to improve the client development experience.

Note

  1. This repository has few maintainers. If you do not report a bug or initiate a PR, your issue will be ignored.
  2. This repository does not guarantee API stability, you need to adapt it yourself.
  3. This repository is only compatible with the latest release of Xray-core.

Features

build

Compile script. It is recommended to always use this script to compile libXray. We will not answer questions caused by using other compilation methods.

You need to put Xray-core and libXray in the same directory to compile.

Usage

python3 build/main.py androidpython3 build/main.py apple gomobilepython3 build/main.py apple gopython3 build/main.py linuxpython3 build/main.py windows

Android

usegomobile .

iOS && macOS

1. use gomobile

Need "iOS Simulator Runtime".

This is the best choice for general scenarios and will not conflict with other frameworks.

Supports iOS, iOSSimulator, macOS, macCatalyst.

But it is not possible to set the minimum macOS version, which will cause some warnings when compiling. And it does not support tvOS.

2. use cgo

Need "iOS Simulator Runtime" and "tvOS Simulator Runtime".

Support more compilation options, output c header files.

This works well when you use ffi for integration. For example, integration with swift, kotlin, dart.

Support iOS, iOSSimulator, macOS, tvOS.

Note: The productLibXray.xcframework does not containmodule.modulemap. When using swift, you need to create a bridge file.

Linux

depend on gcc and g++.

Windows

depend onLLVM MinGW, you can install it using winget.

winget install MartinStorsjo.LLVM-MinGW.UCRT

controller

Used to solve the socket protect problem on Android.

dns

Used to solve server address resolution issues on Android, Linux, and Windows. If not handled, the DNS traffic will be resent to the tun device, resulting in failure to initiate a connection.

geo

count

Read geo files and count the categories and rules.

read

Read the Xray Json configuration and extract the geo file name used.

thin

Read the Xray Json configuration and cut the geo file used.

main

Download geosite.dat and geoip.dat and count them.

memory

Only executed on iOS, GC is initiated once a second. This can alleviate memory pressure on iOS.

nodep

file

Write data to a file.

measure

Speed ​​test the Xray configuration.

model

The response body of the wrapper interface.

port

Get free ports.

share

libXray usessendThrough to store outbound names.

clash_meta

Parse Clash.Meta configuration.

generate_share

convert Xray Json to VMessAEAD/VLESS sharing protocol.

parse_share

convert VMessAEAD/VLESS sharing protocol to Xray Json.

convert VMessQRCode to Xray Json.

vmess

convert VMessQRCode to Xray Json.

xray_json

Some tools used to parse shared links.

xray

ping

Latency testing.

stats

Refer to the following configuration:

{"metrics" : {"tag" :"metrics","listen":"[::1]:49227",  },"policy" : {"system" : {"statsInboundDownlink" :true,"statsInboundUplink" :true,"statsOutboundDownlink" :true,"statsOutboundUplink" :true    }  },"stats" : {}}

Note:

  1. When testing latency or validating configuration, make suremetrics isnull.

  2. When enabling metrics, the Xray-core instance needs to be run in achild process.

validation

Verify the Xray configuration.

xray

Start and stop Xray instances.

nodep_wrapper

export nodep.

xray_wrapper

export xray.

Credits

Project X

VMessPing

FreePort

License

This repository is based on the MIT License.


[8]ページ先頭

©2009-2025 Movatter.jp