Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,9 @@ jobs:
- name: Start 3x-ui (Docker)
run: |
set -euxo pipefail
docker pull ghcr.io/mhsanaei/3x-ui:v2.6.6
docker pull ghcr.io/mhsanaei/3x-ui:v2.8.3
docker rm -f xui >/dev/null 2>&1 || true
docker run -d --name xui --network host ghcr.io/mhsanaei/3x-ui:v2.6.6
docker run -d --name xui --network host ghcr.io/mhsanaei/3x-ui:v2.8.3

for i in $(seq 1 90); do
code=$(curl -s -o /dev/null -w "%{http_code}" -X POST \
Expand Down
5 changes: 3 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "rustix3"
version = "0.3.0"
version = "0.4.0"
edition = "2024"
authors = ["Dmitriy Sergeev <xaneets@gmail.com>"]
description = "API lib for 3x-ui panel"
Expand All @@ -11,10 +11,11 @@ homepage = "https://github.com/Xaneets/rustix3"

keywords = ["x-ui", "3x-ui", "api", "xray-core", "vpn"]
categories = ["development-tools"]

[dependencies]
futures = "0.3.31"
log = "0.4.25"
reqwest = { version = "0.12.12", features = ["json", "cookies"] }
reqwest = { version = "0.12.12", features = ["json", "cookies", "multipart"] }
serde = { version = "1.0.217", features = ["derive"] }
serde_json = "1.0.138"
serde_path_to_error = "0.1.17"
Expand Down
64 changes: 44 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,31 +7,55 @@
Unofficial Rust client for the **3x-ui** panel API (Xray-core).
Provides typed models and high-level methods for common panel operations.

> Note: Some 3x-ui endpoints expect certain nested structures to be sent as **JSON strings** (e.g., inbound `settings`). The client models handle these specifics transparently.
> Note: Some 3x-ui endpoints expect certain nested structures to be sent as **JSON strings** (e.g., inbound `settings`).
> The client models handle these specifics transparently.

---

## Implemented endpoints

- [x] login
- [x] Inbounds
- [x] Inbound
- [x] Client traffics with email
- [x] Client traffics with id
- [x] TG Send backup to admin
- [x] Client IP address
- [x] Add inbound
- [x] Add client to inbound
- [x] Update inbound
- [x] Update client
- [x] Clear client IP address
- [x] Reset traffics of all inbound
- [x] Reset traffics of all clients in an inbound
- [x] Reset client traffics
- [x] Delete client
- [x] Delete inbound
- [x] Delete depleted clients
- [x] Online clients
- ✅ login
- ✅ Inbounds
- ✅ Inbound
- ✅ Client traffics with email
- ✅ Client traffics with id
- ✅ TG Send backup to admin
- ✅ Client IP address
- ✅ Add inbound
- ✅ Add client to inbound
- ✅ Update inbound
- ✅ Update client
- ✅ Clear client IP address
- ✅ Reset traffics of all inbound
- ✅ Reset traffics of all clients in an inbound
- ✅ Reset client traffics
- ✅ Delete client
- ✅ Delete inbound
- ✅ Delete depleted clients
- ✅ Online clients
- ❌ Import inbounds
- ✅ Last online
- ❌ del Client By Email
- ✅ Server status
- ✅ Server get DB
- ✅ get Xray Version
- ✅ get Config Json
- ✅ cpu History
- ✅ get New UUID
- ✅ get New X25519 Cert
- ✅ get New mldsa65
- ✅ get New mlkem768
- ✅ get New Vless Enc
- ✅ stop Xray Service
- ✅ restart Xray Service
- ✅ install Xray version
- ✅ update Geofile
- ❌ updateGeofile/{fileName}
- ❌ logs/{count}
- ❌ xraylogs/{count}
- ✅ importDB
- ❌ get New Ech Cert


---

Expand Down
Loading
Loading