Skip to main content

A V2Ray/V2Fly client for Python

Project description

V2Client - A V2Ray server management for python

Installation

pip install v2client

How Activate gRPC API?

// Add The following json to your config.json file 
{
  "stats": {},
  "api": {
    "tag": "api",
    "services": [
      "StatsService", // For stats
      "HandlerService", // For User and Inbound management
      "LoggerService" // For log management
    ]
  },
  "policy": {
    "levels": {
      "0": {
        "statsUserUplink": true, // User uplink stats
        "statsUserDownlink": true // User downlink stats
      }
    },
    "system": {
      "statsInboundUplink": true,
      "statsInboundDownlink": true,
      "statsOutboundUplink": true,
      "statsOutboundDownlink": true
    }
  }, 
    // and then add the following inbound
  "inbounds": [
      // ... (other inbounds)
      { 
        "listen": "0.0.0.0",
        "port": 8080, // or any other port you want
        "protocol": "dokodemo-door",
        "settings": {
          "address": "0.0.0.0"
        },
        "tag": "api"
      }
  ],
// and then add the following routing rule
  "routing": {
    "rules": [
      // ... (other rules)
      {
        "inboundTag": [
          "api"
        ],
        "outboundTag": "api",
        "type": "field"
      }
    ],
    "domainStrategy": "AsIs"
  }
}

Usage

from v2client import utils
from v2client import V2RayClient
from v2client import enum as v2types

client = V2RayClient("SERVER_IP_ADDRESS", 8080)
usage = client.get_user_usage("email@gmail.com")
print(f"Download Usage: {usage.download} & Upload Usage: {usage.upload} (in bytes)")

# ADD VLESS USER
client.add_user(
    inbound_tag="inbound_tag",
    proxy_type=v2types.ProxyTypes.VLESS,
    email="email@gmail.com",
    level=0,
    flow=v2types.VLESSFlowTypes.XTLS_RPRX_ORIGIN,  # Only for VLESS
    encryption=v2types.VLESSEncryptionTypes.NONE,  # Only for VLESS
    user_id=utils.random_uuid()
)

# ADD VMESS USER
client.add_user(
    inbound_tag="inbound_tag",
    proxy_type=v2types.ProxyTypes.VMESS,
    email="email@email.com",
    level=0,
    security=v2types.VMessSecurityTypes.AES128_GCM,  # Only for VMESS
    user_id=utils.random_uuid()
)

# Remove User
client.remove_user(inbound_tag="inbound", email="email@gmail.com")

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

v2client-1.1.1.tar.gz (54.6 kB view details)

Uploaded Source

File details

Details for the file v2client-1.1.1.tar.gz.

File metadata

  • Download URL: v2client-1.1.1.tar.gz
  • Upload date:
  • Size: 54.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.8

File hashes

Hashes for v2client-1.1.1.tar.gz
Algorithm Hash digest
SHA256 4c494607a163416837c4fc876972fa2583720373784f8c85b0ce32f9e93ef9a8
MD5 4fe56d5575b5801fa95ca58a31c7ebe0
BLAKE2b-256 7180641f9e64716d342dc426fd73c5321f869286542f5b1537b4cca4b670318a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page