Перейти к содержимому
docs.
WORKSPACE

Документации проектов

Открыть каталог проектов
Localzet ServerАсинхронный PHP-серверTriangleФреймворк и компонентыMIX IDИдентификация и интеграцииHack APIПубличные API хакатонаACNПроект и компонентыUserlay / UserNetПроект и компоненты✓AxiomПроект и компонентыМесседжинг через почтуПроект и компонентыLWT / JWT / JOSEПроект и компонентыФинансовая аналитика KimaiПроект и компонентыМультипарадигмальная БДПроект и компонентыZorin PlatformПроект и компонентыZorin TrustПроект и компонентыFloraScope / VegwatchПроект и компонентыaegis-qДокументация проектаaevumdbДокументация проектаauditДокументация проектаauto-invest-managerАвтотрейдерcaine-companionДокументация проектаcertbot-cloudflareДокументация проектаClusterLocalzet Server / ClustercmdveilДокументация проектаConsolePHP CLICronБиблиотеки Localzet Serverdata-connectorДокументация проектаdevice-controlDevice Controlenn-projectДокументация проектаEventsБиблиотеки Localzet ServerflowsintДокументация проектаforgeДокументация проектаHttpClientБиблиотеки Localzet ServerinterpreterСобственный языкinvariaДокументация проектаkeynotesДокументация проектаknotrouteKnotroutelaravel-personal-analyticsДокументация проектаlocalzet-osДокументация проектаmeridianДокументация проектаMQTTБиблиотеки Localzet Servernano-kernelСобственная ОСNoterДокументация проектаpersonal-analyticsДокументация проектаProxyБиблиотеки Localzet ServerPSRБиблиотеки Localzet ServerPSR-7Библиотеки Localzet Serverrschs-monitorДокументация проектаsemsealДокументация проектаshardsealДокументация проектаSocketIOБиблиотеки Localzet ServerSOCKS5Библиотеки Localzet Serverstandalone-analyticsДокументация проектаstatic-php-cliДокументация проектаStorageБиблиотеки Localzet ServersutureДокументация проектаtempoweaveДокументация проектаttsСинтез речиTunnelБиблиотеки Localzet Serverui-kitUI KitvesperДокументация проектаWebAnalyzerWebAnalyzerzorin-access-brokerДокументация проектаzorin-authority-brokerДокументация проектаzorin-authority-sdk-phpДокументация проектаzorin-authority-sdk-pythonДокументация проектаzorin-authority-sdk-tsДокументация проектаzorin-client-intelДокументация проектаzorin-device-core-aospДокументация проектаzorin-host-agentДокументация проектаzorin-native-labДокументация проектаzorin-nodeДокументация проектаzorin-opsДокументация проектаdonstu-python-sdkДокументация проектаfloortraceFloortraceserver-rsLocalzet Server / Cluster
Каталог
Документация/Userlay / UserNet

xray-sdk

TypeScript SDK for XRAY/AURA Core

Image: GitHub top language Image: GitHub Repo stars

Image: npm version Image: GitHub Tag

Image: Build Status Image: Downloads Image: License Image: NPM Last Update

Image: Known Vulnerabilities Image: Coverage Status

Окно терминала
npm install @localzet/xtls-sdk
import { XtlsApi } from '@localzet/xtls-sdk';
// Initialize the API client
const api = new XtlsApi('127.0.0.1', '10085');
// Example: Get system statistics
const stats = await api.stats.getSysStats();
if (stats.isOk) {
console.log('System Stats:', stats.data);
}
// System Statistics
const sysStats = await api.stats.getSysStats();
// User Statistics
const userStats = await api.stats.getUserStats('username');
const allUsers = await api.stats.getAllUsersStats();
const isOnline = await api.stats.getUserOnlineStatus('username');
// Traffic Statistics
const inbounds = await api.stats.getAllInboundsStats();
const outbounds = await api.stats.getAllOutboundsStats();

All API methods return a standardized response format:

interface ISdkResponse<T> {
isOk: boolean;
data?: T;
message?: string;
code?: string;
}

Example usage:

const response = await api.stats.getSysStats();
if (response.isOk) {
// Success case
console.log('Stats:', response.data);
} else {
// Error case
console.error(`Error ${response.code}: ${response.message}`);
}

Many methods support statistics reset functionality:

// Get stats and reset counters
const stats = await api.stats.getUserStats('username', true);

Main client class for interacting with the XRAY server.

const api = new XtlsApi(ip: string, port: string);

Service for managing inbound handlers and their users.

MethodDescriptionParameters
getInboundUsers(tag: string)Get all users from an inboundtag: Inbound handler tag
getInboundUsersCount(tag: string)Get count of users in an inboundtag: Inbound handler tag
removeUser(tag: string, username: string)Remove a user from an inboundtag: Inbound handler tagusername: User to remove
MethodDescriptionParameters
addTrojanUser(data: IAddTrojanUser)Add Trojan userdata: { tag, username, password, level }
addVlessUser(data: IAddVlessUser)Add VLESS userdata: { tag, username, uuid, flow, level }
addShadowsocksUser(data: IAddShadowsocksUser)Add Shadowsocks userdata: { tag, username, password, cipherType, ivCheck, level }
addShadowsocks2022User(data: IAddShadowsocks2022User)Add Shadowsocks 2022 userdata: { tag, username, key, level }
addSocksUser(data: IAddSocksUser)Add SOCKS userdata: { tag, username, socks_username, socks_password, level }
addHttpUser(data: IAddHttpUser)Add HTTP userdata: { tag, username, http_username, http_password, level }

Example usage:

// Get all users in an inbound
const users = await api.handler.getInboundUsers('main-inbound');
if (users.isOk) {
console.log('Users:', users.data.users);
}
// Add a new Trojan user
const newUser = await api.handler.addTrojanUser({
tag: 'main-inbound',
username: 'user@example.com',
password: 'secure-password',
level: 0,
});
// Remove a user
const removed = await api.handler.removeUser('main-inbound', 'user@example.com');
// Get user count
const count = await api.handler.getInboundUsersCount('main-inbound');
if (count.isOk) {
console.log('Total users:', count.data);
}

Statistics management service.

MethodDescriptionParameters
getSysStats()Get system statisticsNone
getAllUsersStats(reset?: boolean)Get all users’ statisticsreset: Reset stats after retrieval
getUserStats(username: string, reset?: boolean)Get specific user statisticsusername: Target userreset: Reset stats after retrieval
getUserOnlineStatus(username: string)Check user online statususername: Target user
getAllInboundsStats(reset?: boolean)Get all inbound statisticsreset: Reset stats after retrieval
getInboundStats(inbound: string, reset?: boolean)Get specific inbound statisticsinbound: Inbound tagreset: Reset stats after retrieval
getAllOutboundsStats(reset?: boolean)Get all outbound statisticsreset: Reset stats after retrieval
getOutboundStats(outbound: string, reset?: boolean)Get specific outbound statisticsoutbound: Outbound tagreset: Reset stats after retrieval

The SDK provides detailed error information through the response object:

try {
const response = await api.stats.getUserStats('username');
if (!response.isOk) {
console.error(`Operation failed: ${response.message}`);
console.error(`Error code: ${response.code}`);
}
} catch (error) {
console.error('Unexpected error:', error);
}

Исходный код · AGPL-3.0