├── .env ├── .gitignore ├── README.md ├── api ├── __init__.py ├── database.py ├── jobs.py ├── logger.py ├── utils.py ├── v2ray.py └── views.py ├── config.py ├── main.py ├── requirements.txt └── v2api ├── __init__.py ├── client.py ├── errors.py ├── proto ├── app │ ├── browserforwarder │ │ ├── config_pb2.py │ │ └── config_pb2_grpc.py │ ├── commander │ │ ├── config_pb2.py │ │ └── config_pb2_grpc.py │ ├── dispatcher │ │ ├── config_pb2.py │ │ └── config_pb2_grpc.py │ ├── dns │ │ ├── config_pb2.py │ │ ├── config_pb2_grpc.py │ │ └── fakedns │ │ │ ├── fakedns_pb2.py │ │ │ └── fakedns_pb2_grpc.py │ ├── log │ │ ├── command │ │ │ ├── config_pb2.py │ │ │ └── config_pb2_grpc.py │ │ ├── config_pb2.py │ │ └── config_pb2_grpc.py │ ├── policy │ │ ├── config_pb2.py │ │ └── config_pb2_grpc.py │ ├── proxyman │ │ ├── command │ │ │ ├── command_pb2.py │ │ │ └── command_pb2_grpc.py │ │ ├── config_pb2.py │ │ └── config_pb2_grpc.py │ ├── reverse │ │ ├── config_pb2.py │ │ └── config_pb2_grpc.py │ ├── router │ │ ├── command │ │ │ ├── command_pb2.py │ │ │ └── command_pb2_grpc.py │ │ ├── config_pb2.py │ │ └── config_pb2_grpc.py │ └── stats │ │ ├── command │ │ ├── command_pb2.py │ │ └── command_pb2_grpc.py │ │ ├── config_pb2.py │ │ └── config_pb2_grpc.py ├── common │ ├── log │ │ ├── log_pb2.py │ │ └── log_pb2_grpc.py │ ├── net │ │ ├── address_pb2.py │ │ ├── address_pb2_grpc.py │ │ ├── destination_pb2.py │ │ ├── destination_pb2_grpc.py │ │ ├── network_pb2.py │ │ ├── network_pb2_grpc.py │ │ ├── port_pb2.py │ │ └── port_pb2_grpc.py │ ├── protocol │ │ ├── headers_pb2.py │ │ ├── headers_pb2_grpc.py │ │ ├── server_spec_pb2.py │ │ ├── server_spec_pb2_grpc.py │ │ ├── user_pb2.py │ │ └── user_pb2_grpc.py │ └── serial │ │ ├── typed_message_pb2.py │ │ └── typed_message_pb2_grpc.py ├── compile.py ├── config_pb2.py ├── config_pb2_grpc.py ├── proxy │ ├── blackhole │ │ ├── config_pb2.py │ │ └── config_pb2_grpc.py │ ├── dns │ │ ├── config_pb2.py │ │ └── config_pb2_grpc.py │ ├── dokodemo │ │ ├── config_pb2.py │ │ └── config_pb2_grpc.py │ ├── freedom │ │ ├── config_pb2.py │ │ └── config_pb2_grpc.py │ ├── http │ │ ├── config_pb2.py │ │ └── config_pb2_grpc.py │ ├── loopback │ │ ├── config_pb2.py │ │ └── config_pb2_grpc.py │ ├── mtproto │ │ ├── config_pb2.py │ │ └── config_pb2_grpc.py │ ├── shadowsocks │ │ ├── config_pb2.py │ │ └── config_pb2_grpc.py │ ├── socks │ │ ├── config_pb2.py │ │ └── config_pb2_grpc.py │ ├── trojan │ │ ├── config_pb2.py │ │ └── config_pb2_grpc.py │ ├── vless │ │ ├── account_pb2.py │ │ ├── account_pb2_grpc.py │ │ ├── encoding │ │ │ ├── addons_pb2.py │ │ │ └── addons_pb2_grpc.py │ │ ├── inbound │ │ │ ├── config_pb2.py │ │ │ └── config_pb2_grpc.py │ │ └── outbound │ │ │ ├── config_pb2.py │ │ │ └── config_pb2_grpc.py │ └── vmess │ │ ├── account_pb2.py │ │ ├── account_pb2_grpc.py │ │ ├── inbound │ │ ├── config_pb2.py │ │ └── config_pb2_grpc.py │ │ └── outbound │ │ ├── config_pb2.py │ │ └── config_pb2_grpc.py └── transport │ ├── config_pb2.py │ ├── config_pb2_grpc.py │ └── internet │ ├── config_pb2.py │ ├── config_pb2_grpc.py │ ├── domainsocket │ ├── config_pb2.py │ └── config_pb2_grpc.py │ ├── grpc │ ├── config_pb2.py │ ├── config_pb2_grpc.py │ └── encoding │ │ ├── stream_pb2.py │ │ └── stream_pb2_grpc.py │ ├── headers │ ├── http │ │ ├── config_pb2.py │ │ └── config_pb2_grpc.py │ ├── noop │ │ ├── config_pb2.py │ │ └── config_pb2_grpc.py │ ├── srtp │ │ ├── config_pb2.py │ │ └── config_pb2_grpc.py │ ├── tls │ │ ├── config_pb2.py │ │ └── config_pb2_grpc.py │ ├── utp │ │ ├── config_pb2.py │ │ └── config_pb2_grpc.py │ ├── wechat │ │ ├── config_pb2.py │ │ └── config_pb2_grpc.py │ └── wireguard │ │ ├── config_pb2.py │ │ └── config_pb2_grpc.py │ ├── http │ ├── config_pb2.py │ └── config_pb2_grpc.py │ ├── kcp │ ├── config_pb2.py │ └── config_pb2_grpc.py │ ├── quic │ ├── config_pb2.py │ └── config_pb2_grpc.py │ ├── tcp │ ├── config_pb2.py │ └── config_pb2_grpc.py │ ├── tls │ ├── config_pb2.py │ └── config_pb2_grpc.py │ ├── udp │ ├── config_pb2.py │ └── config_pb2_grpc.py │ └── websocket │ ├── config_pb2.py │ └── config_pb2_grpc.py ├── types ├── __init__.py ├── common.py └── vmess.py └── utils.py /.env: -------------------------------------------------------------------------------- 1 | REDIS_URL=redis://localhost/0 2 | V2RAY_ADDRESS=example.com 3 | V2RAY_HOST=0.0.0.0 4 | V2RAY_PORT=443 5 | V2RAY_LOCATION_BIN=/usr/bin/v2ray 6 | V2RAY_LOCATION_ASSET=/usr/share/v2ray 7 | V2RAY_API_HOST=127.0.0.1 8 | V2RAY_API_PORT=8080 9 | SYNC_USER_USAGE_PERIOD_SEC=30 10 | RESET_V2RAY_HOUR_DAILY=4 11 | SCHEDULER_TIMEZONE=Asia/Tehran -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | share/python-wheels/ 24 | *.egg-info/ 25 | .installed.cfg 26 | *.egg 27 | MANIFEST 28 | 29 | # PyInstaller 30 | # Usually these files are written by a python script from a template 31 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 32 | *.manifest 33 | *.spec 34 | 35 | # Installer logs 36 | pip-log.txt 37 | pip-delete-this-directory.txt 38 | 39 | # Unit test / coverage reports 40 | htmlcov/ 41 | .tox/ 42 | .nox/ 43 | .coverage 44 | .coverage.* 45 | .cache 46 | nosetests.xml 47 | coverage.xml 48 | *.cover 49 | *.py,cover 50 | .hypothesis/ 51 | .pytest_cache/ 52 | cover/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | .pybuilder/ 76 | target/ 77 | 78 | # Jupyter Notebook 79 | .ipynb_checkpoints 80 | 81 | # IPython 82 | profile_default/ 83 | ipython_config.py 84 | 85 | # pyenv 86 | # For a library or package, you might want to ignore these files since the code is 87 | # intended to run in multiple environments; otherwise, check them in: 88 | # .python-version 89 | 90 | # pipenv 91 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 92 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 93 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 94 | # install all needed dependencies. 95 | #Pipfile.lock 96 | 97 | # poetry 98 | # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. 99 | # This is especially recommended for binary packages to ensure reproducibility, and is more 100 | # commonly ignored for libraries. 101 | # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control 102 | #poetry.lock 103 | 104 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 105 | __pypackages__/ 106 | 107 | # Celery stuff 108 | celerybeat-schedule 109 | celerybeat.pid 110 | 111 | # SageMath parsed files 112 | *.sage.py 113 | 114 | # Environments 115 | .venv 116 | venv/ 117 | venv.bak/ 118 | .vscode/ 119 | 120 | # Spyder project settings 121 | .spyderproject 122 | .spyproject 123 | 124 | # Rope project settings 125 | .ropeproject 126 | 127 | # mkdocs documentation 128 | /site 129 | 130 | # mypy 131 | .mypy_cache/ 132 | .dmypy.json 133 | dmypy.json 134 | 135 | # Pyre type checker 136 | .pyre/ 137 | 138 | # pytype static type analyzer 139 | .pytype/ 140 | 141 | # Cython debug symbols 142 | cython_debug/ 143 | 144 | # PyCharm 145 | # JetBrains specific template is maintained in a separate JetBrains.gitignore that can 146 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore 147 | # and can be added to the global gitignore or merged into this file. For a more nuclear 148 | # option (not recommended) you can uncomment the following to ignore the entire idea folder. 149 | #.idea/ 150 | 151 | generated_config.json 152 | v2ray-core 153 | xray-core -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # V2ReST 2 | 3 | ReST API Interface to run v2ray server and manage users 4 | 5 | ⚠️ **This project only supports VMess currently. note that it's not compatible with V2ray v5 and above. It is recommended to run with V2ray** [v4.45.2](https://github.com/v2fly/v2ray-core/releases/tag/v4.45.2) 6 | 7 | ## Features 8 | 9 | - Plan based system, feature to set expiration date and limit user traffic 10 | - Running V2ray server automatically and internally 11 | - Managing users through grpc (without restarting server) 12 | 13 | 14 | ## How to run 15 | First you need to install **redis**, then 16 | 17 | Clone the repository: 18 | 19 | git clone https://github.com/amirho3inf/V2ReST 20 | 21 | Change directory to V2ReST and install the required packages: 22 | 23 | pip install -r requirements.txt 24 | 25 | Run the app using uvicorn: 26 | 27 | uvicorn main:app 28 | 29 | ## Configuration 30 | You can find all config variables in `config.py` file, and they all can be defined either in environment or `.env` file 31 | 32 | 33 | ## API documentation 34 | Documentation will be available on http://127.0.0.1:8000/docs (this is default, you may change it later) 35 | 36 | 37 | ## TODO 38 | - [X] Username validation 39 | - [ ] Authentication 40 | - [ ] Dockerize 41 | - [X] Connect link and QR -------------------------------------------------------------------------------- /api/__init__.py: -------------------------------------------------------------------------------- 1 | from fastapi import FastAPI 2 | from fastapi_responses import custom_openapi 3 | from apscheduler.schedulers.background import BackgroundScheduler 4 | from redis import StrictRedis 5 | import config 6 | 7 | 8 | app = FastAPI() 9 | app.openapi = custom_openapi(app) 10 | scheduler = BackgroundScheduler() 11 | redis = StrictRedis.from_url(config.REDIS_URL, decode_responses=True) 12 | 13 | from . import views, jobs # noqa 14 | 15 | scheduler.start() 16 | -------------------------------------------------------------------------------- /api/database.py: -------------------------------------------------------------------------------- 1 | from . import redis 2 | from typing import Union, Iterator 3 | from uuid import UUID 4 | 5 | 6 | def _get_user_plan_keys(username: str) -> list: 7 | """ 8 | Get the redis key of user active plans 9 | 10 | :param username: 11 | :return: List of redis keys 12 | """ 13 | plan_keys = list(redis.scan_iter(f'v2rest:user:{username}:*')) 14 | return plan_keys 15 | 16 | 17 | def add_user(username: str, id: Union[str, UUID]) -> bool: 18 | """ 19 | Add a vmess user to redis 20 | 21 | :param username: 22 | :param id: 23 | :return: 24 | """ 25 | if user_exists(username): 26 | return False 27 | redis.hset("v2rest:users", username, str(id)) 28 | return True 29 | 30 | 31 | def modify_user(username: str, id: Union[str, UUID]) -> bool: 32 | """ 33 | Modify a vmess user ID with it's username 34 | 35 | :param username: 36 | :param id: 37 | :return: 38 | """ 39 | if not user_exists(username): 40 | return False 41 | redis.hset("v2rest:users", username, str(id)) 42 | return True 43 | 44 | 45 | def remove_user(username: str) -> bool: 46 | """ 47 | Remove a vmess user 48 | 49 | :param username: 50 | :return: 51 | """ 52 | if not user_exists(username): 53 | return False 54 | redis.hdel("v2rest:users", username) 55 | # remove user activate plans 56 | for k in _get_user_plan_keys(username): 57 | redis.delete(k) 58 | return True 59 | 60 | 61 | def get_user(username: str) -> Union[dict, None]: 62 | """ 63 | Get a vmess user data 64 | 65 | :param username: 66 | :return: 67 | :rtype: Union[dict, None] 68 | """ 69 | if not (id := redis.hget("v2rest:users", username)): 70 | return 71 | 72 | plans = [] 73 | for k in _get_user_plan_keys(username): 74 | n = int(k[-1].split(":")[-1]) 75 | ttl = redis.ttl(k) 76 | data = int(redis.get(k) or 0) 77 | plans.append({ 78 | "pid": n, 79 | "data": data if data > 0 else 0, 80 | "ttl": ttl if ttl > 0 else 0 81 | }) 82 | 83 | return { 84 | "username": username, 85 | "id": id, 86 | "plans": plans 87 | } 88 | 89 | 90 | def user_has_active_plan(username: str) -> bool: 91 | """ 92 | Check if user has a active plan or not 93 | 94 | :param username: 95 | :return: 96 | """ 97 | return bool(_get_user_plan_keys(username)) 98 | 99 | 100 | def user_exists(username: str) -> bool: 101 | """ 102 | Check if user exists or not 103 | 104 | :param username: 105 | :return: 106 | """ 107 | return bool(redis.hget("v2rest:users", username)) 108 | 109 | 110 | def get_users(only_active_users=False) -> Iterator[dict]: 111 | """ 112 | Get all vmess users 113 | 114 | :param username: 115 | :param only_active_users: Filter users who don't have active plan 116 | :return: All users username and id 117 | :rtype: Iterator[dict] 118 | """ 119 | for username, id in redis.hgetall("v2rest:users").items(): 120 | if not only_active_users or user_has_active_plan(username): 121 | yield { 122 | "username": username, 123 | "id": id 124 | } 125 | 126 | 127 | def decr_user_data(username: str, by: int) -> int: 128 | """ 129 | Decrease the remaining data of the user current active plan 130 | 131 | :param username: 132 | :param by: The amount of decrease 133 | :return: The remaining data of active plan 134 | """ 135 | plan_keys = sorted(_get_user_plan_keys(username), 136 | key=lambda i: int(i.rsplit(":", 1)[-1])) 137 | 138 | # just do on first plan 139 | for p in plan_keys: 140 | n = redis.decrby(p, by) 141 | if n > 0: 142 | return n 143 | else: 144 | redis.delete(p) 145 | return 1 146 | 147 | # there's no plan 148 | return 0 149 | 150 | 151 | def add_plan(username: str, data: int, ttl: int) -> bool: 152 | """ 153 | Add a new plan for a vmess user 154 | 155 | :param username: 156 | :param data: The amount of plan data in bytes 157 | :param ttl: Time to live in seconds 158 | :return: False if user doesn't exist else True 159 | """ 160 | if not redis.hget("v2rest:users", username): 161 | return False 162 | 163 | if k := _get_user_plan_keys(username): 164 | plan_n = int(k[-1].split(":")[-1]) + 1 165 | else: 166 | plan_n = 0 167 | redis.setex(f"v2rest:user:{username}:{plan_n}", value=data, time=ttl) 168 | return True 169 | -------------------------------------------------------------------------------- /api/jobs.py: -------------------------------------------------------------------------------- 1 | # interval and scheduled jobs 2 | 3 | from . import v2ray, scheduler, redis, database as db 4 | from v2api import errors as v2errors 5 | import traceback 6 | import config 7 | 8 | 9 | SYNC_USAGE_P = config.SYNC_USER_USAGE_PERIOD_SEC 10 | RESET_HOUR = config.RESET_V2RAY_HOUR_DAILY 11 | TZ = config.SCHEDULER_TIMEZONE 12 | 13 | 14 | def _deactive_user(username: str) -> None: 15 | """ 16 | Remove user from v2ray server 17 | It will call by an interval jobs that checks users usage when doesn't have an active plan 18 | 19 | :param username: 20 | """ 21 | if redis.get(f"v2rest:deactivate_try:{username}"): 22 | return 23 | try: 24 | v2ray.client.remove_user(email=username, inbound_tag="VMESS_INBOUND") 25 | except v2errors.EmailNotFoundError: 26 | pass 27 | except Exception: 28 | traceback.print_exc() 29 | redis.setex(f"v2rest:deactivate_try:{username}", time=60, value=1) 30 | 31 | 32 | def record_users_usage(): 33 | """ 34 | An interval job that checks users data usage and record that to the database 35 | """ 36 | for data in v2ray.client.get_all_traffic_stats(reset=True): 37 | username = data['email'] 38 | by = data['value'] 39 | if by == 0: 40 | continue 41 | if db.decr_user_data(username, by) <= 0: 42 | # User data is over 43 | _deactive_user(username) 44 | 45 | 46 | scheduler.add_job(record_users_usage, 'interval', seconds=SYNC_USAGE_P) 47 | 48 | 49 | def restart_v2ray(): 50 | """ 51 | An interval job that restarts v2ray server every day at an exact hour 52 | """ 53 | v2ray.process.stop() 54 | v2ray.process.start(v2ray.generate_db_config()) 55 | 56 | 57 | scheduler.add_job(restart_v2ray, 'cron', hour=RESET_HOUR, timezone=TZ) 58 | -------------------------------------------------------------------------------- /api/logger.py: -------------------------------------------------------------------------------- 1 | import logging 2 | 3 | 4 | logger = logging.getLogger("uvicorn.error") 5 | -------------------------------------------------------------------------------- /api/utils.py: -------------------------------------------------------------------------------- 1 | import base64 2 | import json 3 | import io 4 | import re 5 | import qrcode 6 | from config import ( 7 | V2RAY_ADDRESS, 8 | V2RAY_PORT 9 | ) 10 | 11 | USERNAME_REGEXP = re.compile(r'^(?=\w{3,32}\b)[a-zA-Z0-9]+(?:_[a-zA-Z0-9]+)*$') 12 | 13 | 14 | def share_vmess(user_id: str, username: str) -> tuple: 15 | """ 16 | Returns share link and qr code respectively in tuple 17 | """ 18 | 19 | v = { 20 | 'ps': f'{V2RAY_ADDRESS} [{username}]', 21 | 'v': '2', 22 | 'id': str(user_id), 23 | 'aid': '0', 24 | 'add': V2RAY_ADDRESS, 25 | 'port': V2RAY_PORT, 26 | 'type': 'none', 27 | 'tls': '', 28 | 'net': 'ws', 29 | 'path': '', 30 | 'host': '' 31 | } 32 | link = "vmess://" + base64.b64encode(json.dumps(v, sort_keys=True).encode('utf-8')).decode() 33 | with io.BytesIO() as buffered: 34 | img = qrcode.make(link) 35 | img.save(buffered, format="PNG") 36 | qr = base64.b64encode(buffered.getvalue()).decode('utf-8') 37 | 38 | return (link, qr) 39 | 40 | 41 | def validate_username(username: str) -> bool: 42 | return bool(USERNAME_REGEXP.match(username)) 43 | -------------------------------------------------------------------------------- /api/views.py: -------------------------------------------------------------------------------- 1 | 2 | from fastapi import Body, HTTPException 3 | from pydantic import BaseModel, Field 4 | from uuid import UUID, uuid4 5 | from v2api.types.vmess import VMessAccount 6 | from v2api import errors as v2errors 7 | from . import app, database as db 8 | from .v2ray import client as v2client 9 | from .utils import share_vmess, validate_username 10 | 11 | 12 | class User(BaseModel): 13 | username: str 14 | id: UUID = Field(default_factory=uuid4) 15 | 16 | 17 | class UserModify(BaseModel): 18 | id: UUID = Field(default_factory=uuid4) 19 | 20 | 21 | class UserResponse(BaseModel): 22 | username: str 23 | id: UUID 24 | plans: list 25 | link: str 26 | qr: str 27 | 28 | 29 | class Plan(BaseModel): 30 | data: int 31 | ttl: int 32 | 33 | 34 | @app.post("/user", tags=['User'], response_model=UserResponse) 35 | def add_user(user: User): 36 | """ 37 | Add a new user 38 | 39 | - **id** must be an UUID. if not specified, a random UUID will be generated for user. 40 | """ 41 | 42 | if not validate_username(user.username): 43 | raise HTTPException( 44 | status_code=400, 45 | detail="Username only can be 3 to 12 characters and contain a-z, 0-9, and underscores in between.") 46 | 47 | added = db.add_user(user.username, user.id) 48 | if not added: 49 | raise HTTPException(status_code=409, detail="User already exists.") 50 | 51 | link, qr = share_vmess(user.id, user.username) 52 | return UserResponse(id=user.id, username=user.username, plans=[], link=link, qr=qr) 53 | 54 | 55 | @app.get("/user/{username}", tags=['User'], response_model=UserResponse) 56 | def get_user(username: str): 57 | """ 58 | Get users information and active plans 59 | """ 60 | if user := db.get_user(username): 61 | link, qr = share_vmess(user['id'], user['username']) 62 | return UserResponse(id=user['id'], username=user['username'], plans=user['plans'], link=link, qr=qr) 63 | 64 | raise HTTPException(status_code=404, detail="User not found") 65 | 66 | 67 | @app.put("/user/{username}", tags=['User'], response_model=UserResponse) 68 | def modify_user(username: str, modify: UserModify): 69 | """ 70 | Change user id 71 | """ 72 | modified = db.modify_user(username, modify.id) 73 | if not modified: 74 | raise HTTPException(status_code=404, detail="User not found") 75 | 76 | try: 77 | v2client.remove_user(email=username, inbound_tag="VMESS_INBOUND") 78 | v2client.add_user(email=username, 79 | inbound_tag='VMESS_INBOUND', 80 | account=VMessAccount(modify.id)) 81 | except v2errors.EmailNotFoundError: 82 | pass 83 | 84 | user = db.get_user(username) 85 | link, qr = share_vmess(modify.id, username) 86 | return UserResponse(id=user['id'], user=user['username'], plans=user['plans'], link=link, qr=qr) 87 | 88 | 89 | @app.delete("/user/{username}", tags=['User']) 90 | def remove_user(username: str): 91 | """ 92 | Remove a user 93 | """ 94 | removed = db.remove_user(username) 95 | if not removed: 96 | raise HTTPException(status_code=404, detail="User not found") 97 | try: 98 | v2client.remove_user(email=username, inbound_tag="VMESS_INBOUND") 99 | except v2errors.EmailNotFoundError: 100 | pass 101 | return {} 102 | 103 | 104 | @app.get("/users", tags=['User']) 105 | def get_users(only_active_users: bool): 106 | """ 107 | Get all users 108 | 109 | - **only_active_users**: returns only users who have at least one active plan 110 | """ 111 | return db.get_users(only_active_users) 112 | 113 | 114 | @app.post("/plan", tags=['Plan']) 115 | def add_plan(plan: Plan, username: str = Body(..., embed=True)): 116 | """ 117 | Add a new plan for the user 118 | 119 | - **data**: must be in bytes, e.g. 1073741824B = 1GB 120 | - **ttl**: time to live, must be in seconds 121 | """ 122 | ok = db.add_plan(username, plan.data, plan.ttl) 123 | if not ok: 124 | raise HTTPException(status_code=404, detail="User not found") 125 | 126 | dbuser = db.get_user(username) 127 | try: 128 | v2client.add_user(email=dbuser['username'], 129 | inbound_tag='VMESS_INBOUND', 130 | account=VMessAccount(dbuser['id'])) 131 | except v2errors.EmailExistsError: 132 | pass 133 | 134 | return dbuser 135 | -------------------------------------------------------------------------------- /config.py: -------------------------------------------------------------------------------- 1 | from decouple import config 2 | from dotenv import load_dotenv 3 | 4 | load_dotenv() # take environment variables from .env. 5 | 6 | # Redis server settings 7 | # Redis is used as the main database, make sure redis auto save is enabled 8 | # And don't forget to take backup from dump file 9 | # https://redis.io/topics/persistence 10 | REDIS_URL = config('REDIS_URL', default='redis://localhost/0') 11 | 12 | # V2ray server settings 13 | V2RAY_ADDRESS = config('V2RAY_ADDRESS', default='example.com') 14 | V2RAY_HOST = config('V2RAY_HOST', default='0.0.0.0') 15 | V2RAY_PORT = config('V2RAY_PORT', default=443, cast=int) 16 | V2RAY_LOCATION_BIN = config('V2RAY_LOCATION_BIN', default='/usr/bin/v2ray') 17 | V2RAY_LOCATION_ASSET = config('V2RAY_LOCATION_ASSET', default='/usr/share/v2ray') 18 | V2RAY_API_HOST = config('V2RAY_API_HOST', default='127.0.0.1') 19 | V2RAY_API_PORT = config('V2RAY_API_PORT', default=8080, cast=int) 20 | 21 | # Jobs settings 22 | # Set SYNC_USER_USAGE_PERIOD_SEC in seconds 23 | # For a job that syncs v2ray stats with redis server 24 | SYNC_USER_USAGE_PERIOD_SEC = config('SYNC_USER_USAGE_PERIOD_SEC', default=30, cast=int) 25 | # Set an hour to RESET_V2RAY_HOUR_DAILY between [0-23] 26 | # For a job that restarts v2ray server at the hour 27 | # Default: 04:00 AM, when users are sleeping! 28 | RESET_V2RAY_HOUR_DAILY = config('RESET_V2RAY_HOUR_DAILY', default=4, cast=int) 29 | SCHEDULER_TIMEZONE = config('SCHEDULER_TIMEZONE', default='Asia/Tehran') 30 | -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | from api import app 2 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | anyio==3.5.0 2 | APScheduler==3.9.1 3 | asgiref==3.5.0 4 | click==8.0.4 5 | Deprecated==1.2.13 6 | fastapi==0.75.0 7 | fastapi-responses==0.2.1 8 | grpcio==1.44.0 9 | h11==0.13.0 10 | idna==3.3 11 | packaging==21.3 12 | Pillow==9.2.0 13 | protobuf==3.19.4 14 | pydantic==1.9.0 15 | pyparsing==3.0.7 16 | python-decouple==3.6 17 | python-dotenv==0.21.0 18 | pytz==2021.3 19 | pytz-deprecation-shim==0.1.0.post0 20 | qrcode==7.3.1 21 | redis==4.1.4 22 | six==1.16.0 23 | sniffio==1.2.0 24 | starlette==0.17.1 25 | typing_extensions==4.1.1 26 | tzdata==2021.5 27 | tzlocal==4.1 28 | uvicorn==0.17.6 29 | wrapt==1.14.0 30 | -------------------------------------------------------------------------------- /v2api/__init__.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import pathlib 3 | from contextlib import contextmanager 4 | 5 | 6 | @contextmanager 7 | def set_proto_path(): 8 | proto_path = str(pathlib.Path(__file__).parent / 'proto') 9 | try: 10 | sys.path.append(proto_path) 11 | yield 12 | finally: 13 | sys.path.remove(proto_path) 14 | 15 | 16 | with set_proto_path(): 17 | from .client import Client 18 | from . import errors, types 19 | 20 | 21 | __all__ = [ 22 | 'Client', 23 | 'errors', 24 | 'types' 25 | ] 26 | -------------------------------------------------------------------------------- /v2api/client.py: -------------------------------------------------------------------------------- 1 | import grpc 2 | import typing 3 | 4 | from .proto.app.stats.command import command_pb2_grpc as stats_command_pb2_grpc 5 | from .proto.app.stats.command import command_pb2 as stats_command_pb2 6 | from .proto.app.proxyman.command import command_pb2_grpc 7 | from .proto.app.proxyman.command import command_pb2 8 | from .proto.app.proxyman import config_pb2 as proxyman_config_pb2 9 | from .proto.common.protocol import user_pb2 10 | from .proto import config_pb2 as core_config_pb2 11 | from .proto.common.net import port_pb2, address_pb2 12 | 13 | 14 | from . import errors 15 | from .utils import to_typed_message, ip2bytes 16 | from .types.common import Account, Inbound 17 | 18 | 19 | class Client(object): 20 | def __init__(self, address, port): 21 | self._channel = grpc.insecure_channel(f"{address}:{port}") 22 | 23 | def get_all_traffic_stats(self, reset: bool = False) -> typing.Iterable: 24 | stub = stats_command_pb2_grpc.StatsServiceStub(self._channel) 25 | try: 26 | r = stub.QueryStats(stats_command_pb2.GetStatsRequest( 27 | name="", 28 | reset=reset 29 | )) 30 | for stat in r.stat: 31 | _, email, _, _type = stat.name.split('>>>') 32 | yield { 33 | "email": email, 34 | "type": _type, 35 | "value": stat.value 36 | } 37 | except grpc.RpcError: 38 | return 39 | 40 | def get_user_traffic_downlink(self, email: str, reset: bool = False) -> int: 41 | stub = stats_command_pb2_grpc.StatsServiceStub(self._channel) 42 | try: 43 | return stub.GetStats(stats_command_pb2.GetStatsRequest( 44 | name=f"user>>>{email}>>>traffic>>>downlink", 45 | reset=reset 46 | )).stat.value 47 | except grpc.RpcError: 48 | return 0 49 | 50 | def get_user_traffic_uplink(self, email: str, reset: bool = False) -> int: 51 | stub = stats_command_pb2_grpc.StatsServiceStub(self._channel) 52 | try: 53 | return stub.GetStats(stats_command_pb2.GetStatsRequest( 54 | name=f"user>>>{email}>>>traffic>>>uplink", 55 | reset=reset 56 | )).stat.value 57 | except grpc.RpcError: 58 | return 0 59 | 60 | def add_user(self, 61 | email: str, 62 | inbound_tag: str, 63 | account: Account, 64 | level: int = 0) -> bool: 65 | 66 | stub = command_pb2_grpc.HandlerServiceStub(self._channel) 67 | try: 68 | stub.AlterInbound(command_pb2.AlterInboundRequest( 69 | tag=inbound_tag, 70 | operation=to_typed_message(command_pb2.AddUserOperation( 71 | user=user_pb2.User( 72 | level=level, 73 | email=email, 74 | account=account.message 75 | ) 76 | )) 77 | )) 78 | return True 79 | 80 | except grpc.RpcError as e: 81 | details = e.details() 82 | 83 | if details.endswith(f"User {email} already exists."): 84 | raise errors.EmailExistsError(details, email) 85 | elif details.endswith(f"handler not found: {inbound_tag}"): 86 | raise errors.InboundNotFoundError(details, inbound_tag) 87 | else: 88 | raise errors.V2RayError(details) 89 | 90 | def remove_user(self, email: str, inbound_tag: str) -> bool: 91 | stub = command_pb2_grpc.HandlerServiceStub(self._channel) 92 | try: 93 | stub.AlterInbound(command_pb2.AlterInboundRequest( 94 | tag=inbound_tag, 95 | operation=to_typed_message(command_pb2.RemoveUserOperation( 96 | email=email 97 | )) 98 | )) 99 | return True 100 | except grpc.RpcError as e: 101 | details = e.details() 102 | 103 | if details.endswith(f"User {email} not found."): 104 | raise errors.EmailNotFoundError(details, email) 105 | elif details.endswith(f"handler not found: {inbound_tag}"): 106 | raise errors.InboundNotFoundError(details, inbound_tag) 107 | else: 108 | raise errors.V2RayError(details) 109 | 110 | def add_inbound(self, 111 | tag: str, 112 | address: str, 113 | port: int, 114 | inbound: Inbound) -> bool: 115 | stub = command_pb2_grpc.HandlerServiceStub(self._channel) 116 | try: 117 | stub.AddInbound(command_pb2.AddInboundRequest( 118 | inbound=core_config_pb2.InboundHandlerConfig( 119 | tag=tag, 120 | receiver_settings=to_typed_message( 121 | proxyman_config_pb2.ReceiverConfig( 122 | port_range=port_pb2.PortRange( 123 | From=port, 124 | To=port, 125 | ), 126 | listen=address_pb2.IPOrDomain( 127 | ip=ip2bytes(address), 128 | ), 129 | allocation_strategy=None, 130 | stream_settings=None, 131 | receive_original_destination=None, 132 | domain_override=None, 133 | sniffing_settings=None 134 | ) 135 | ), 136 | proxy_settings=inbound.message 137 | ) 138 | )) 139 | return True 140 | 141 | except grpc.RpcError as e: 142 | details = e.details() 143 | 144 | if details.endswith("address already in use"): 145 | raise errors.AddressAlreadyInUseError(details, port) 146 | else: 147 | raise errors.V2RayError(details) 148 | 149 | def remove_inbound(self, tag: str) -> bool: 150 | stub = command_pb2_grpc.HandlerServiceStub(self._channel) 151 | try: 152 | stub.RemoveInbound(command_pb2.RemoveInboundRequest( 153 | tag=tag 154 | )) 155 | return True 156 | except grpc.RpcError as e: 157 | details = e.details() 158 | if details == 'not enough information for making a decision': 159 | raise errors.InboundNotFoundError(details, tag) 160 | else: 161 | raise errors.V2RayError(details) 162 | -------------------------------------------------------------------------------- /v2api/errors.py: -------------------------------------------------------------------------------- 1 | class V2RayError(Exception): 2 | def __init__(self, details): 3 | self.details = details 4 | 5 | 6 | class EmailExistsError(V2RayError): 7 | def __init__(self, details, email): 8 | self.email = email 9 | super(EmailExistsError, self).__init__(details) 10 | 11 | 12 | class EmailNotFoundError(V2RayError): 13 | def __init__(self, details, email): 14 | self.email = email 15 | super(EmailNotFoundError, self).__init__(details) 16 | 17 | 18 | class InboundNotFoundError(V2RayError): 19 | def __init__(self, details, inbound_tag): 20 | self.inbound_tag = inbound_tag 21 | super(InboundNotFoundError, self).__init__(details) 22 | 23 | 24 | class AddressAlreadyInUseError(V2RayError): 25 | def __init__(self, details, port): 26 | self.port = port 27 | super(AddressAlreadyInUseError, self).__init__(details) 28 | -------------------------------------------------------------------------------- /v2api/proto/app/browserforwarder/config_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: app/browserforwarder/config.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | 15 | 16 | DESCRIPTOR = _descriptor.FileDescriptor( 17 | name='app/browserforwarder/config.proto', 18 | package='v2ray.core.app.browserforwarder', 19 | syntax='proto3', 20 | serialized_options=b'\n#com.v2ray.core.app.browserforwarderP\001Z3github.com/v2fly/v2ray-core/v4/app/browserforwarder\252\002\037V2Ray.Core.App.Browserforwarder', 21 | create_key=_descriptor._internal_create_key, 22 | serialized_pb=b'\n!app/browserforwarder/config.proto\x12\x1fv2ray.core.app.browserforwarder\"2\n\x06\x43onfig\x12\x13\n\x0blisten_addr\x18\x01 \x01(\t\x12\x13\n\x0blisten_port\x18\x02 \x01(\x05\x42~\n#com.v2ray.core.app.browserforwarderP\x01Z3github.com/v2fly/v2ray-core/v4/app/browserforwarder\xaa\x02\x1fV2Ray.Core.App.Browserforwarderb\x06proto3' 23 | ) 24 | 25 | 26 | 27 | 28 | _CONFIG = _descriptor.Descriptor( 29 | name='Config', 30 | full_name='v2ray.core.app.browserforwarder.Config', 31 | filename=None, 32 | file=DESCRIPTOR, 33 | containing_type=None, 34 | create_key=_descriptor._internal_create_key, 35 | fields=[ 36 | _descriptor.FieldDescriptor( 37 | name='listen_addr', full_name='v2ray.core.app.browserforwarder.Config.listen_addr', index=0, 38 | number=1, type=9, cpp_type=9, label=1, 39 | has_default_value=False, default_value=b"".decode('utf-8'), 40 | message_type=None, enum_type=None, containing_type=None, 41 | is_extension=False, extension_scope=None, 42 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 43 | _descriptor.FieldDescriptor( 44 | name='listen_port', full_name='v2ray.core.app.browserforwarder.Config.listen_port', index=1, 45 | number=2, type=5, cpp_type=1, label=1, 46 | has_default_value=False, default_value=0, 47 | message_type=None, enum_type=None, containing_type=None, 48 | is_extension=False, extension_scope=None, 49 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 50 | ], 51 | extensions=[ 52 | ], 53 | nested_types=[], 54 | enum_types=[ 55 | ], 56 | serialized_options=None, 57 | is_extendable=False, 58 | syntax='proto3', 59 | extension_ranges=[], 60 | oneofs=[ 61 | ], 62 | serialized_start=70, 63 | serialized_end=120, 64 | ) 65 | 66 | DESCRIPTOR.message_types_by_name['Config'] = _CONFIG 67 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 68 | 69 | Config = _reflection.GeneratedProtocolMessageType('Config', (_message.Message,), { 70 | 'DESCRIPTOR' : _CONFIG, 71 | '__module__' : 'app.browserforwarder.config_pb2' 72 | # @@protoc_insertion_point(class_scope:v2ray.core.app.browserforwarder.Config) 73 | }) 74 | _sym_db.RegisterMessage(Config) 75 | 76 | 77 | DESCRIPTOR._options = None 78 | # @@protoc_insertion_point(module_scope) 79 | -------------------------------------------------------------------------------- /v2api/proto/app/browserforwarder/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/app/commander/config_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: app/commander/config.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | from common.serial import typed_message_pb2 as common_dot_serial_dot_typed__message__pb2 15 | 16 | 17 | DESCRIPTOR = _descriptor.FileDescriptor( 18 | name='app/commander/config.proto', 19 | package='v2ray.core.app.commander', 20 | syntax='proto3', 21 | serialized_options=b'\n\034com.v2ray.core.app.commanderP\001Z,github.com/v2fly/v2ray-core/v4/app/commander\252\002\030V2Ray.Core.App.Commander', 22 | create_key=_descriptor._internal_create_key, 23 | serialized_pb=b'\n\x1a\x61pp/commander/config.proto\x12\x18v2ray.core.app.commander\x1a!common/serial/typed_message.proto\"N\n\x06\x43onfig\x12\x0b\n\x03tag\x18\x01 \x01(\t\x12\x37\n\x07service\x18\x02 \x03(\x0b\x32&.v2ray.core.common.serial.TypedMessage\"\x12\n\x10ReflectionConfigBi\n\x1c\x63om.v2ray.core.app.commanderP\x01Z,github.com/v2fly/v2ray-core/v4/app/commander\xaa\x02\x18V2Ray.Core.App.Commanderb\x06proto3' 24 | , 25 | dependencies=[common_dot_serial_dot_typed__message__pb2.DESCRIPTOR,]) 26 | 27 | 28 | 29 | 30 | _CONFIG = _descriptor.Descriptor( 31 | name='Config', 32 | full_name='v2ray.core.app.commander.Config', 33 | filename=None, 34 | file=DESCRIPTOR, 35 | containing_type=None, 36 | create_key=_descriptor._internal_create_key, 37 | fields=[ 38 | _descriptor.FieldDescriptor( 39 | name='tag', full_name='v2ray.core.app.commander.Config.tag', index=0, 40 | number=1, type=9, cpp_type=9, label=1, 41 | has_default_value=False, default_value=b"".decode('utf-8'), 42 | message_type=None, enum_type=None, containing_type=None, 43 | is_extension=False, extension_scope=None, 44 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 45 | _descriptor.FieldDescriptor( 46 | name='service', full_name='v2ray.core.app.commander.Config.service', index=1, 47 | number=2, type=11, cpp_type=10, label=3, 48 | has_default_value=False, default_value=[], 49 | message_type=None, enum_type=None, containing_type=None, 50 | is_extension=False, extension_scope=None, 51 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 52 | ], 53 | extensions=[ 54 | ], 55 | nested_types=[], 56 | enum_types=[ 57 | ], 58 | serialized_options=None, 59 | is_extendable=False, 60 | syntax='proto3', 61 | extension_ranges=[], 62 | oneofs=[ 63 | ], 64 | serialized_start=91, 65 | serialized_end=169, 66 | ) 67 | 68 | 69 | _REFLECTIONCONFIG = _descriptor.Descriptor( 70 | name='ReflectionConfig', 71 | full_name='v2ray.core.app.commander.ReflectionConfig', 72 | filename=None, 73 | file=DESCRIPTOR, 74 | containing_type=None, 75 | create_key=_descriptor._internal_create_key, 76 | fields=[ 77 | ], 78 | extensions=[ 79 | ], 80 | nested_types=[], 81 | enum_types=[ 82 | ], 83 | serialized_options=None, 84 | is_extendable=False, 85 | syntax='proto3', 86 | extension_ranges=[], 87 | oneofs=[ 88 | ], 89 | serialized_start=171, 90 | serialized_end=189, 91 | ) 92 | 93 | _CONFIG.fields_by_name['service'].message_type = common_dot_serial_dot_typed__message__pb2._TYPEDMESSAGE 94 | DESCRIPTOR.message_types_by_name['Config'] = _CONFIG 95 | DESCRIPTOR.message_types_by_name['ReflectionConfig'] = _REFLECTIONCONFIG 96 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 97 | 98 | Config = _reflection.GeneratedProtocolMessageType('Config', (_message.Message,), { 99 | 'DESCRIPTOR' : _CONFIG, 100 | '__module__' : 'app.commander.config_pb2' 101 | # @@protoc_insertion_point(class_scope:v2ray.core.app.commander.Config) 102 | }) 103 | _sym_db.RegisterMessage(Config) 104 | 105 | ReflectionConfig = _reflection.GeneratedProtocolMessageType('ReflectionConfig', (_message.Message,), { 106 | 'DESCRIPTOR' : _REFLECTIONCONFIG, 107 | '__module__' : 'app.commander.config_pb2' 108 | # @@protoc_insertion_point(class_scope:v2ray.core.app.commander.ReflectionConfig) 109 | }) 110 | _sym_db.RegisterMessage(ReflectionConfig) 111 | 112 | 113 | DESCRIPTOR._options = None 114 | # @@protoc_insertion_point(module_scope) 115 | -------------------------------------------------------------------------------- /v2api/proto/app/commander/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/app/dispatcher/config_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: app/dispatcher/config.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | 15 | 16 | DESCRIPTOR = _descriptor.FileDescriptor( 17 | name='app/dispatcher/config.proto', 18 | package='v2ray.core.app.dispatcher', 19 | syntax='proto3', 20 | serialized_options=b'\n\035com.v2ray.core.app.dispatcherP\001Z-github.com/v2fly/v2ray-core/v4/app/dispatcher\252\002\031V2Ray.Core.App.Dispatcher', 21 | create_key=_descriptor._internal_create_key, 22 | serialized_pb=b'\n\x1b\x61pp/dispatcher/config.proto\x12\x19v2ray.core.app.dispatcher\"\x15\n\rSessionConfigJ\x04\x08\x01\x10\x02\"D\n\x06\x43onfig\x12:\n\x08settings\x18\x01 \x01(\x0b\x32(.v2ray.core.app.dispatcher.SessionConfigBl\n\x1d\x63om.v2ray.core.app.dispatcherP\x01Z-github.com/v2fly/v2ray-core/v4/app/dispatcher\xaa\x02\x19V2Ray.Core.App.Dispatcherb\x06proto3' 23 | ) 24 | 25 | 26 | 27 | 28 | _SESSIONCONFIG = _descriptor.Descriptor( 29 | name='SessionConfig', 30 | full_name='v2ray.core.app.dispatcher.SessionConfig', 31 | filename=None, 32 | file=DESCRIPTOR, 33 | containing_type=None, 34 | create_key=_descriptor._internal_create_key, 35 | fields=[ 36 | ], 37 | extensions=[ 38 | ], 39 | nested_types=[], 40 | enum_types=[ 41 | ], 42 | serialized_options=None, 43 | is_extendable=False, 44 | syntax='proto3', 45 | extension_ranges=[], 46 | oneofs=[ 47 | ], 48 | serialized_start=58, 49 | serialized_end=79, 50 | ) 51 | 52 | 53 | _CONFIG = _descriptor.Descriptor( 54 | name='Config', 55 | full_name='v2ray.core.app.dispatcher.Config', 56 | filename=None, 57 | file=DESCRIPTOR, 58 | containing_type=None, 59 | create_key=_descriptor._internal_create_key, 60 | fields=[ 61 | _descriptor.FieldDescriptor( 62 | name='settings', full_name='v2ray.core.app.dispatcher.Config.settings', index=0, 63 | number=1, type=11, cpp_type=10, label=1, 64 | has_default_value=False, default_value=None, 65 | message_type=None, enum_type=None, containing_type=None, 66 | is_extension=False, extension_scope=None, 67 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 68 | ], 69 | extensions=[ 70 | ], 71 | nested_types=[], 72 | enum_types=[ 73 | ], 74 | serialized_options=None, 75 | is_extendable=False, 76 | syntax='proto3', 77 | extension_ranges=[], 78 | oneofs=[ 79 | ], 80 | serialized_start=81, 81 | serialized_end=149, 82 | ) 83 | 84 | _CONFIG.fields_by_name['settings'].message_type = _SESSIONCONFIG 85 | DESCRIPTOR.message_types_by_name['SessionConfig'] = _SESSIONCONFIG 86 | DESCRIPTOR.message_types_by_name['Config'] = _CONFIG 87 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 88 | 89 | SessionConfig = _reflection.GeneratedProtocolMessageType('SessionConfig', (_message.Message,), { 90 | 'DESCRIPTOR' : _SESSIONCONFIG, 91 | '__module__' : 'app.dispatcher.config_pb2' 92 | # @@protoc_insertion_point(class_scope:v2ray.core.app.dispatcher.SessionConfig) 93 | }) 94 | _sym_db.RegisterMessage(SessionConfig) 95 | 96 | Config = _reflection.GeneratedProtocolMessageType('Config', (_message.Message,), { 97 | 'DESCRIPTOR' : _CONFIG, 98 | '__module__' : 'app.dispatcher.config_pb2' 99 | # @@protoc_insertion_point(class_scope:v2ray.core.app.dispatcher.Config) 100 | }) 101 | _sym_db.RegisterMessage(Config) 102 | 103 | 104 | DESCRIPTOR._options = None 105 | # @@protoc_insertion_point(module_scope) 106 | -------------------------------------------------------------------------------- /v2api/proto/app/dispatcher/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/app/dns/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/app/dns/fakedns/fakedns_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: app/dns/fakedns/fakedns.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | 15 | 16 | DESCRIPTOR = _descriptor.FileDescriptor( 17 | name='app/dns/fakedns/fakedns.proto', 18 | package='v2ray.core.app.dns.fakedns', 19 | syntax='proto3', 20 | serialized_options=b'\n\036com.v2ray.core.app.dns.fakednsP\001Z.github.com/v2fly/v2ray-core/v4/app/dns/fakedns\252\002\032V2Ray.Core.App.Dns.Fakedns', 21 | create_key=_descriptor._internal_create_key, 22 | serialized_pb=b'\n\x1d\x61pp/dns/fakedns/fakedns.proto\x12\x1av2ray.core.app.dns.fakedns\"/\n\x0b\x46\x61keDnsPool\x12\x0f\n\x07ip_pool\x18\x01 \x01(\t\x12\x0f\n\x07lruSize\x18\x02 \x01(\x03\x42o\n\x1e\x63om.v2ray.core.app.dns.fakednsP\x01Z.github.com/v2fly/v2ray-core/v4/app/dns/fakedns\xaa\x02\x1aV2Ray.Core.App.Dns.Fakednsb\x06proto3' 23 | ) 24 | 25 | 26 | 27 | 28 | _FAKEDNSPOOL = _descriptor.Descriptor( 29 | name='FakeDnsPool', 30 | full_name='v2ray.core.app.dns.fakedns.FakeDnsPool', 31 | filename=None, 32 | file=DESCRIPTOR, 33 | containing_type=None, 34 | create_key=_descriptor._internal_create_key, 35 | fields=[ 36 | _descriptor.FieldDescriptor( 37 | name='ip_pool', full_name='v2ray.core.app.dns.fakedns.FakeDnsPool.ip_pool', index=0, 38 | number=1, type=9, cpp_type=9, label=1, 39 | has_default_value=False, default_value=b"".decode('utf-8'), 40 | message_type=None, enum_type=None, containing_type=None, 41 | is_extension=False, extension_scope=None, 42 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 43 | _descriptor.FieldDescriptor( 44 | name='lruSize', full_name='v2ray.core.app.dns.fakedns.FakeDnsPool.lruSize', index=1, 45 | number=2, type=3, cpp_type=2, label=1, 46 | has_default_value=False, default_value=0, 47 | message_type=None, enum_type=None, containing_type=None, 48 | is_extension=False, extension_scope=None, 49 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 50 | ], 51 | extensions=[ 52 | ], 53 | nested_types=[], 54 | enum_types=[ 55 | ], 56 | serialized_options=None, 57 | is_extendable=False, 58 | syntax='proto3', 59 | extension_ranges=[], 60 | oneofs=[ 61 | ], 62 | serialized_start=61, 63 | serialized_end=108, 64 | ) 65 | 66 | DESCRIPTOR.message_types_by_name['FakeDnsPool'] = _FAKEDNSPOOL 67 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 68 | 69 | FakeDnsPool = _reflection.GeneratedProtocolMessageType('FakeDnsPool', (_message.Message,), { 70 | 'DESCRIPTOR' : _FAKEDNSPOOL, 71 | '__module__' : 'app.dns.fakedns.fakedns_pb2' 72 | # @@protoc_insertion_point(class_scope:v2ray.core.app.dns.fakedns.FakeDnsPool) 73 | }) 74 | _sym_db.RegisterMessage(FakeDnsPool) 75 | 76 | 77 | DESCRIPTOR._options = None 78 | # @@protoc_insertion_point(module_scope) 79 | -------------------------------------------------------------------------------- /v2api/proto/app/dns/fakedns/fakedns_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/app/log/command/config_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: app/log/command/config.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | 15 | 16 | DESCRIPTOR = _descriptor.FileDescriptor( 17 | name='app/log/command/config.proto', 18 | package='v2ray.core.app.log.command', 19 | syntax='proto3', 20 | serialized_options=b'\n\036com.v2ray.core.app.log.commandP\001Z.github.com/v2fly/v2ray-core/v4/app/log/command\252\002\032V2Ray.Core.App.Log.Command', 21 | create_key=_descriptor._internal_create_key, 22 | serialized_pb=b'\n\x1c\x61pp/log/command/config.proto\x12\x1av2ray.core.app.log.command\"\x08\n\x06\x43onfig\"\x16\n\x14RestartLoggerRequest\"\x17\n\x15RestartLoggerResponse2\x87\x01\n\rLoggerService\x12v\n\rRestartLogger\x12\x30.v2ray.core.app.log.command.RestartLoggerRequest\x1a\x31.v2ray.core.app.log.command.RestartLoggerResponse\"\x00\x42o\n\x1e\x63om.v2ray.core.app.log.commandP\x01Z.github.com/v2fly/v2ray-core/v4/app/log/command\xaa\x02\x1aV2Ray.Core.App.Log.Commandb\x06proto3' 23 | ) 24 | 25 | 26 | 27 | 28 | _CONFIG = _descriptor.Descriptor( 29 | name='Config', 30 | full_name='v2ray.core.app.log.command.Config', 31 | filename=None, 32 | file=DESCRIPTOR, 33 | containing_type=None, 34 | create_key=_descriptor._internal_create_key, 35 | fields=[ 36 | ], 37 | extensions=[ 38 | ], 39 | nested_types=[], 40 | enum_types=[ 41 | ], 42 | serialized_options=None, 43 | is_extendable=False, 44 | syntax='proto3', 45 | extension_ranges=[], 46 | oneofs=[ 47 | ], 48 | serialized_start=60, 49 | serialized_end=68, 50 | ) 51 | 52 | 53 | _RESTARTLOGGERREQUEST = _descriptor.Descriptor( 54 | name='RestartLoggerRequest', 55 | full_name='v2ray.core.app.log.command.RestartLoggerRequest', 56 | filename=None, 57 | file=DESCRIPTOR, 58 | containing_type=None, 59 | create_key=_descriptor._internal_create_key, 60 | fields=[ 61 | ], 62 | extensions=[ 63 | ], 64 | nested_types=[], 65 | enum_types=[ 66 | ], 67 | serialized_options=None, 68 | is_extendable=False, 69 | syntax='proto3', 70 | extension_ranges=[], 71 | oneofs=[ 72 | ], 73 | serialized_start=70, 74 | serialized_end=92, 75 | ) 76 | 77 | 78 | _RESTARTLOGGERRESPONSE = _descriptor.Descriptor( 79 | name='RestartLoggerResponse', 80 | full_name='v2ray.core.app.log.command.RestartLoggerResponse', 81 | filename=None, 82 | file=DESCRIPTOR, 83 | containing_type=None, 84 | create_key=_descriptor._internal_create_key, 85 | fields=[ 86 | ], 87 | extensions=[ 88 | ], 89 | nested_types=[], 90 | enum_types=[ 91 | ], 92 | serialized_options=None, 93 | is_extendable=False, 94 | syntax='proto3', 95 | extension_ranges=[], 96 | oneofs=[ 97 | ], 98 | serialized_start=94, 99 | serialized_end=117, 100 | ) 101 | 102 | DESCRIPTOR.message_types_by_name['Config'] = _CONFIG 103 | DESCRIPTOR.message_types_by_name['RestartLoggerRequest'] = _RESTARTLOGGERREQUEST 104 | DESCRIPTOR.message_types_by_name['RestartLoggerResponse'] = _RESTARTLOGGERRESPONSE 105 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 106 | 107 | Config = _reflection.GeneratedProtocolMessageType('Config', (_message.Message,), { 108 | 'DESCRIPTOR' : _CONFIG, 109 | '__module__' : 'app.log.command.config_pb2' 110 | # @@protoc_insertion_point(class_scope:v2ray.core.app.log.command.Config) 111 | }) 112 | _sym_db.RegisterMessage(Config) 113 | 114 | RestartLoggerRequest = _reflection.GeneratedProtocolMessageType('RestartLoggerRequest', (_message.Message,), { 115 | 'DESCRIPTOR' : _RESTARTLOGGERREQUEST, 116 | '__module__' : 'app.log.command.config_pb2' 117 | # @@protoc_insertion_point(class_scope:v2ray.core.app.log.command.RestartLoggerRequest) 118 | }) 119 | _sym_db.RegisterMessage(RestartLoggerRequest) 120 | 121 | RestartLoggerResponse = _reflection.GeneratedProtocolMessageType('RestartLoggerResponse', (_message.Message,), { 122 | 'DESCRIPTOR' : _RESTARTLOGGERRESPONSE, 123 | '__module__' : 'app.log.command.config_pb2' 124 | # @@protoc_insertion_point(class_scope:v2ray.core.app.log.command.RestartLoggerResponse) 125 | }) 126 | _sym_db.RegisterMessage(RestartLoggerResponse) 127 | 128 | 129 | DESCRIPTOR._options = None 130 | 131 | _LOGGERSERVICE = _descriptor.ServiceDescriptor( 132 | name='LoggerService', 133 | full_name='v2ray.core.app.log.command.LoggerService', 134 | file=DESCRIPTOR, 135 | index=0, 136 | serialized_options=None, 137 | create_key=_descriptor._internal_create_key, 138 | serialized_start=120, 139 | serialized_end=255, 140 | methods=[ 141 | _descriptor.MethodDescriptor( 142 | name='RestartLogger', 143 | full_name='v2ray.core.app.log.command.LoggerService.RestartLogger', 144 | index=0, 145 | containing_service=None, 146 | input_type=_RESTARTLOGGERREQUEST, 147 | output_type=_RESTARTLOGGERRESPONSE, 148 | serialized_options=None, 149 | create_key=_descriptor._internal_create_key, 150 | ), 151 | ]) 152 | _sym_db.RegisterServiceDescriptor(_LOGGERSERVICE) 153 | 154 | DESCRIPTOR.services_by_name['LoggerService'] = _LOGGERSERVICE 155 | 156 | # @@protoc_insertion_point(module_scope) 157 | -------------------------------------------------------------------------------- /v2api/proto/app/log/command/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | from app.log.command import config_pb2 as app_dot_log_dot_command_dot_config__pb2 6 | 7 | 8 | class LoggerServiceStub(object): 9 | """Missing associated documentation comment in .proto file.""" 10 | 11 | def __init__(self, channel): 12 | """Constructor. 13 | 14 | Args: 15 | channel: A grpc.Channel. 16 | """ 17 | self.RestartLogger = channel.unary_unary( 18 | '/v2ray.core.app.log.command.LoggerService/RestartLogger', 19 | request_serializer=app_dot_log_dot_command_dot_config__pb2.RestartLoggerRequest.SerializeToString, 20 | response_deserializer=app_dot_log_dot_command_dot_config__pb2.RestartLoggerResponse.FromString, 21 | ) 22 | 23 | 24 | class LoggerServiceServicer(object): 25 | """Missing associated documentation comment in .proto file.""" 26 | 27 | def RestartLogger(self, request, context): 28 | """Missing associated documentation comment in .proto file.""" 29 | context.set_code(grpc.StatusCode.UNIMPLEMENTED) 30 | context.set_details('Method not implemented!') 31 | raise NotImplementedError('Method not implemented!') 32 | 33 | 34 | def add_LoggerServiceServicer_to_server(servicer, server): 35 | rpc_method_handlers = { 36 | 'RestartLogger': grpc.unary_unary_rpc_method_handler( 37 | servicer.RestartLogger, 38 | request_deserializer=app_dot_log_dot_command_dot_config__pb2.RestartLoggerRequest.FromString, 39 | response_serializer=app_dot_log_dot_command_dot_config__pb2.RestartLoggerResponse.SerializeToString, 40 | ), 41 | } 42 | generic_handler = grpc.method_handlers_generic_handler( 43 | 'v2ray.core.app.log.command.LoggerService', rpc_method_handlers) 44 | server.add_generic_rpc_handlers((generic_handler,)) 45 | 46 | 47 | # This class is part of an EXPERIMENTAL API. 48 | class LoggerService(object): 49 | """Missing associated documentation comment in .proto file.""" 50 | 51 | @staticmethod 52 | def RestartLogger(request, 53 | target, 54 | options=(), 55 | channel_credentials=None, 56 | call_credentials=None, 57 | insecure=False, 58 | compression=None, 59 | wait_for_ready=None, 60 | timeout=None, 61 | metadata=None): 62 | return grpc.experimental.unary_unary(request, target, '/v2ray.core.app.log.command.LoggerService/RestartLogger', 63 | app_dot_log_dot_command_dot_config__pb2.RestartLoggerRequest.SerializeToString, 64 | app_dot_log_dot_command_dot_config__pb2.RestartLoggerResponse.FromString, 65 | options, channel_credentials, 66 | insecure, call_credentials, compression, wait_for_ready, timeout, metadata) 67 | -------------------------------------------------------------------------------- /v2api/proto/app/log/config_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: app/log/config.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf.internal import enum_type_wrapper 6 | from google.protobuf import descriptor as _descriptor 7 | from google.protobuf import message as _message 8 | from google.protobuf import reflection as _reflection 9 | from google.protobuf import symbol_database as _symbol_database 10 | # @@protoc_insertion_point(imports) 11 | 12 | _sym_db = _symbol_database.Default() 13 | 14 | 15 | from common.log import log_pb2 as common_dot_log_dot_log__pb2 16 | 17 | 18 | DESCRIPTOR = _descriptor.FileDescriptor( 19 | name='app/log/config.proto', 20 | package='v2ray.core.app.log', 21 | syntax='proto3', 22 | serialized_options=b'\n\026com.v2ray.core.app.logP\001Z&github.com/v2fly/v2ray-core/v4/app/log\252\002\022V2Ray.Core.App.Log', 23 | create_key=_descriptor._internal_create_key, 24 | serialized_pb=b'\n\x14\x61pp/log/config.proto\x12\x12v2ray.core.app.log\x1a\x14\x63ommon/log/log.proto\"\xde\x01\n\x06\x43onfig\x12\x33\n\x0e\x65rror_log_type\x18\x01 \x01(\x0e\x32\x1b.v2ray.core.app.log.LogType\x12\x38\n\x0f\x65rror_log_level\x18\x02 \x01(\x0e\x32\x1f.v2ray.core.common.log.Severity\x12\x16\n\x0e\x65rror_log_path\x18\x03 \x01(\t\x12\x34\n\x0f\x61\x63\x63\x65ss_log_type\x18\x04 \x01(\x0e\x32\x1b.v2ray.core.app.log.LogType\x12\x17\n\x0f\x61\x63\x63\x65ss_log_path\x18\x05 \x01(\t*5\n\x07LogType\x12\x08\n\x04None\x10\x00\x12\x0b\n\x07\x43onsole\x10\x01\x12\x08\n\x04\x46ile\x10\x02\x12\t\n\x05\x45vent\x10\x03\x42W\n\x16\x63om.v2ray.core.app.logP\x01Z&github.com/v2fly/v2ray-core/v4/app/log\xaa\x02\x12V2Ray.Core.App.Logb\x06proto3' 25 | , 26 | dependencies=[common_dot_log_dot_log__pb2.DESCRIPTOR,]) 27 | 28 | _LOGTYPE = _descriptor.EnumDescriptor( 29 | name='LogType', 30 | full_name='v2ray.core.app.log.LogType', 31 | filename=None, 32 | file=DESCRIPTOR, 33 | create_key=_descriptor._internal_create_key, 34 | values=[ 35 | _descriptor.EnumValueDescriptor( 36 | name='None', index=0, number=0, 37 | serialized_options=None, 38 | type=None, 39 | create_key=_descriptor._internal_create_key), 40 | _descriptor.EnumValueDescriptor( 41 | name='Console', index=1, number=1, 42 | serialized_options=None, 43 | type=None, 44 | create_key=_descriptor._internal_create_key), 45 | _descriptor.EnumValueDescriptor( 46 | name='File', index=2, number=2, 47 | serialized_options=None, 48 | type=None, 49 | create_key=_descriptor._internal_create_key), 50 | _descriptor.EnumValueDescriptor( 51 | name='Event', index=3, number=3, 52 | serialized_options=None, 53 | type=None, 54 | create_key=_descriptor._internal_create_key), 55 | ], 56 | containing_type=None, 57 | serialized_options=None, 58 | serialized_start=291, 59 | serialized_end=344, 60 | ) 61 | _sym_db.RegisterEnumDescriptor(_LOGTYPE) 62 | 63 | LogType = enum_type_wrapper.EnumTypeWrapper(_LOGTYPE) 64 | globals()['None'] = 0 65 | Console = 1 66 | File = 2 67 | Event = 3 68 | 69 | 70 | 71 | _CONFIG = _descriptor.Descriptor( 72 | name='Config', 73 | full_name='v2ray.core.app.log.Config', 74 | filename=None, 75 | file=DESCRIPTOR, 76 | containing_type=None, 77 | create_key=_descriptor._internal_create_key, 78 | fields=[ 79 | _descriptor.FieldDescriptor( 80 | name='error_log_type', full_name='v2ray.core.app.log.Config.error_log_type', index=0, 81 | number=1, type=14, cpp_type=8, label=1, 82 | has_default_value=False, default_value=0, 83 | message_type=None, enum_type=None, containing_type=None, 84 | is_extension=False, extension_scope=None, 85 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 86 | _descriptor.FieldDescriptor( 87 | name='error_log_level', full_name='v2ray.core.app.log.Config.error_log_level', index=1, 88 | number=2, type=14, cpp_type=8, label=1, 89 | has_default_value=False, default_value=0, 90 | message_type=None, enum_type=None, containing_type=None, 91 | is_extension=False, extension_scope=None, 92 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 93 | _descriptor.FieldDescriptor( 94 | name='error_log_path', full_name='v2ray.core.app.log.Config.error_log_path', index=2, 95 | number=3, type=9, cpp_type=9, label=1, 96 | has_default_value=False, default_value=b"".decode('utf-8'), 97 | message_type=None, enum_type=None, containing_type=None, 98 | is_extension=False, extension_scope=None, 99 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 100 | _descriptor.FieldDescriptor( 101 | name='access_log_type', full_name='v2ray.core.app.log.Config.access_log_type', index=3, 102 | number=4, type=14, cpp_type=8, label=1, 103 | has_default_value=False, default_value=0, 104 | message_type=None, enum_type=None, containing_type=None, 105 | is_extension=False, extension_scope=None, 106 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 107 | _descriptor.FieldDescriptor( 108 | name='access_log_path', full_name='v2ray.core.app.log.Config.access_log_path', index=4, 109 | number=5, type=9, cpp_type=9, label=1, 110 | has_default_value=False, default_value=b"".decode('utf-8'), 111 | message_type=None, enum_type=None, containing_type=None, 112 | is_extension=False, extension_scope=None, 113 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 114 | ], 115 | extensions=[ 116 | ], 117 | nested_types=[], 118 | enum_types=[ 119 | ], 120 | serialized_options=None, 121 | is_extendable=False, 122 | syntax='proto3', 123 | extension_ranges=[], 124 | oneofs=[ 125 | ], 126 | serialized_start=67, 127 | serialized_end=289, 128 | ) 129 | 130 | _CONFIG.fields_by_name['error_log_type'].enum_type = _LOGTYPE 131 | _CONFIG.fields_by_name['error_log_level'].enum_type = common_dot_log_dot_log__pb2._SEVERITY 132 | _CONFIG.fields_by_name['access_log_type'].enum_type = _LOGTYPE 133 | DESCRIPTOR.message_types_by_name['Config'] = _CONFIG 134 | DESCRIPTOR.enum_types_by_name['LogType'] = _LOGTYPE 135 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 136 | 137 | Config = _reflection.GeneratedProtocolMessageType('Config', (_message.Message,), { 138 | 'DESCRIPTOR' : _CONFIG, 139 | '__module__' : 'app.log.config_pb2' 140 | # @@protoc_insertion_point(class_scope:v2ray.core.app.log.Config) 141 | }) 142 | _sym_db.RegisterMessage(Config) 143 | 144 | 145 | DESCRIPTOR._options = None 146 | # @@protoc_insertion_point(module_scope) 147 | -------------------------------------------------------------------------------- /v2api/proto/app/log/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/app/policy/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/app/proxyman/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/app/reverse/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/app/router/command/command_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | from app.router.command import command_pb2 as app_dot_router_dot_command_dot_command__pb2 6 | 7 | 8 | class RoutingServiceStub(object): 9 | """Missing associated documentation comment in .proto file.""" 10 | 11 | def __init__(self, channel): 12 | """Constructor. 13 | 14 | Args: 15 | channel: A grpc.Channel. 16 | """ 17 | self.SubscribeRoutingStats = channel.unary_stream( 18 | '/v2ray.core.app.router.command.RoutingService/SubscribeRoutingStats', 19 | request_serializer=app_dot_router_dot_command_dot_command__pb2.SubscribeRoutingStatsRequest.SerializeToString, 20 | response_deserializer=app_dot_router_dot_command_dot_command__pb2.RoutingContext.FromString, 21 | ) 22 | self.TestRoute = channel.unary_unary( 23 | '/v2ray.core.app.router.command.RoutingService/TestRoute', 24 | request_serializer=app_dot_router_dot_command_dot_command__pb2.TestRouteRequest.SerializeToString, 25 | response_deserializer=app_dot_router_dot_command_dot_command__pb2.RoutingContext.FromString, 26 | ) 27 | 28 | 29 | class RoutingServiceServicer(object): 30 | """Missing associated documentation comment in .proto file.""" 31 | 32 | def SubscribeRoutingStats(self, request, context): 33 | """Missing associated documentation comment in .proto file.""" 34 | context.set_code(grpc.StatusCode.UNIMPLEMENTED) 35 | context.set_details('Method not implemented!') 36 | raise NotImplementedError('Method not implemented!') 37 | 38 | def TestRoute(self, request, context): 39 | """Missing associated documentation comment in .proto file.""" 40 | context.set_code(grpc.StatusCode.UNIMPLEMENTED) 41 | context.set_details('Method not implemented!') 42 | raise NotImplementedError('Method not implemented!') 43 | 44 | 45 | def add_RoutingServiceServicer_to_server(servicer, server): 46 | rpc_method_handlers = { 47 | 'SubscribeRoutingStats': grpc.unary_stream_rpc_method_handler( 48 | servicer.SubscribeRoutingStats, 49 | request_deserializer=app_dot_router_dot_command_dot_command__pb2.SubscribeRoutingStatsRequest.FromString, 50 | response_serializer=app_dot_router_dot_command_dot_command__pb2.RoutingContext.SerializeToString, 51 | ), 52 | 'TestRoute': grpc.unary_unary_rpc_method_handler( 53 | servicer.TestRoute, 54 | request_deserializer=app_dot_router_dot_command_dot_command__pb2.TestRouteRequest.FromString, 55 | response_serializer=app_dot_router_dot_command_dot_command__pb2.RoutingContext.SerializeToString, 56 | ), 57 | } 58 | generic_handler = grpc.method_handlers_generic_handler( 59 | 'v2ray.core.app.router.command.RoutingService', rpc_method_handlers) 60 | server.add_generic_rpc_handlers((generic_handler,)) 61 | 62 | 63 | # This class is part of an EXPERIMENTAL API. 64 | class RoutingService(object): 65 | """Missing associated documentation comment in .proto file.""" 66 | 67 | @staticmethod 68 | def SubscribeRoutingStats(request, 69 | target, 70 | options=(), 71 | channel_credentials=None, 72 | call_credentials=None, 73 | insecure=False, 74 | compression=None, 75 | wait_for_ready=None, 76 | timeout=None, 77 | metadata=None): 78 | return grpc.experimental.unary_stream(request, target, '/v2ray.core.app.router.command.RoutingService/SubscribeRoutingStats', 79 | app_dot_router_dot_command_dot_command__pb2.SubscribeRoutingStatsRequest.SerializeToString, 80 | app_dot_router_dot_command_dot_command__pb2.RoutingContext.FromString, 81 | options, channel_credentials, 82 | insecure, call_credentials, compression, wait_for_ready, timeout, metadata) 83 | 84 | @staticmethod 85 | def TestRoute(request, 86 | target, 87 | options=(), 88 | channel_credentials=None, 89 | call_credentials=None, 90 | insecure=False, 91 | compression=None, 92 | wait_for_ready=None, 93 | timeout=None, 94 | metadata=None): 95 | return grpc.experimental.unary_unary(request, target, '/v2ray.core.app.router.command.RoutingService/TestRoute', 96 | app_dot_router_dot_command_dot_command__pb2.TestRouteRequest.SerializeToString, 97 | app_dot_router_dot_command_dot_command__pb2.RoutingContext.FromString, 98 | options, channel_credentials, 99 | insecure, call_credentials, compression, wait_for_ready, timeout, metadata) 100 | -------------------------------------------------------------------------------- /v2api/proto/app/router/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/app/stats/command/command_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | from app.stats.command import command_pb2 as app_dot_stats_dot_command_dot_command__pb2 6 | 7 | 8 | class StatsServiceStub(object): 9 | """Missing associated documentation comment in .proto file.""" 10 | 11 | def __init__(self, channel): 12 | """Constructor. 13 | 14 | Args: 15 | channel: A grpc.Channel. 16 | """ 17 | self.GetStats = channel.unary_unary( 18 | '/v2ray.core.app.stats.command.StatsService/GetStats', 19 | request_serializer=app_dot_stats_dot_command_dot_command__pb2.GetStatsRequest.SerializeToString, 20 | response_deserializer=app_dot_stats_dot_command_dot_command__pb2.GetStatsResponse.FromString, 21 | ) 22 | self.QueryStats = channel.unary_unary( 23 | '/v2ray.core.app.stats.command.StatsService/QueryStats', 24 | request_serializer=app_dot_stats_dot_command_dot_command__pb2.QueryStatsRequest.SerializeToString, 25 | response_deserializer=app_dot_stats_dot_command_dot_command__pb2.QueryStatsResponse.FromString, 26 | ) 27 | self.GetSysStats = channel.unary_unary( 28 | '/v2ray.core.app.stats.command.StatsService/GetSysStats', 29 | request_serializer=app_dot_stats_dot_command_dot_command__pb2.SysStatsRequest.SerializeToString, 30 | response_deserializer=app_dot_stats_dot_command_dot_command__pb2.SysStatsResponse.FromString, 31 | ) 32 | 33 | 34 | class StatsServiceServicer(object): 35 | """Missing associated documentation comment in .proto file.""" 36 | 37 | def GetStats(self, request, context): 38 | """Missing associated documentation comment in .proto file.""" 39 | context.set_code(grpc.StatusCode.UNIMPLEMENTED) 40 | context.set_details('Method not implemented!') 41 | raise NotImplementedError('Method not implemented!') 42 | 43 | def QueryStats(self, request, context): 44 | """Missing associated documentation comment in .proto file.""" 45 | context.set_code(grpc.StatusCode.UNIMPLEMENTED) 46 | context.set_details('Method not implemented!') 47 | raise NotImplementedError('Method not implemented!') 48 | 49 | def GetSysStats(self, request, context): 50 | """Missing associated documentation comment in .proto file.""" 51 | context.set_code(grpc.StatusCode.UNIMPLEMENTED) 52 | context.set_details('Method not implemented!') 53 | raise NotImplementedError('Method not implemented!') 54 | 55 | 56 | def add_StatsServiceServicer_to_server(servicer, server): 57 | rpc_method_handlers = { 58 | 'GetStats': grpc.unary_unary_rpc_method_handler( 59 | servicer.GetStats, 60 | request_deserializer=app_dot_stats_dot_command_dot_command__pb2.GetStatsRequest.FromString, 61 | response_serializer=app_dot_stats_dot_command_dot_command__pb2.GetStatsResponse.SerializeToString, 62 | ), 63 | 'QueryStats': grpc.unary_unary_rpc_method_handler( 64 | servicer.QueryStats, 65 | request_deserializer=app_dot_stats_dot_command_dot_command__pb2.QueryStatsRequest.FromString, 66 | response_serializer=app_dot_stats_dot_command_dot_command__pb2.QueryStatsResponse.SerializeToString, 67 | ), 68 | 'GetSysStats': grpc.unary_unary_rpc_method_handler( 69 | servicer.GetSysStats, 70 | request_deserializer=app_dot_stats_dot_command_dot_command__pb2.SysStatsRequest.FromString, 71 | response_serializer=app_dot_stats_dot_command_dot_command__pb2.SysStatsResponse.SerializeToString, 72 | ), 73 | } 74 | generic_handler = grpc.method_handlers_generic_handler( 75 | 'v2ray.core.app.stats.command.StatsService', rpc_method_handlers) 76 | server.add_generic_rpc_handlers((generic_handler,)) 77 | 78 | 79 | # This class is part of an EXPERIMENTAL API. 80 | class StatsService(object): 81 | """Missing associated documentation comment in .proto file.""" 82 | 83 | @staticmethod 84 | def GetStats(request, 85 | target, 86 | options=(), 87 | channel_credentials=None, 88 | call_credentials=None, 89 | insecure=False, 90 | compression=None, 91 | wait_for_ready=None, 92 | timeout=None, 93 | metadata=None): 94 | return grpc.experimental.unary_unary(request, target, '/v2ray.core.app.stats.command.StatsService/GetStats', 95 | app_dot_stats_dot_command_dot_command__pb2.GetStatsRequest.SerializeToString, 96 | app_dot_stats_dot_command_dot_command__pb2.GetStatsResponse.FromString, 97 | options, channel_credentials, 98 | insecure, call_credentials, compression, wait_for_ready, timeout, metadata) 99 | 100 | @staticmethod 101 | def QueryStats(request, 102 | target, 103 | options=(), 104 | channel_credentials=None, 105 | call_credentials=None, 106 | insecure=False, 107 | compression=None, 108 | wait_for_ready=None, 109 | timeout=None, 110 | metadata=None): 111 | return grpc.experimental.unary_unary(request, target, '/v2ray.core.app.stats.command.StatsService/QueryStats', 112 | app_dot_stats_dot_command_dot_command__pb2.QueryStatsRequest.SerializeToString, 113 | app_dot_stats_dot_command_dot_command__pb2.QueryStatsResponse.FromString, 114 | options, channel_credentials, 115 | insecure, call_credentials, compression, wait_for_ready, timeout, metadata) 116 | 117 | @staticmethod 118 | def GetSysStats(request, 119 | target, 120 | options=(), 121 | channel_credentials=None, 122 | call_credentials=None, 123 | insecure=False, 124 | compression=None, 125 | wait_for_ready=None, 126 | timeout=None, 127 | metadata=None): 128 | return grpc.experimental.unary_unary(request, target, '/v2ray.core.app.stats.command.StatsService/GetSysStats', 129 | app_dot_stats_dot_command_dot_command__pb2.SysStatsRequest.SerializeToString, 130 | app_dot_stats_dot_command_dot_command__pb2.SysStatsResponse.FromString, 131 | options, channel_credentials, 132 | insecure, call_credentials, compression, wait_for_ready, timeout, metadata) 133 | -------------------------------------------------------------------------------- /v2api/proto/app/stats/config_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: app/stats/config.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | 15 | 16 | DESCRIPTOR = _descriptor.FileDescriptor( 17 | name='app/stats/config.proto', 18 | package='v2ray.core.app.stats', 19 | syntax='proto3', 20 | serialized_options=b'\n\030com.v2ray.core.app.statsP\001Z(github.com/v2fly/v2ray-core/v4/app/stats\252\002\024V2Ray.Core.App.Stats', 21 | create_key=_descriptor._internal_create_key, 22 | serialized_pb=b'\n\x16\x61pp/stats/config.proto\x12\x14v2ray.core.app.stats\"\x08\n\x06\x43onfig\"N\n\rChannelConfig\x12\x10\n\x08\x42locking\x18\x01 \x01(\x08\x12\x17\n\x0fSubscriberLimit\x18\x02 \x01(\x05\x12\x12\n\nBufferSize\x18\x03 \x01(\x05\x42]\n\x18\x63om.v2ray.core.app.statsP\x01Z(github.com/v2fly/v2ray-core/v4/app/stats\xaa\x02\x14V2Ray.Core.App.Statsb\x06proto3' 23 | ) 24 | 25 | 26 | 27 | 28 | _CONFIG = _descriptor.Descriptor( 29 | name='Config', 30 | full_name='v2ray.core.app.stats.Config', 31 | filename=None, 32 | file=DESCRIPTOR, 33 | containing_type=None, 34 | create_key=_descriptor._internal_create_key, 35 | fields=[ 36 | ], 37 | extensions=[ 38 | ], 39 | nested_types=[], 40 | enum_types=[ 41 | ], 42 | serialized_options=None, 43 | is_extendable=False, 44 | syntax='proto3', 45 | extension_ranges=[], 46 | oneofs=[ 47 | ], 48 | serialized_start=48, 49 | serialized_end=56, 50 | ) 51 | 52 | 53 | _CHANNELCONFIG = _descriptor.Descriptor( 54 | name='ChannelConfig', 55 | full_name='v2ray.core.app.stats.ChannelConfig', 56 | filename=None, 57 | file=DESCRIPTOR, 58 | containing_type=None, 59 | create_key=_descriptor._internal_create_key, 60 | fields=[ 61 | _descriptor.FieldDescriptor( 62 | name='Blocking', full_name='v2ray.core.app.stats.ChannelConfig.Blocking', index=0, 63 | number=1, type=8, cpp_type=7, label=1, 64 | has_default_value=False, default_value=False, 65 | message_type=None, enum_type=None, containing_type=None, 66 | is_extension=False, extension_scope=None, 67 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 68 | _descriptor.FieldDescriptor( 69 | name='SubscriberLimit', full_name='v2ray.core.app.stats.ChannelConfig.SubscriberLimit', index=1, 70 | number=2, type=5, cpp_type=1, label=1, 71 | has_default_value=False, default_value=0, 72 | message_type=None, enum_type=None, containing_type=None, 73 | is_extension=False, extension_scope=None, 74 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 75 | _descriptor.FieldDescriptor( 76 | name='BufferSize', full_name='v2ray.core.app.stats.ChannelConfig.BufferSize', index=2, 77 | number=3, type=5, cpp_type=1, label=1, 78 | has_default_value=False, default_value=0, 79 | message_type=None, enum_type=None, containing_type=None, 80 | is_extension=False, extension_scope=None, 81 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 82 | ], 83 | extensions=[ 84 | ], 85 | nested_types=[], 86 | enum_types=[ 87 | ], 88 | serialized_options=None, 89 | is_extendable=False, 90 | syntax='proto3', 91 | extension_ranges=[], 92 | oneofs=[ 93 | ], 94 | serialized_start=58, 95 | serialized_end=136, 96 | ) 97 | 98 | DESCRIPTOR.message_types_by_name['Config'] = _CONFIG 99 | DESCRIPTOR.message_types_by_name['ChannelConfig'] = _CHANNELCONFIG 100 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 101 | 102 | Config = _reflection.GeneratedProtocolMessageType('Config', (_message.Message,), { 103 | 'DESCRIPTOR' : _CONFIG, 104 | '__module__' : 'app.stats.config_pb2' 105 | # @@protoc_insertion_point(class_scope:v2ray.core.app.stats.Config) 106 | }) 107 | _sym_db.RegisterMessage(Config) 108 | 109 | ChannelConfig = _reflection.GeneratedProtocolMessageType('ChannelConfig', (_message.Message,), { 110 | 'DESCRIPTOR' : _CHANNELCONFIG, 111 | '__module__' : 'app.stats.config_pb2' 112 | # @@protoc_insertion_point(class_scope:v2ray.core.app.stats.ChannelConfig) 113 | }) 114 | _sym_db.RegisterMessage(ChannelConfig) 115 | 116 | 117 | DESCRIPTOR._options = None 118 | # @@protoc_insertion_point(module_scope) 119 | -------------------------------------------------------------------------------- /v2api/proto/app/stats/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/common/log/log_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: common/log/log.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf.internal import enum_type_wrapper 6 | from google.protobuf import descriptor as _descriptor 7 | from google.protobuf import message as _message 8 | from google.protobuf import reflection as _reflection 9 | from google.protobuf import symbol_database as _symbol_database 10 | # @@protoc_insertion_point(imports) 11 | 12 | _sym_db = _symbol_database.Default() 13 | 14 | 15 | 16 | 17 | DESCRIPTOR = _descriptor.FileDescriptor( 18 | name='common/log/log.proto', 19 | package='v2ray.core.common.log', 20 | syntax='proto3', 21 | serialized_options=b'\n\031com.v2ray.core.common.logP\001Z)github.com/v2fly/v2ray-core/v4/common/log\252\002\025V2Ray.Core.Common.Log', 22 | create_key=_descriptor._internal_create_key, 23 | serialized_pb=b'\n\x14\x63ommon/log/log.proto\x12\x15v2ray.core.common.log*D\n\x08Severity\x12\x0b\n\x07Unknown\x10\x00\x12\t\n\x05\x45rror\x10\x01\x12\x0b\n\x07Warning\x10\x02\x12\x08\n\x04Info\x10\x03\x12\t\n\x05\x44\x65\x62ug\x10\x04\x42`\n\x19\x63om.v2ray.core.common.logP\x01Z)github.com/v2fly/v2ray-core/v4/common/log\xaa\x02\x15V2Ray.Core.Common.Logb\x06proto3' 24 | ) 25 | 26 | _SEVERITY = _descriptor.EnumDescriptor( 27 | name='Severity', 28 | full_name='v2ray.core.common.log.Severity', 29 | filename=None, 30 | file=DESCRIPTOR, 31 | create_key=_descriptor._internal_create_key, 32 | values=[ 33 | _descriptor.EnumValueDescriptor( 34 | name='Unknown', index=0, number=0, 35 | serialized_options=None, 36 | type=None, 37 | create_key=_descriptor._internal_create_key), 38 | _descriptor.EnumValueDescriptor( 39 | name='Error', index=1, number=1, 40 | serialized_options=None, 41 | type=None, 42 | create_key=_descriptor._internal_create_key), 43 | _descriptor.EnumValueDescriptor( 44 | name='Warning', index=2, number=2, 45 | serialized_options=None, 46 | type=None, 47 | create_key=_descriptor._internal_create_key), 48 | _descriptor.EnumValueDescriptor( 49 | name='Info', index=3, number=3, 50 | serialized_options=None, 51 | type=None, 52 | create_key=_descriptor._internal_create_key), 53 | _descriptor.EnumValueDescriptor( 54 | name='Debug', index=4, number=4, 55 | serialized_options=None, 56 | type=None, 57 | create_key=_descriptor._internal_create_key), 58 | ], 59 | containing_type=None, 60 | serialized_options=None, 61 | serialized_start=47, 62 | serialized_end=115, 63 | ) 64 | _sym_db.RegisterEnumDescriptor(_SEVERITY) 65 | 66 | Severity = enum_type_wrapper.EnumTypeWrapper(_SEVERITY) 67 | Unknown = 0 68 | Error = 1 69 | Warning = 2 70 | Info = 3 71 | Debug = 4 72 | 73 | 74 | DESCRIPTOR.enum_types_by_name['Severity'] = _SEVERITY 75 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 76 | 77 | 78 | DESCRIPTOR._options = None 79 | # @@protoc_insertion_point(module_scope) 80 | -------------------------------------------------------------------------------- /v2api/proto/common/log/log_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/common/net/address_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: common/net/address.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | 15 | 16 | DESCRIPTOR = _descriptor.FileDescriptor( 17 | name='common/net/address.proto', 18 | package='v2ray.core.common.net', 19 | syntax='proto3', 20 | serialized_options=b'\n\031com.v2ray.core.common.netP\001Z)github.com/v2fly/v2ray-core/v4/common/net\252\002\025V2Ray.Core.Common.Net', 21 | create_key=_descriptor._internal_create_key, 22 | serialized_pb=b'\n\x18\x63ommon/net/address.proto\x12\x15v2ray.core.common.net\"7\n\nIPOrDomain\x12\x0c\n\x02ip\x18\x01 \x01(\x0cH\x00\x12\x10\n\x06\x64omain\x18\x02 \x01(\tH\x00\x42\t\n\x07\x61\x64\x64ressB`\n\x19\x63om.v2ray.core.common.netP\x01Z)github.com/v2fly/v2ray-core/v4/common/net\xaa\x02\x15V2Ray.Core.Common.Netb\x06proto3' 23 | ) 24 | 25 | 26 | 27 | 28 | _IPORDOMAIN = _descriptor.Descriptor( 29 | name='IPOrDomain', 30 | full_name='v2ray.core.common.net.IPOrDomain', 31 | filename=None, 32 | file=DESCRIPTOR, 33 | containing_type=None, 34 | create_key=_descriptor._internal_create_key, 35 | fields=[ 36 | _descriptor.FieldDescriptor( 37 | name='ip', full_name='v2ray.core.common.net.IPOrDomain.ip', index=0, 38 | number=1, type=12, cpp_type=9, label=1, 39 | has_default_value=False, default_value=b"", 40 | message_type=None, enum_type=None, containing_type=None, 41 | is_extension=False, extension_scope=None, 42 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 43 | _descriptor.FieldDescriptor( 44 | name='domain', full_name='v2ray.core.common.net.IPOrDomain.domain', index=1, 45 | number=2, type=9, cpp_type=9, label=1, 46 | has_default_value=False, default_value=b"".decode('utf-8'), 47 | message_type=None, enum_type=None, containing_type=None, 48 | is_extension=False, extension_scope=None, 49 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 50 | ], 51 | extensions=[ 52 | ], 53 | nested_types=[], 54 | enum_types=[ 55 | ], 56 | serialized_options=None, 57 | is_extendable=False, 58 | syntax='proto3', 59 | extension_ranges=[], 60 | oneofs=[ 61 | _descriptor.OneofDescriptor( 62 | name='address', full_name='v2ray.core.common.net.IPOrDomain.address', 63 | index=0, containing_type=None, 64 | create_key=_descriptor._internal_create_key, 65 | fields=[]), 66 | ], 67 | serialized_start=51, 68 | serialized_end=106, 69 | ) 70 | 71 | _IPORDOMAIN.oneofs_by_name['address'].fields.append( 72 | _IPORDOMAIN.fields_by_name['ip']) 73 | _IPORDOMAIN.fields_by_name['ip'].containing_oneof = _IPORDOMAIN.oneofs_by_name['address'] 74 | _IPORDOMAIN.oneofs_by_name['address'].fields.append( 75 | _IPORDOMAIN.fields_by_name['domain']) 76 | _IPORDOMAIN.fields_by_name['domain'].containing_oneof = _IPORDOMAIN.oneofs_by_name['address'] 77 | DESCRIPTOR.message_types_by_name['IPOrDomain'] = _IPORDOMAIN 78 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 79 | 80 | IPOrDomain = _reflection.GeneratedProtocolMessageType('IPOrDomain', (_message.Message,), { 81 | 'DESCRIPTOR' : _IPORDOMAIN, 82 | '__module__' : 'common.net.address_pb2' 83 | # @@protoc_insertion_point(class_scope:v2ray.core.common.net.IPOrDomain) 84 | }) 85 | _sym_db.RegisterMessage(IPOrDomain) 86 | 87 | 88 | DESCRIPTOR._options = None 89 | # @@protoc_insertion_point(module_scope) 90 | -------------------------------------------------------------------------------- /v2api/proto/common/net/address_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/common/net/destination_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: common/net/destination.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | from common.net import network_pb2 as common_dot_net_dot_network__pb2 15 | from common.net import address_pb2 as common_dot_net_dot_address__pb2 16 | 17 | 18 | DESCRIPTOR = _descriptor.FileDescriptor( 19 | name='common/net/destination.proto', 20 | package='v2ray.core.common.net', 21 | syntax='proto3', 22 | serialized_options=b'\n\031com.v2ray.core.common.netP\001Z)github.com/v2fly/v2ray-core/v4/common/net\252\002\025V2Ray.Core.Common.Net', 23 | create_key=_descriptor._internal_create_key, 24 | serialized_pb=b'\n\x1c\x63ommon/net/destination.proto\x12\x15v2ray.core.common.net\x1a\x18\x63ommon/net/network.proto\x1a\x18\x63ommon/net/address.proto\"}\n\x08\x45ndpoint\x12/\n\x07network\x18\x01 \x01(\x0e\x32\x1e.v2ray.core.common.net.Network\x12\x32\n\x07\x61\x64\x64ress\x18\x02 \x01(\x0b\x32!.v2ray.core.common.net.IPOrDomain\x12\x0c\n\x04port\x18\x03 \x01(\rB`\n\x19\x63om.v2ray.core.common.netP\x01Z)github.com/v2fly/v2ray-core/v4/common/net\xaa\x02\x15V2Ray.Core.Common.Netb\x06proto3' 25 | , 26 | dependencies=[common_dot_net_dot_network__pb2.DESCRIPTOR,common_dot_net_dot_address__pb2.DESCRIPTOR,]) 27 | 28 | 29 | 30 | 31 | _ENDPOINT = _descriptor.Descriptor( 32 | name='Endpoint', 33 | full_name='v2ray.core.common.net.Endpoint', 34 | filename=None, 35 | file=DESCRIPTOR, 36 | containing_type=None, 37 | create_key=_descriptor._internal_create_key, 38 | fields=[ 39 | _descriptor.FieldDescriptor( 40 | name='network', full_name='v2ray.core.common.net.Endpoint.network', index=0, 41 | number=1, type=14, cpp_type=8, label=1, 42 | has_default_value=False, default_value=0, 43 | message_type=None, enum_type=None, containing_type=None, 44 | is_extension=False, extension_scope=None, 45 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 46 | _descriptor.FieldDescriptor( 47 | name='address', full_name='v2ray.core.common.net.Endpoint.address', index=1, 48 | number=2, type=11, cpp_type=10, label=1, 49 | has_default_value=False, default_value=None, 50 | message_type=None, enum_type=None, containing_type=None, 51 | is_extension=False, extension_scope=None, 52 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 53 | _descriptor.FieldDescriptor( 54 | name='port', full_name='v2ray.core.common.net.Endpoint.port', index=2, 55 | number=3, type=13, cpp_type=3, label=1, 56 | has_default_value=False, default_value=0, 57 | message_type=None, enum_type=None, containing_type=None, 58 | is_extension=False, extension_scope=None, 59 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 60 | ], 61 | extensions=[ 62 | ], 63 | nested_types=[], 64 | enum_types=[ 65 | ], 66 | serialized_options=None, 67 | is_extendable=False, 68 | syntax='proto3', 69 | extension_ranges=[], 70 | oneofs=[ 71 | ], 72 | serialized_start=107, 73 | serialized_end=232, 74 | ) 75 | 76 | _ENDPOINT.fields_by_name['network'].enum_type = common_dot_net_dot_network__pb2._NETWORK 77 | _ENDPOINT.fields_by_name['address'].message_type = common_dot_net_dot_address__pb2._IPORDOMAIN 78 | DESCRIPTOR.message_types_by_name['Endpoint'] = _ENDPOINT 79 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 80 | 81 | Endpoint = _reflection.GeneratedProtocolMessageType('Endpoint', (_message.Message,), { 82 | 'DESCRIPTOR' : _ENDPOINT, 83 | '__module__' : 'common.net.destination_pb2' 84 | # @@protoc_insertion_point(class_scope:v2ray.core.common.net.Endpoint) 85 | }) 86 | _sym_db.RegisterMessage(Endpoint) 87 | 88 | 89 | DESCRIPTOR._options = None 90 | # @@protoc_insertion_point(module_scope) 91 | -------------------------------------------------------------------------------- /v2api/proto/common/net/destination_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/common/net/network_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: common/net/network.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf.internal import enum_type_wrapper 6 | from google.protobuf import descriptor as _descriptor 7 | from google.protobuf import message as _message 8 | from google.protobuf import reflection as _reflection 9 | from google.protobuf import symbol_database as _symbol_database 10 | # @@protoc_insertion_point(imports) 11 | 12 | _sym_db = _symbol_database.Default() 13 | 14 | 15 | 16 | 17 | DESCRIPTOR = _descriptor.FileDescriptor( 18 | name='common/net/network.proto', 19 | package='v2ray.core.common.net', 20 | syntax='proto3', 21 | serialized_options=b'\n\031com.v2ray.core.common.netP\001Z)github.com/v2fly/v2ray-core/v4/common/net\252\002\025V2Ray.Core.Common.Net', 22 | create_key=_descriptor._internal_create_key, 23 | serialized_pb=b'\n\x18\x63ommon/net/network.proto\x12\x15v2ray.core.common.net\">\n\x0bNetworkList\x12/\n\x07network\x18\x01 \x03(\x0e\x32\x1e.v2ray.core.common.net.Network*B\n\x07Network\x12\x0b\n\x07Unknown\x10\x00\x12\x0e\n\x06RawTCP\x10\x01\x1a\x02\x08\x01\x12\x07\n\x03TCP\x10\x02\x12\x07\n\x03UDP\x10\x03\x12\x08\n\x04UNIX\x10\x04\x42`\n\x19\x63om.v2ray.core.common.netP\x01Z)github.com/v2fly/v2ray-core/v4/common/net\xaa\x02\x15V2Ray.Core.Common.Netb\x06proto3' 24 | ) 25 | 26 | _NETWORK = _descriptor.EnumDescriptor( 27 | name='Network', 28 | full_name='v2ray.core.common.net.Network', 29 | filename=None, 30 | file=DESCRIPTOR, 31 | create_key=_descriptor._internal_create_key, 32 | values=[ 33 | _descriptor.EnumValueDescriptor( 34 | name='Unknown', index=0, number=0, 35 | serialized_options=None, 36 | type=None, 37 | create_key=_descriptor._internal_create_key), 38 | _descriptor.EnumValueDescriptor( 39 | name='RawTCP', index=1, number=1, 40 | serialized_options=b'\010\001', 41 | type=None, 42 | create_key=_descriptor._internal_create_key), 43 | _descriptor.EnumValueDescriptor( 44 | name='TCP', index=2, number=2, 45 | serialized_options=None, 46 | type=None, 47 | create_key=_descriptor._internal_create_key), 48 | _descriptor.EnumValueDescriptor( 49 | name='UDP', index=3, number=3, 50 | serialized_options=None, 51 | type=None, 52 | create_key=_descriptor._internal_create_key), 53 | _descriptor.EnumValueDescriptor( 54 | name='UNIX', index=4, number=4, 55 | serialized_options=None, 56 | type=None, 57 | create_key=_descriptor._internal_create_key), 58 | ], 59 | containing_type=None, 60 | serialized_options=None, 61 | serialized_start=115, 62 | serialized_end=181, 63 | ) 64 | _sym_db.RegisterEnumDescriptor(_NETWORK) 65 | 66 | Network = enum_type_wrapper.EnumTypeWrapper(_NETWORK) 67 | Unknown = 0 68 | RawTCP = 1 69 | TCP = 2 70 | UDP = 3 71 | UNIX = 4 72 | 73 | 74 | 75 | _NETWORKLIST = _descriptor.Descriptor( 76 | name='NetworkList', 77 | full_name='v2ray.core.common.net.NetworkList', 78 | filename=None, 79 | file=DESCRIPTOR, 80 | containing_type=None, 81 | create_key=_descriptor._internal_create_key, 82 | fields=[ 83 | _descriptor.FieldDescriptor( 84 | name='network', full_name='v2ray.core.common.net.NetworkList.network', index=0, 85 | number=1, type=14, cpp_type=8, label=3, 86 | has_default_value=False, default_value=[], 87 | message_type=None, enum_type=None, containing_type=None, 88 | is_extension=False, extension_scope=None, 89 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 90 | ], 91 | extensions=[ 92 | ], 93 | nested_types=[], 94 | enum_types=[ 95 | ], 96 | serialized_options=None, 97 | is_extendable=False, 98 | syntax='proto3', 99 | extension_ranges=[], 100 | oneofs=[ 101 | ], 102 | serialized_start=51, 103 | serialized_end=113, 104 | ) 105 | 106 | _NETWORKLIST.fields_by_name['network'].enum_type = _NETWORK 107 | DESCRIPTOR.message_types_by_name['NetworkList'] = _NETWORKLIST 108 | DESCRIPTOR.enum_types_by_name['Network'] = _NETWORK 109 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 110 | 111 | NetworkList = _reflection.GeneratedProtocolMessageType('NetworkList', (_message.Message,), { 112 | 'DESCRIPTOR' : _NETWORKLIST, 113 | '__module__' : 'common.net.network_pb2' 114 | # @@protoc_insertion_point(class_scope:v2ray.core.common.net.NetworkList) 115 | }) 116 | _sym_db.RegisterMessage(NetworkList) 117 | 118 | 119 | DESCRIPTOR._options = None 120 | _NETWORK.values_by_name["RawTCP"]._options = None 121 | # @@protoc_insertion_point(module_scope) 122 | -------------------------------------------------------------------------------- /v2api/proto/common/net/network_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/common/net/port_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: common/net/port.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | 15 | 16 | DESCRIPTOR = _descriptor.FileDescriptor( 17 | name='common/net/port.proto', 18 | package='v2ray.core.common.net', 19 | syntax='proto3', 20 | serialized_options=b'\n\031com.v2ray.core.common.netP\001Z)github.com/v2fly/v2ray-core/v4/common/net\252\002\025V2Ray.Core.Common.Net', 21 | create_key=_descriptor._internal_create_key, 22 | serialized_pb=b'\n\x15\x63ommon/net/port.proto\x12\x15v2ray.core.common.net\"%\n\tPortRange\x12\x0c\n\x04\x46rom\x18\x01 \x01(\r\x12\n\n\x02To\x18\x02 \x01(\r\";\n\x08PortList\x12/\n\x05range\x18\x01 \x03(\x0b\x32 .v2ray.core.common.net.PortRangeB`\n\x19\x63om.v2ray.core.common.netP\x01Z)github.com/v2fly/v2ray-core/v4/common/net\xaa\x02\x15V2Ray.Core.Common.Netb\x06proto3' 23 | ) 24 | 25 | 26 | 27 | 28 | _PORTRANGE = _descriptor.Descriptor( 29 | name='PortRange', 30 | full_name='v2ray.core.common.net.PortRange', 31 | filename=None, 32 | file=DESCRIPTOR, 33 | containing_type=None, 34 | create_key=_descriptor._internal_create_key, 35 | fields=[ 36 | _descriptor.FieldDescriptor( 37 | name='From', full_name='v2ray.core.common.net.PortRange.From', index=0, 38 | number=1, type=13, cpp_type=3, label=1, 39 | has_default_value=False, default_value=0, 40 | message_type=None, enum_type=None, containing_type=None, 41 | is_extension=False, extension_scope=None, 42 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 43 | _descriptor.FieldDescriptor( 44 | name='To', full_name='v2ray.core.common.net.PortRange.To', index=1, 45 | number=2, type=13, cpp_type=3, label=1, 46 | has_default_value=False, default_value=0, 47 | message_type=None, enum_type=None, containing_type=None, 48 | is_extension=False, extension_scope=None, 49 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 50 | ], 51 | extensions=[ 52 | ], 53 | nested_types=[], 54 | enum_types=[ 55 | ], 56 | serialized_options=None, 57 | is_extendable=False, 58 | syntax='proto3', 59 | extension_ranges=[], 60 | oneofs=[ 61 | ], 62 | serialized_start=48, 63 | serialized_end=85, 64 | ) 65 | 66 | 67 | _PORTLIST = _descriptor.Descriptor( 68 | name='PortList', 69 | full_name='v2ray.core.common.net.PortList', 70 | filename=None, 71 | file=DESCRIPTOR, 72 | containing_type=None, 73 | create_key=_descriptor._internal_create_key, 74 | fields=[ 75 | _descriptor.FieldDescriptor( 76 | name='range', full_name='v2ray.core.common.net.PortList.range', index=0, 77 | number=1, type=11, cpp_type=10, label=3, 78 | has_default_value=False, default_value=[], 79 | message_type=None, enum_type=None, containing_type=None, 80 | is_extension=False, extension_scope=None, 81 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 82 | ], 83 | extensions=[ 84 | ], 85 | nested_types=[], 86 | enum_types=[ 87 | ], 88 | serialized_options=None, 89 | is_extendable=False, 90 | syntax='proto3', 91 | extension_ranges=[], 92 | oneofs=[ 93 | ], 94 | serialized_start=87, 95 | serialized_end=146, 96 | ) 97 | 98 | _PORTLIST.fields_by_name['range'].message_type = _PORTRANGE 99 | DESCRIPTOR.message_types_by_name['PortRange'] = _PORTRANGE 100 | DESCRIPTOR.message_types_by_name['PortList'] = _PORTLIST 101 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 102 | 103 | PortRange = _reflection.GeneratedProtocolMessageType('PortRange', (_message.Message,), { 104 | 'DESCRIPTOR' : _PORTRANGE, 105 | '__module__' : 'common.net.port_pb2' 106 | # @@protoc_insertion_point(class_scope:v2ray.core.common.net.PortRange) 107 | }) 108 | _sym_db.RegisterMessage(PortRange) 109 | 110 | PortList = _reflection.GeneratedProtocolMessageType('PortList', (_message.Message,), { 111 | 'DESCRIPTOR' : _PORTLIST, 112 | '__module__' : 'common.net.port_pb2' 113 | # @@protoc_insertion_point(class_scope:v2ray.core.common.net.PortList) 114 | }) 115 | _sym_db.RegisterMessage(PortList) 116 | 117 | 118 | DESCRIPTOR._options = None 119 | # @@protoc_insertion_point(module_scope) 120 | -------------------------------------------------------------------------------- /v2api/proto/common/net/port_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/common/protocol/headers_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: common/protocol/headers.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf.internal import enum_type_wrapper 6 | from google.protobuf import descriptor as _descriptor 7 | from google.protobuf import message as _message 8 | from google.protobuf import reflection as _reflection 9 | from google.protobuf import symbol_database as _symbol_database 10 | # @@protoc_insertion_point(imports) 11 | 12 | _sym_db = _symbol_database.Default() 13 | 14 | 15 | 16 | 17 | DESCRIPTOR = _descriptor.FileDescriptor( 18 | name='common/protocol/headers.proto', 19 | package='v2ray.core.common.protocol', 20 | syntax='proto3', 21 | serialized_options=b'\n\036com.v2ray.core.common.protocolP\001Z.github.com/v2fly/v2ray-core/v4/common/protocol\252\002\032V2Ray.Core.Common.Protocol', 22 | create_key=_descriptor._internal_create_key, 23 | serialized_pb=b'\n\x1d\x63ommon/protocol/headers.proto\x12\x1av2ray.core.common.protocol\"H\n\x0eSecurityConfig\x12\x36\n\x04type\x18\x01 \x01(\x0e\x32(.v2ray.core.common.protocol.SecurityType*l\n\x0cSecurityType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06LEGACY\x10\x01\x12\x08\n\x04\x41UTO\x10\x02\x12\x0e\n\nAES128_GCM\x10\x03\x12\x15\n\x11\x43HACHA20_POLY1305\x10\x04\x12\x08\n\x04NONE\x10\x05\x12\x08\n\x04ZERO\x10\x06\x42o\n\x1e\x63om.v2ray.core.common.protocolP\x01Z.github.com/v2fly/v2ray-core/v4/common/protocol\xaa\x02\x1aV2Ray.Core.Common.Protocolb\x06proto3' 24 | ) 25 | 26 | _SECURITYTYPE = _descriptor.EnumDescriptor( 27 | name='SecurityType', 28 | full_name='v2ray.core.common.protocol.SecurityType', 29 | filename=None, 30 | file=DESCRIPTOR, 31 | create_key=_descriptor._internal_create_key, 32 | values=[ 33 | _descriptor.EnumValueDescriptor( 34 | name='UNKNOWN', index=0, number=0, 35 | serialized_options=None, 36 | type=None, 37 | create_key=_descriptor._internal_create_key), 38 | _descriptor.EnumValueDescriptor( 39 | name='LEGACY', index=1, number=1, 40 | serialized_options=None, 41 | type=None, 42 | create_key=_descriptor._internal_create_key), 43 | _descriptor.EnumValueDescriptor( 44 | name='AUTO', index=2, number=2, 45 | serialized_options=None, 46 | type=None, 47 | create_key=_descriptor._internal_create_key), 48 | _descriptor.EnumValueDescriptor( 49 | name='AES128_GCM', index=3, number=3, 50 | serialized_options=None, 51 | type=None, 52 | create_key=_descriptor._internal_create_key), 53 | _descriptor.EnumValueDescriptor( 54 | name='CHACHA20_POLY1305', index=4, number=4, 55 | serialized_options=None, 56 | type=None, 57 | create_key=_descriptor._internal_create_key), 58 | _descriptor.EnumValueDescriptor( 59 | name='NONE', index=5, number=5, 60 | serialized_options=None, 61 | type=None, 62 | create_key=_descriptor._internal_create_key), 63 | _descriptor.EnumValueDescriptor( 64 | name='ZERO', index=6, number=6, 65 | serialized_options=None, 66 | type=None, 67 | create_key=_descriptor._internal_create_key), 68 | ], 69 | containing_type=None, 70 | serialized_options=None, 71 | serialized_start=135, 72 | serialized_end=243, 73 | ) 74 | _sym_db.RegisterEnumDescriptor(_SECURITYTYPE) 75 | 76 | SecurityType = enum_type_wrapper.EnumTypeWrapper(_SECURITYTYPE) 77 | UNKNOWN = 0 78 | LEGACY = 1 79 | AUTO = 2 80 | AES128_GCM = 3 81 | CHACHA20_POLY1305 = 4 82 | NONE = 5 83 | ZERO = 6 84 | 85 | 86 | 87 | _SECURITYCONFIG = _descriptor.Descriptor( 88 | name='SecurityConfig', 89 | full_name='v2ray.core.common.protocol.SecurityConfig', 90 | filename=None, 91 | file=DESCRIPTOR, 92 | containing_type=None, 93 | create_key=_descriptor._internal_create_key, 94 | fields=[ 95 | _descriptor.FieldDescriptor( 96 | name='type', full_name='v2ray.core.common.protocol.SecurityConfig.type', index=0, 97 | number=1, type=14, cpp_type=8, label=1, 98 | has_default_value=False, default_value=0, 99 | message_type=None, enum_type=None, containing_type=None, 100 | is_extension=False, extension_scope=None, 101 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 102 | ], 103 | extensions=[ 104 | ], 105 | nested_types=[], 106 | enum_types=[ 107 | ], 108 | serialized_options=None, 109 | is_extendable=False, 110 | syntax='proto3', 111 | extension_ranges=[], 112 | oneofs=[ 113 | ], 114 | serialized_start=61, 115 | serialized_end=133, 116 | ) 117 | 118 | _SECURITYCONFIG.fields_by_name['type'].enum_type = _SECURITYTYPE 119 | DESCRIPTOR.message_types_by_name['SecurityConfig'] = _SECURITYCONFIG 120 | DESCRIPTOR.enum_types_by_name['SecurityType'] = _SECURITYTYPE 121 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 122 | 123 | SecurityConfig = _reflection.GeneratedProtocolMessageType('SecurityConfig', (_message.Message,), { 124 | 'DESCRIPTOR' : _SECURITYCONFIG, 125 | '__module__' : 'common.protocol.headers_pb2' 126 | # @@protoc_insertion_point(class_scope:v2ray.core.common.protocol.SecurityConfig) 127 | }) 128 | _sym_db.RegisterMessage(SecurityConfig) 129 | 130 | 131 | DESCRIPTOR._options = None 132 | # @@protoc_insertion_point(module_scope) 133 | -------------------------------------------------------------------------------- /v2api/proto/common/protocol/headers_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/common/protocol/server_spec_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: common/protocol/server_spec.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | from common.net import address_pb2 as common_dot_net_dot_address__pb2 15 | from common.protocol import user_pb2 as common_dot_protocol_dot_user__pb2 16 | 17 | 18 | DESCRIPTOR = _descriptor.FileDescriptor( 19 | name='common/protocol/server_spec.proto', 20 | package='v2ray.core.common.protocol', 21 | syntax='proto3', 22 | serialized_options=b'\n\036com.v2ray.core.common.protocolP\001Z.github.com/v2fly/v2ray-core/v4/common/protocol\252\002\032V2Ray.Core.Common.Protocol', 23 | create_key=_descriptor._internal_create_key, 24 | serialized_pb=b'\n!common/protocol/server_spec.proto\x12\x1av2ray.core.common.protocol\x1a\x18\x63ommon/net/address.proto\x1a\x1a\x63ommon/protocol/user.proto\"\x82\x01\n\x0eServerEndpoint\x12\x32\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0b\x32!.v2ray.core.common.net.IPOrDomain\x12\x0c\n\x04port\x18\x02 \x01(\r\x12.\n\x04user\x18\x03 \x03(\x0b\x32 .v2ray.core.common.protocol.UserBo\n\x1e\x63om.v2ray.core.common.protocolP\x01Z.github.com/v2fly/v2ray-core/v4/common/protocol\xaa\x02\x1aV2Ray.Core.Common.Protocolb\x06proto3' 25 | , 26 | dependencies=[common_dot_net_dot_address__pb2.DESCRIPTOR,common_dot_protocol_dot_user__pb2.DESCRIPTOR,]) 27 | 28 | 29 | 30 | 31 | _SERVERENDPOINT = _descriptor.Descriptor( 32 | name='ServerEndpoint', 33 | full_name='v2ray.core.common.protocol.ServerEndpoint', 34 | filename=None, 35 | file=DESCRIPTOR, 36 | containing_type=None, 37 | create_key=_descriptor._internal_create_key, 38 | fields=[ 39 | _descriptor.FieldDescriptor( 40 | name='address', full_name='v2ray.core.common.protocol.ServerEndpoint.address', index=0, 41 | number=1, type=11, cpp_type=10, label=1, 42 | has_default_value=False, default_value=None, 43 | message_type=None, enum_type=None, containing_type=None, 44 | is_extension=False, extension_scope=None, 45 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 46 | _descriptor.FieldDescriptor( 47 | name='port', full_name='v2ray.core.common.protocol.ServerEndpoint.port', index=1, 48 | number=2, type=13, cpp_type=3, label=1, 49 | has_default_value=False, default_value=0, 50 | message_type=None, enum_type=None, containing_type=None, 51 | is_extension=False, extension_scope=None, 52 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 53 | _descriptor.FieldDescriptor( 54 | name='user', full_name='v2ray.core.common.protocol.ServerEndpoint.user', index=2, 55 | number=3, type=11, cpp_type=10, label=3, 56 | has_default_value=False, default_value=[], 57 | message_type=None, enum_type=None, containing_type=None, 58 | is_extension=False, extension_scope=None, 59 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 60 | ], 61 | extensions=[ 62 | ], 63 | nested_types=[], 64 | enum_types=[ 65 | ], 66 | serialized_options=None, 67 | is_extendable=False, 68 | syntax='proto3', 69 | extension_ranges=[], 70 | oneofs=[ 71 | ], 72 | serialized_start=120, 73 | serialized_end=250, 74 | ) 75 | 76 | _SERVERENDPOINT.fields_by_name['address'].message_type = common_dot_net_dot_address__pb2._IPORDOMAIN 77 | _SERVERENDPOINT.fields_by_name['user'].message_type = common_dot_protocol_dot_user__pb2._USER 78 | DESCRIPTOR.message_types_by_name['ServerEndpoint'] = _SERVERENDPOINT 79 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 80 | 81 | ServerEndpoint = _reflection.GeneratedProtocolMessageType('ServerEndpoint', (_message.Message,), { 82 | 'DESCRIPTOR' : _SERVERENDPOINT, 83 | '__module__' : 'common.protocol.server_spec_pb2' 84 | # @@protoc_insertion_point(class_scope:v2ray.core.common.protocol.ServerEndpoint) 85 | }) 86 | _sym_db.RegisterMessage(ServerEndpoint) 87 | 88 | 89 | DESCRIPTOR._options = None 90 | # @@protoc_insertion_point(module_scope) 91 | -------------------------------------------------------------------------------- /v2api/proto/common/protocol/server_spec_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/common/protocol/user_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: common/protocol/user.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | from common.serial import typed_message_pb2 as common_dot_serial_dot_typed__message__pb2 15 | 16 | 17 | DESCRIPTOR = _descriptor.FileDescriptor( 18 | name='common/protocol/user.proto', 19 | package='v2ray.core.common.protocol', 20 | syntax='proto3', 21 | serialized_options=b'\n\036com.v2ray.core.common.protocolP\001Z.github.com/v2fly/v2ray-core/v4/common/protocol\252\002\032V2Ray.Core.Common.Protocol', 22 | create_key=_descriptor._internal_create_key, 23 | serialized_pb=b'\n\x1a\x63ommon/protocol/user.proto\x12\x1av2ray.core.common.protocol\x1a!common/serial/typed_message.proto\"]\n\x04User\x12\r\n\x05level\x18\x01 \x01(\r\x12\r\n\x05\x65mail\x18\x02 \x01(\t\x12\x37\n\x07\x61\x63\x63ount\x18\x03 \x01(\x0b\x32&.v2ray.core.common.serial.TypedMessageBo\n\x1e\x63om.v2ray.core.common.protocolP\x01Z.github.com/v2fly/v2ray-core/v4/common/protocol\xaa\x02\x1aV2Ray.Core.Common.Protocolb\x06proto3' 24 | , 25 | dependencies=[common_dot_serial_dot_typed__message__pb2.DESCRIPTOR,]) 26 | 27 | 28 | 29 | 30 | _USER = _descriptor.Descriptor( 31 | name='User', 32 | full_name='v2ray.core.common.protocol.User', 33 | filename=None, 34 | file=DESCRIPTOR, 35 | containing_type=None, 36 | create_key=_descriptor._internal_create_key, 37 | fields=[ 38 | _descriptor.FieldDescriptor( 39 | name='level', full_name='v2ray.core.common.protocol.User.level', index=0, 40 | number=1, type=13, cpp_type=3, label=1, 41 | has_default_value=False, default_value=0, 42 | message_type=None, enum_type=None, containing_type=None, 43 | is_extension=False, extension_scope=None, 44 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 45 | _descriptor.FieldDescriptor( 46 | name='email', full_name='v2ray.core.common.protocol.User.email', index=1, 47 | number=2, type=9, cpp_type=9, label=1, 48 | has_default_value=False, default_value=b"".decode('utf-8'), 49 | message_type=None, enum_type=None, containing_type=None, 50 | is_extension=False, extension_scope=None, 51 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 52 | _descriptor.FieldDescriptor( 53 | name='account', full_name='v2ray.core.common.protocol.User.account', index=2, 54 | number=3, type=11, cpp_type=10, label=1, 55 | has_default_value=False, default_value=None, 56 | message_type=None, enum_type=None, containing_type=None, 57 | is_extension=False, extension_scope=None, 58 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 59 | ], 60 | extensions=[ 61 | ], 62 | nested_types=[], 63 | enum_types=[ 64 | ], 65 | serialized_options=None, 66 | is_extendable=False, 67 | syntax='proto3', 68 | extension_ranges=[], 69 | oneofs=[ 70 | ], 71 | serialized_start=93, 72 | serialized_end=186, 73 | ) 74 | 75 | _USER.fields_by_name['account'].message_type = common_dot_serial_dot_typed__message__pb2._TYPEDMESSAGE 76 | DESCRIPTOR.message_types_by_name['User'] = _USER 77 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 78 | 79 | User = _reflection.GeneratedProtocolMessageType('User', (_message.Message,), { 80 | 'DESCRIPTOR' : _USER, 81 | '__module__' : 'common.protocol.user_pb2' 82 | # @@protoc_insertion_point(class_scope:v2ray.core.common.protocol.User) 83 | }) 84 | _sym_db.RegisterMessage(User) 85 | 86 | 87 | DESCRIPTOR._options = None 88 | # @@protoc_insertion_point(module_scope) 89 | -------------------------------------------------------------------------------- /v2api/proto/common/protocol/user_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/common/serial/typed_message_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: common/serial/typed_message.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | 15 | 16 | DESCRIPTOR = _descriptor.FileDescriptor( 17 | name='common/serial/typed_message.proto', 18 | package='v2ray.core.common.serial', 19 | syntax='proto3', 20 | serialized_options=b'\n\034com.v2ray.core.common.serialP\001Z,github.com/v2fly/v2ray-core/v4/common/serial\252\002\030V2Ray.Core.Common.Serial', 21 | create_key=_descriptor._internal_create_key, 22 | serialized_pb=b'\n!common/serial/typed_message.proto\x12\x18v2ray.core.common.serial\"+\n\x0cTypedMessage\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c\x42i\n\x1c\x63om.v2ray.core.common.serialP\x01Z,github.com/v2fly/v2ray-core/v4/common/serial\xaa\x02\x18V2Ray.Core.Common.Serialb\x06proto3' 23 | ) 24 | 25 | 26 | 27 | 28 | _TYPEDMESSAGE = _descriptor.Descriptor( 29 | name='TypedMessage', 30 | full_name='v2ray.core.common.serial.TypedMessage', 31 | filename=None, 32 | file=DESCRIPTOR, 33 | containing_type=None, 34 | create_key=_descriptor._internal_create_key, 35 | fields=[ 36 | _descriptor.FieldDescriptor( 37 | name='type', full_name='v2ray.core.common.serial.TypedMessage.type', index=0, 38 | number=1, type=9, cpp_type=9, label=1, 39 | has_default_value=False, default_value=b"".decode('utf-8'), 40 | message_type=None, enum_type=None, containing_type=None, 41 | is_extension=False, extension_scope=None, 42 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 43 | _descriptor.FieldDescriptor( 44 | name='value', full_name='v2ray.core.common.serial.TypedMessage.value', index=1, 45 | number=2, type=12, cpp_type=9, label=1, 46 | has_default_value=False, default_value=b"", 47 | message_type=None, enum_type=None, containing_type=None, 48 | is_extension=False, extension_scope=None, 49 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 50 | ], 51 | extensions=[ 52 | ], 53 | nested_types=[], 54 | enum_types=[ 55 | ], 56 | serialized_options=None, 57 | is_extendable=False, 58 | syntax='proto3', 59 | extension_ranges=[], 60 | oneofs=[ 61 | ], 62 | serialized_start=63, 63 | serialized_end=106, 64 | ) 65 | 66 | DESCRIPTOR.message_types_by_name['TypedMessage'] = _TYPEDMESSAGE 67 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 68 | 69 | TypedMessage = _reflection.GeneratedProtocolMessageType('TypedMessage', (_message.Message,), { 70 | 'DESCRIPTOR' : _TYPEDMESSAGE, 71 | '__module__' : 'common.serial.typed_message_pb2' 72 | # @@protoc_insertion_point(class_scope:v2ray.core.common.serial.TypedMessage) 73 | }) 74 | _sym_db.RegisterMessage(TypedMessage) 75 | 76 | 77 | DESCRIPTOR._options = None 78 | # @@protoc_insertion_point(module_scope) 79 | -------------------------------------------------------------------------------- /v2api/proto/common/serial/typed_message_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/compile.py: -------------------------------------------------------------------------------- 1 | # DO NOT RUN THIS SCRIPT 2 | # This supposed to be used for development 3 | 4 | 5 | import os 6 | import tempfile 7 | import requests 8 | import sys 9 | import io 10 | import tarfile 11 | 12 | # Compile proto files from github repository 13 | 14 | 15 | def compile_proto_from_source(dist): 16 | tmp = tempfile.TemporaryDirectory() 17 | tmp_dir = tmp.name 18 | 19 | # download and extract source 20 | latest = requests.get('https://api.github.com/repos/v2fly/v2ray-core/releases/latest') \ 21 | .json() \ 22 | .get('tag_name') 23 | 24 | version = latest 25 | 26 | download_url = f'https://github.com/v2fly/v2ray-core/archive/refs/tags/{version}.tar.gz' 27 | r = requests.get(download_url, stream=True) 28 | io_bytes = io.BytesIO(r.content) 29 | tar = tarfile.open(fileobj=io_bytes, mode='r') 30 | tar.extractall(tmp_dir) 31 | v2ray_dir = os.path.join(tmp_dir, tar.getnames()[0]) 32 | tar.close() 33 | io_bytes.close() 34 | 35 | # find proto files 36 | proto_files = '' 37 | for root, dirs, files in os.walk(tmp_dir): 38 | for file in files: 39 | if file.endswith(".proto"): 40 | proto_files += ' ' + os.path.join(root, file) 41 | 42 | if not proto_files: 43 | raise FileNotFoundError("there's no proto file.") 44 | 45 | command = f'{sys.executable} -m grpc.tools.protoc ' \ 46 | f'-I={v2ray_dir} ' \ 47 | f'--python_out={dist} ' \ 48 | f'--grpc_python_out={dist} ' + proto_files 49 | os.system(command) 50 | 51 | tmp.cleanup() 52 | 53 | 54 | if __name__ == "__main__": 55 | compile_proto_from_source('.') 56 | -------------------------------------------------------------------------------- /v2api/proto/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/proxy/blackhole/config_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: proxy/blackhole/config.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | from common.serial import typed_message_pb2 as common_dot_serial_dot_typed__message__pb2 15 | 16 | 17 | DESCRIPTOR = _descriptor.FileDescriptor( 18 | name='proxy/blackhole/config.proto', 19 | package='v2ray.core.proxy.blackhole', 20 | syntax='proto3', 21 | serialized_options=b'\n\036com.v2ray.core.proxy.blackholeP\001Z.github.com/v2fly/v2ray-core/v4/proxy/blackhole\252\002\032V2Ray.Core.Proxy.Blackhole', 22 | create_key=_descriptor._internal_create_key, 23 | serialized_pb=b'\n\x1cproxy/blackhole/config.proto\x12\x1av2ray.core.proxy.blackhole\x1a!common/serial/typed_message.proto\"\x0e\n\x0cNoneResponse\"\x0e\n\x0cHTTPResponse\"B\n\x06\x43onfig\x12\x38\n\x08response\x18\x01 \x01(\x0b\x32&.v2ray.core.common.serial.TypedMessageBo\n\x1e\x63om.v2ray.core.proxy.blackholeP\x01Z.github.com/v2fly/v2ray-core/v4/proxy/blackhole\xaa\x02\x1aV2Ray.Core.Proxy.Blackholeb\x06proto3' 24 | , 25 | dependencies=[common_dot_serial_dot_typed__message__pb2.DESCRIPTOR,]) 26 | 27 | 28 | 29 | 30 | _NONERESPONSE = _descriptor.Descriptor( 31 | name='NoneResponse', 32 | full_name='v2ray.core.proxy.blackhole.NoneResponse', 33 | filename=None, 34 | file=DESCRIPTOR, 35 | containing_type=None, 36 | create_key=_descriptor._internal_create_key, 37 | fields=[ 38 | ], 39 | extensions=[ 40 | ], 41 | nested_types=[], 42 | enum_types=[ 43 | ], 44 | serialized_options=None, 45 | is_extendable=False, 46 | syntax='proto3', 47 | extension_ranges=[], 48 | oneofs=[ 49 | ], 50 | serialized_start=95, 51 | serialized_end=109, 52 | ) 53 | 54 | 55 | _HTTPRESPONSE = _descriptor.Descriptor( 56 | name='HTTPResponse', 57 | full_name='v2ray.core.proxy.blackhole.HTTPResponse', 58 | filename=None, 59 | file=DESCRIPTOR, 60 | containing_type=None, 61 | create_key=_descriptor._internal_create_key, 62 | fields=[ 63 | ], 64 | extensions=[ 65 | ], 66 | nested_types=[], 67 | enum_types=[ 68 | ], 69 | serialized_options=None, 70 | is_extendable=False, 71 | syntax='proto3', 72 | extension_ranges=[], 73 | oneofs=[ 74 | ], 75 | serialized_start=111, 76 | serialized_end=125, 77 | ) 78 | 79 | 80 | _CONFIG = _descriptor.Descriptor( 81 | name='Config', 82 | full_name='v2ray.core.proxy.blackhole.Config', 83 | filename=None, 84 | file=DESCRIPTOR, 85 | containing_type=None, 86 | create_key=_descriptor._internal_create_key, 87 | fields=[ 88 | _descriptor.FieldDescriptor( 89 | name='response', full_name='v2ray.core.proxy.blackhole.Config.response', index=0, 90 | number=1, type=11, cpp_type=10, label=1, 91 | has_default_value=False, default_value=None, 92 | message_type=None, enum_type=None, containing_type=None, 93 | is_extension=False, extension_scope=None, 94 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 95 | ], 96 | extensions=[ 97 | ], 98 | nested_types=[], 99 | enum_types=[ 100 | ], 101 | serialized_options=None, 102 | is_extendable=False, 103 | syntax='proto3', 104 | extension_ranges=[], 105 | oneofs=[ 106 | ], 107 | serialized_start=127, 108 | serialized_end=193, 109 | ) 110 | 111 | _CONFIG.fields_by_name['response'].message_type = common_dot_serial_dot_typed__message__pb2._TYPEDMESSAGE 112 | DESCRIPTOR.message_types_by_name['NoneResponse'] = _NONERESPONSE 113 | DESCRIPTOR.message_types_by_name['HTTPResponse'] = _HTTPRESPONSE 114 | DESCRIPTOR.message_types_by_name['Config'] = _CONFIG 115 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 116 | 117 | NoneResponse = _reflection.GeneratedProtocolMessageType('NoneResponse', (_message.Message,), { 118 | 'DESCRIPTOR' : _NONERESPONSE, 119 | '__module__' : 'proxy.blackhole.config_pb2' 120 | # @@protoc_insertion_point(class_scope:v2ray.core.proxy.blackhole.NoneResponse) 121 | }) 122 | _sym_db.RegisterMessage(NoneResponse) 123 | 124 | HTTPResponse = _reflection.GeneratedProtocolMessageType('HTTPResponse', (_message.Message,), { 125 | 'DESCRIPTOR' : _HTTPRESPONSE, 126 | '__module__' : 'proxy.blackhole.config_pb2' 127 | # @@protoc_insertion_point(class_scope:v2ray.core.proxy.blackhole.HTTPResponse) 128 | }) 129 | _sym_db.RegisterMessage(HTTPResponse) 130 | 131 | Config = _reflection.GeneratedProtocolMessageType('Config', (_message.Message,), { 132 | 'DESCRIPTOR' : _CONFIG, 133 | '__module__' : 'proxy.blackhole.config_pb2' 134 | # @@protoc_insertion_point(class_scope:v2ray.core.proxy.blackhole.Config) 135 | }) 136 | _sym_db.RegisterMessage(Config) 137 | 138 | 139 | DESCRIPTOR._options = None 140 | # @@protoc_insertion_point(module_scope) 141 | -------------------------------------------------------------------------------- /v2api/proto/proxy/blackhole/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/proxy/dns/config_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: proxy/dns/config.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | from common.net import destination_pb2 as common_dot_net_dot_destination__pb2 15 | 16 | 17 | DESCRIPTOR = _descriptor.FileDescriptor( 18 | name='proxy/dns/config.proto', 19 | package='v2ray.core.proxy.dns', 20 | syntax='proto3', 21 | serialized_options=b'\n\030com.v2ray.core.proxy.dnsP\001Z(github.com/v2fly/v2ray-core/v4/proxy/dns\252\002\024V2Ray.Core.Proxy.Dns', 22 | create_key=_descriptor._internal_create_key, 23 | serialized_pb=b'\n\x16proxy/dns/config.proto\x12\x14v2ray.core.proxy.dns\x1a\x1c\x63ommon/net/destination.proto\"9\n\x06\x43onfig\x12/\n\x06server\x18\x01 \x01(\x0b\x32\x1f.v2ray.core.common.net.EndpointB]\n\x18\x63om.v2ray.core.proxy.dnsP\x01Z(github.com/v2fly/v2ray-core/v4/proxy/dns\xaa\x02\x14V2Ray.Core.Proxy.Dnsb\x06proto3' 24 | , 25 | dependencies=[common_dot_net_dot_destination__pb2.DESCRIPTOR,]) 26 | 27 | 28 | 29 | 30 | _CONFIG = _descriptor.Descriptor( 31 | name='Config', 32 | full_name='v2ray.core.proxy.dns.Config', 33 | filename=None, 34 | file=DESCRIPTOR, 35 | containing_type=None, 36 | create_key=_descriptor._internal_create_key, 37 | fields=[ 38 | _descriptor.FieldDescriptor( 39 | name='server', full_name='v2ray.core.proxy.dns.Config.server', index=0, 40 | number=1, type=11, cpp_type=10, label=1, 41 | has_default_value=False, default_value=None, 42 | message_type=None, enum_type=None, containing_type=None, 43 | is_extension=False, extension_scope=None, 44 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 45 | ], 46 | extensions=[ 47 | ], 48 | nested_types=[], 49 | enum_types=[ 50 | ], 51 | serialized_options=None, 52 | is_extendable=False, 53 | syntax='proto3', 54 | extension_ranges=[], 55 | oneofs=[ 56 | ], 57 | serialized_start=78, 58 | serialized_end=135, 59 | ) 60 | 61 | _CONFIG.fields_by_name['server'].message_type = common_dot_net_dot_destination__pb2._ENDPOINT 62 | DESCRIPTOR.message_types_by_name['Config'] = _CONFIG 63 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 64 | 65 | Config = _reflection.GeneratedProtocolMessageType('Config', (_message.Message,), { 66 | 'DESCRIPTOR' : _CONFIG, 67 | '__module__' : 'proxy.dns.config_pb2' 68 | # @@protoc_insertion_point(class_scope:v2ray.core.proxy.dns.Config) 69 | }) 70 | _sym_db.RegisterMessage(Config) 71 | 72 | 73 | DESCRIPTOR._options = None 74 | # @@protoc_insertion_point(module_scope) 75 | -------------------------------------------------------------------------------- /v2api/proto/proxy/dns/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/proxy/dokodemo/config_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: proxy/dokodemo/config.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | from common.net import address_pb2 as common_dot_net_dot_address__pb2 15 | from common.net import network_pb2 as common_dot_net_dot_network__pb2 16 | 17 | 18 | DESCRIPTOR = _descriptor.FileDescriptor( 19 | name='proxy/dokodemo/config.proto', 20 | package='v2ray.core.proxy.dokodemo', 21 | syntax='proto3', 22 | serialized_options=b'\n\035com.v2ray.core.proxy.dokodemoP\001Z-github.com/v2fly/v2ray-core/v4/proxy/dokodemo\252\002\031V2Ray.Core.Proxy.Dokodemo', 23 | create_key=_descriptor._internal_create_key, 24 | serialized_pb=b'\n\x1bproxy/dokodemo/config.proto\x12\x19v2ray.core.proxy.dokodemo\x1a\x18\x63ommon/net/address.proto\x1a\x18\x63ommon/net/network.proto\"\xfc\x01\n\x06\x43onfig\x12\x32\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0b\x32!.v2ray.core.common.net.IPOrDomain\x12\x0c\n\x04port\x18\x02 \x01(\r\x12<\n\x0cnetwork_list\x18\x03 \x01(\x0b\x32\".v2ray.core.common.net.NetworkListB\x02\x18\x01\x12\x30\n\x08networks\x18\x07 \x03(\x0e\x32\x1e.v2ray.core.common.net.Network\x12\x13\n\x07timeout\x18\x04 \x01(\rB\x02\x18\x01\x12\x17\n\x0f\x66ollow_redirect\x18\x05 \x01(\x08\x12\x12\n\nuser_level\x18\x06 \x01(\rBl\n\x1d\x63om.v2ray.core.proxy.dokodemoP\x01Z-github.com/v2fly/v2ray-core/v4/proxy/dokodemo\xaa\x02\x19V2Ray.Core.Proxy.Dokodemob\x06proto3' 25 | , 26 | dependencies=[common_dot_net_dot_address__pb2.DESCRIPTOR,common_dot_net_dot_network__pb2.DESCRIPTOR,]) 27 | 28 | 29 | 30 | 31 | _CONFIG = _descriptor.Descriptor( 32 | name='Config', 33 | full_name='v2ray.core.proxy.dokodemo.Config', 34 | filename=None, 35 | file=DESCRIPTOR, 36 | containing_type=None, 37 | create_key=_descriptor._internal_create_key, 38 | fields=[ 39 | _descriptor.FieldDescriptor( 40 | name='address', full_name='v2ray.core.proxy.dokodemo.Config.address', index=0, 41 | number=1, type=11, cpp_type=10, label=1, 42 | has_default_value=False, default_value=None, 43 | message_type=None, enum_type=None, containing_type=None, 44 | is_extension=False, extension_scope=None, 45 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 46 | _descriptor.FieldDescriptor( 47 | name='port', full_name='v2ray.core.proxy.dokodemo.Config.port', index=1, 48 | number=2, type=13, cpp_type=3, label=1, 49 | has_default_value=False, default_value=0, 50 | message_type=None, enum_type=None, containing_type=None, 51 | is_extension=False, extension_scope=None, 52 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 53 | _descriptor.FieldDescriptor( 54 | name='network_list', full_name='v2ray.core.proxy.dokodemo.Config.network_list', index=2, 55 | number=3, type=11, cpp_type=10, label=1, 56 | has_default_value=False, default_value=None, 57 | message_type=None, enum_type=None, containing_type=None, 58 | is_extension=False, extension_scope=None, 59 | serialized_options=b'\030\001', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 60 | _descriptor.FieldDescriptor( 61 | name='networks', full_name='v2ray.core.proxy.dokodemo.Config.networks', index=3, 62 | number=7, type=14, cpp_type=8, label=3, 63 | has_default_value=False, default_value=[], 64 | message_type=None, enum_type=None, containing_type=None, 65 | is_extension=False, extension_scope=None, 66 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 67 | _descriptor.FieldDescriptor( 68 | name='timeout', full_name='v2ray.core.proxy.dokodemo.Config.timeout', index=4, 69 | number=4, type=13, cpp_type=3, label=1, 70 | has_default_value=False, default_value=0, 71 | message_type=None, enum_type=None, containing_type=None, 72 | is_extension=False, extension_scope=None, 73 | serialized_options=b'\030\001', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 74 | _descriptor.FieldDescriptor( 75 | name='follow_redirect', full_name='v2ray.core.proxy.dokodemo.Config.follow_redirect', index=5, 76 | number=5, type=8, cpp_type=7, label=1, 77 | has_default_value=False, default_value=False, 78 | message_type=None, enum_type=None, containing_type=None, 79 | is_extension=False, extension_scope=None, 80 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 81 | _descriptor.FieldDescriptor( 82 | name='user_level', full_name='v2ray.core.proxy.dokodemo.Config.user_level', index=6, 83 | number=6, type=13, cpp_type=3, label=1, 84 | has_default_value=False, default_value=0, 85 | message_type=None, enum_type=None, containing_type=None, 86 | is_extension=False, extension_scope=None, 87 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 88 | ], 89 | extensions=[ 90 | ], 91 | nested_types=[], 92 | enum_types=[ 93 | ], 94 | serialized_options=None, 95 | is_extendable=False, 96 | syntax='proto3', 97 | extension_ranges=[], 98 | oneofs=[ 99 | ], 100 | serialized_start=111, 101 | serialized_end=363, 102 | ) 103 | 104 | _CONFIG.fields_by_name['address'].message_type = common_dot_net_dot_address__pb2._IPORDOMAIN 105 | _CONFIG.fields_by_name['network_list'].message_type = common_dot_net_dot_network__pb2._NETWORKLIST 106 | _CONFIG.fields_by_name['networks'].enum_type = common_dot_net_dot_network__pb2._NETWORK 107 | DESCRIPTOR.message_types_by_name['Config'] = _CONFIG 108 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 109 | 110 | Config = _reflection.GeneratedProtocolMessageType('Config', (_message.Message,), { 111 | 'DESCRIPTOR' : _CONFIG, 112 | '__module__' : 'proxy.dokodemo.config_pb2' 113 | # @@protoc_insertion_point(class_scope:v2ray.core.proxy.dokodemo.Config) 114 | }) 115 | _sym_db.RegisterMessage(Config) 116 | 117 | 118 | DESCRIPTOR._options = None 119 | _CONFIG.fields_by_name['network_list']._options = None 120 | _CONFIG.fields_by_name['timeout']._options = None 121 | # @@protoc_insertion_point(module_scope) 122 | -------------------------------------------------------------------------------- /v2api/proto/proxy/dokodemo/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/proxy/freedom/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/proxy/http/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/proxy/loopback/config_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: proxy/loopback/config.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | 15 | 16 | DESCRIPTOR = _descriptor.FileDescriptor( 17 | name='proxy/loopback/config.proto', 18 | package='v2ray.core.proxy.loopback', 19 | syntax='proto3', 20 | serialized_options=b'\n\035com.v2ray.core.proxy.loopbackP\001Z-github.com/v2fly/v2ray-core/v4/proxy/loopback\252\002\031V2Ray.Core.Proxy.Loopback', 21 | create_key=_descriptor._internal_create_key, 22 | serialized_pb=b'\n\x1bproxy/loopback/config.proto\x12\x19v2ray.core.proxy.loopback\"\x1d\n\x06\x43onfig\x12\x13\n\x0binbound_tag\x18\x01 \x01(\tBl\n\x1d\x63om.v2ray.core.proxy.loopbackP\x01Z-github.com/v2fly/v2ray-core/v4/proxy/loopback\xaa\x02\x19V2Ray.Core.Proxy.Loopbackb\x06proto3' 23 | ) 24 | 25 | 26 | 27 | 28 | _CONFIG = _descriptor.Descriptor( 29 | name='Config', 30 | full_name='v2ray.core.proxy.loopback.Config', 31 | filename=None, 32 | file=DESCRIPTOR, 33 | containing_type=None, 34 | create_key=_descriptor._internal_create_key, 35 | fields=[ 36 | _descriptor.FieldDescriptor( 37 | name='inbound_tag', full_name='v2ray.core.proxy.loopback.Config.inbound_tag', index=0, 38 | number=1, type=9, cpp_type=9, label=1, 39 | has_default_value=False, default_value=b"".decode('utf-8'), 40 | message_type=None, enum_type=None, containing_type=None, 41 | is_extension=False, extension_scope=None, 42 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 43 | ], 44 | extensions=[ 45 | ], 46 | nested_types=[], 47 | enum_types=[ 48 | ], 49 | serialized_options=None, 50 | is_extendable=False, 51 | syntax='proto3', 52 | extension_ranges=[], 53 | oneofs=[ 54 | ], 55 | serialized_start=58, 56 | serialized_end=87, 57 | ) 58 | 59 | DESCRIPTOR.message_types_by_name['Config'] = _CONFIG 60 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 61 | 62 | Config = _reflection.GeneratedProtocolMessageType('Config', (_message.Message,), { 63 | 'DESCRIPTOR' : _CONFIG, 64 | '__module__' : 'proxy.loopback.config_pb2' 65 | # @@protoc_insertion_point(class_scope:v2ray.core.proxy.loopback.Config) 66 | }) 67 | _sym_db.RegisterMessage(Config) 68 | 69 | 70 | DESCRIPTOR._options = None 71 | # @@protoc_insertion_point(module_scope) 72 | -------------------------------------------------------------------------------- /v2api/proto/proxy/loopback/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/proxy/mtproto/config_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: proxy/mtproto/config.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | from common.protocol import user_pb2 as common_dot_protocol_dot_user__pb2 15 | 16 | 17 | DESCRIPTOR = _descriptor.FileDescriptor( 18 | name='proxy/mtproto/config.proto', 19 | package='v2ray.core.proxy.mtproto', 20 | syntax='proto3', 21 | serialized_options=b'\n\034com.v2ray.core.proxy.mtprotoP\001Z,github.com/v2fly/v2ray-core/v4/proxy/mtproto\252\002\030V2Ray.Core.Proxy.Mtproto', 22 | create_key=_descriptor._internal_create_key, 23 | serialized_pb=b'\n\x1aproxy/mtproto/config.proto\x12\x18v2ray.core.proxy.mtproto\x1a\x1a\x63ommon/protocol/user.proto\"\x19\n\x07\x41\x63\x63ount\x12\x0e\n\x06secret\x18\x01 \x01(\x0c\">\n\x0cServerConfig\x12.\n\x04user\x18\x01 \x03(\x0b\x32 .v2ray.core.common.protocol.User\"\x0e\n\x0c\x43lientConfigBi\n\x1c\x63om.v2ray.core.proxy.mtprotoP\x01Z,github.com/v2fly/v2ray-core/v4/proxy/mtproto\xaa\x02\x18V2Ray.Core.Proxy.Mtprotob\x06proto3' 24 | , 25 | dependencies=[common_dot_protocol_dot_user__pb2.DESCRIPTOR,]) 26 | 27 | 28 | 29 | 30 | _ACCOUNT = _descriptor.Descriptor( 31 | name='Account', 32 | full_name='v2ray.core.proxy.mtproto.Account', 33 | filename=None, 34 | file=DESCRIPTOR, 35 | containing_type=None, 36 | create_key=_descriptor._internal_create_key, 37 | fields=[ 38 | _descriptor.FieldDescriptor( 39 | name='secret', full_name='v2ray.core.proxy.mtproto.Account.secret', index=0, 40 | number=1, type=12, cpp_type=9, label=1, 41 | has_default_value=False, default_value=b"", 42 | message_type=None, enum_type=None, containing_type=None, 43 | is_extension=False, extension_scope=None, 44 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 45 | ], 46 | extensions=[ 47 | ], 48 | nested_types=[], 49 | enum_types=[ 50 | ], 51 | serialized_options=None, 52 | is_extendable=False, 53 | syntax='proto3', 54 | extension_ranges=[], 55 | oneofs=[ 56 | ], 57 | serialized_start=84, 58 | serialized_end=109, 59 | ) 60 | 61 | 62 | _SERVERCONFIG = _descriptor.Descriptor( 63 | name='ServerConfig', 64 | full_name='v2ray.core.proxy.mtproto.ServerConfig', 65 | filename=None, 66 | file=DESCRIPTOR, 67 | containing_type=None, 68 | create_key=_descriptor._internal_create_key, 69 | fields=[ 70 | _descriptor.FieldDescriptor( 71 | name='user', full_name='v2ray.core.proxy.mtproto.ServerConfig.user', index=0, 72 | number=1, type=11, cpp_type=10, label=3, 73 | has_default_value=False, default_value=[], 74 | message_type=None, enum_type=None, containing_type=None, 75 | is_extension=False, extension_scope=None, 76 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 77 | ], 78 | extensions=[ 79 | ], 80 | nested_types=[], 81 | enum_types=[ 82 | ], 83 | serialized_options=None, 84 | is_extendable=False, 85 | syntax='proto3', 86 | extension_ranges=[], 87 | oneofs=[ 88 | ], 89 | serialized_start=111, 90 | serialized_end=173, 91 | ) 92 | 93 | 94 | _CLIENTCONFIG = _descriptor.Descriptor( 95 | name='ClientConfig', 96 | full_name='v2ray.core.proxy.mtproto.ClientConfig', 97 | filename=None, 98 | file=DESCRIPTOR, 99 | containing_type=None, 100 | create_key=_descriptor._internal_create_key, 101 | fields=[ 102 | ], 103 | extensions=[ 104 | ], 105 | nested_types=[], 106 | enum_types=[ 107 | ], 108 | serialized_options=None, 109 | is_extendable=False, 110 | syntax='proto3', 111 | extension_ranges=[], 112 | oneofs=[ 113 | ], 114 | serialized_start=175, 115 | serialized_end=189, 116 | ) 117 | 118 | _SERVERCONFIG.fields_by_name['user'].message_type = common_dot_protocol_dot_user__pb2._USER 119 | DESCRIPTOR.message_types_by_name['Account'] = _ACCOUNT 120 | DESCRIPTOR.message_types_by_name['ServerConfig'] = _SERVERCONFIG 121 | DESCRIPTOR.message_types_by_name['ClientConfig'] = _CLIENTCONFIG 122 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 123 | 124 | Account = _reflection.GeneratedProtocolMessageType('Account', (_message.Message,), { 125 | 'DESCRIPTOR' : _ACCOUNT, 126 | '__module__' : 'proxy.mtproto.config_pb2' 127 | # @@protoc_insertion_point(class_scope:v2ray.core.proxy.mtproto.Account) 128 | }) 129 | _sym_db.RegisterMessage(Account) 130 | 131 | ServerConfig = _reflection.GeneratedProtocolMessageType('ServerConfig', (_message.Message,), { 132 | 'DESCRIPTOR' : _SERVERCONFIG, 133 | '__module__' : 'proxy.mtproto.config_pb2' 134 | # @@protoc_insertion_point(class_scope:v2ray.core.proxy.mtproto.ServerConfig) 135 | }) 136 | _sym_db.RegisterMessage(ServerConfig) 137 | 138 | ClientConfig = _reflection.GeneratedProtocolMessageType('ClientConfig', (_message.Message,), { 139 | 'DESCRIPTOR' : _CLIENTCONFIG, 140 | '__module__' : 'proxy.mtproto.config_pb2' 141 | # @@protoc_insertion_point(class_scope:v2ray.core.proxy.mtproto.ClientConfig) 142 | }) 143 | _sym_db.RegisterMessage(ClientConfig) 144 | 145 | 146 | DESCRIPTOR._options = None 147 | # @@protoc_insertion_point(module_scope) 148 | -------------------------------------------------------------------------------- /v2api/proto/proxy/mtproto/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/proxy/shadowsocks/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/proxy/socks/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/proxy/trojan/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/proxy/vless/account_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: proxy/vless/account.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | 15 | 16 | DESCRIPTOR = _descriptor.FileDescriptor( 17 | name='proxy/vless/account.proto', 18 | package='v2ray.core.proxy.vless', 19 | syntax='proto3', 20 | serialized_options=b'\n\032com.v2ray.core.proxy.vlessP\001Z*github.com/v2fly/v2ray-core/v4/proxy/vless\252\002\026V2Ray.Core.Proxy.Vless', 21 | create_key=_descriptor._internal_create_key, 22 | serialized_pb=b'\n\x19proxy/vless/account.proto\x12\x16v2ray.core.proxy.vless\"7\n\x07\x41\x63\x63ount\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04\x66low\x18\x02 \x01(\t\x12\x12\n\nencryption\x18\x03 \x01(\tBc\n\x1a\x63om.v2ray.core.proxy.vlessP\x01Z*github.com/v2fly/v2ray-core/v4/proxy/vless\xaa\x02\x16V2Ray.Core.Proxy.Vlessb\x06proto3' 23 | ) 24 | 25 | 26 | 27 | 28 | _ACCOUNT = _descriptor.Descriptor( 29 | name='Account', 30 | full_name='v2ray.core.proxy.vless.Account', 31 | filename=None, 32 | file=DESCRIPTOR, 33 | containing_type=None, 34 | create_key=_descriptor._internal_create_key, 35 | fields=[ 36 | _descriptor.FieldDescriptor( 37 | name='id', full_name='v2ray.core.proxy.vless.Account.id', index=0, 38 | number=1, type=9, cpp_type=9, label=1, 39 | has_default_value=False, default_value=b"".decode('utf-8'), 40 | message_type=None, enum_type=None, containing_type=None, 41 | is_extension=False, extension_scope=None, 42 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 43 | _descriptor.FieldDescriptor( 44 | name='flow', full_name='v2ray.core.proxy.vless.Account.flow', index=1, 45 | number=2, type=9, cpp_type=9, label=1, 46 | has_default_value=False, default_value=b"".decode('utf-8'), 47 | message_type=None, enum_type=None, containing_type=None, 48 | is_extension=False, extension_scope=None, 49 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 50 | _descriptor.FieldDescriptor( 51 | name='encryption', full_name='v2ray.core.proxy.vless.Account.encryption', index=2, 52 | number=3, type=9, cpp_type=9, label=1, 53 | has_default_value=False, default_value=b"".decode('utf-8'), 54 | message_type=None, enum_type=None, containing_type=None, 55 | is_extension=False, extension_scope=None, 56 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 57 | ], 58 | extensions=[ 59 | ], 60 | nested_types=[], 61 | enum_types=[ 62 | ], 63 | serialized_options=None, 64 | is_extendable=False, 65 | syntax='proto3', 66 | extension_ranges=[], 67 | oneofs=[ 68 | ], 69 | serialized_start=53, 70 | serialized_end=108, 71 | ) 72 | 73 | DESCRIPTOR.message_types_by_name['Account'] = _ACCOUNT 74 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 75 | 76 | Account = _reflection.GeneratedProtocolMessageType('Account', (_message.Message,), { 77 | 'DESCRIPTOR' : _ACCOUNT, 78 | '__module__' : 'proxy.vless.account_pb2' 79 | # @@protoc_insertion_point(class_scope:v2ray.core.proxy.vless.Account) 80 | }) 81 | _sym_db.RegisterMessage(Account) 82 | 83 | 84 | DESCRIPTOR._options = None 85 | # @@protoc_insertion_point(module_scope) 86 | -------------------------------------------------------------------------------- /v2api/proto/proxy/vless/account_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/proxy/vless/encoding/addons_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: proxy/vless/encoding/addons.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | 15 | 16 | DESCRIPTOR = _descriptor.FileDescriptor( 17 | name='proxy/vless/encoding/addons.proto', 18 | package='v2ray.core.proxy.vless.encoding', 19 | syntax='proto3', 20 | serialized_options=b'\n#com.v2ray.core.proxy.vless.encodingP\001Z3github.com/v2fly/v2ray-core/v4/proxy/vless/encoding\252\002\037V2Ray.Core.Proxy.Vless.Encoding', 21 | create_key=_descriptor._internal_create_key, 22 | serialized_pb=b'\n!proxy/vless/encoding/addons.proto\x12\x1fv2ray.core.proxy.vless.encoding\"$\n\x06\x41\x64\x64ons\x12\x0c\n\x04\x46low\x18\x01 \x01(\t\x12\x0c\n\x04Seed\x18\x02 \x01(\x0c\x42~\n#com.v2ray.core.proxy.vless.encodingP\x01Z3github.com/v2fly/v2ray-core/v4/proxy/vless/encoding\xaa\x02\x1fV2Ray.Core.Proxy.Vless.Encodingb\x06proto3' 23 | ) 24 | 25 | 26 | 27 | 28 | _ADDONS = _descriptor.Descriptor( 29 | name='Addons', 30 | full_name='v2ray.core.proxy.vless.encoding.Addons', 31 | filename=None, 32 | file=DESCRIPTOR, 33 | containing_type=None, 34 | create_key=_descriptor._internal_create_key, 35 | fields=[ 36 | _descriptor.FieldDescriptor( 37 | name='Flow', full_name='v2ray.core.proxy.vless.encoding.Addons.Flow', index=0, 38 | number=1, type=9, cpp_type=9, label=1, 39 | has_default_value=False, default_value=b"".decode('utf-8'), 40 | message_type=None, enum_type=None, containing_type=None, 41 | is_extension=False, extension_scope=None, 42 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 43 | _descriptor.FieldDescriptor( 44 | name='Seed', full_name='v2ray.core.proxy.vless.encoding.Addons.Seed', index=1, 45 | number=2, type=12, cpp_type=9, label=1, 46 | has_default_value=False, default_value=b"", 47 | message_type=None, enum_type=None, containing_type=None, 48 | is_extension=False, extension_scope=None, 49 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 50 | ], 51 | extensions=[ 52 | ], 53 | nested_types=[], 54 | enum_types=[ 55 | ], 56 | serialized_options=None, 57 | is_extendable=False, 58 | syntax='proto3', 59 | extension_ranges=[], 60 | oneofs=[ 61 | ], 62 | serialized_start=70, 63 | serialized_end=106, 64 | ) 65 | 66 | DESCRIPTOR.message_types_by_name['Addons'] = _ADDONS 67 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 68 | 69 | Addons = _reflection.GeneratedProtocolMessageType('Addons', (_message.Message,), { 70 | 'DESCRIPTOR' : _ADDONS, 71 | '__module__' : 'proxy.vless.encoding.addons_pb2' 72 | # @@protoc_insertion_point(class_scope:v2ray.core.proxy.vless.encoding.Addons) 73 | }) 74 | _sym_db.RegisterMessage(Addons) 75 | 76 | 77 | DESCRIPTOR._options = None 78 | # @@protoc_insertion_point(module_scope) 79 | -------------------------------------------------------------------------------- /v2api/proto/proxy/vless/encoding/addons_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/proxy/vless/inbound/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/proxy/vless/outbound/config_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: proxy/vless/outbound/config.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | from common.protocol import server_spec_pb2 as common_dot_protocol_dot_server__spec__pb2 15 | 16 | 17 | DESCRIPTOR = _descriptor.FileDescriptor( 18 | name='proxy/vless/outbound/config.proto', 19 | package='v2ray.core.proxy.vless.outbound', 20 | syntax='proto3', 21 | serialized_options=b'\n#com.v2ray.core.proxy.vless.outboundP\001Z3github.com/v2fly/v2ray-core/v4/proxy/vless/outbound\252\002\037V2Ray.Core.Proxy.Vless.Outbound', 22 | create_key=_descriptor._internal_create_key, 23 | serialized_pb=b'\n!proxy/vless/outbound/config.proto\x12\x1fv2ray.core.proxy.vless.outbound\x1a!common/protocol/server_spec.proto\"C\n\x06\x43onfig\x12\x39\n\x05vnext\x18\x01 \x03(\x0b\x32*.v2ray.core.common.protocol.ServerEndpointB~\n#com.v2ray.core.proxy.vless.outboundP\x01Z3github.com/v2fly/v2ray-core/v4/proxy/vless/outbound\xaa\x02\x1fV2Ray.Core.Proxy.Vless.Outboundb\x06proto3' 24 | , 25 | dependencies=[common_dot_protocol_dot_server__spec__pb2.DESCRIPTOR,]) 26 | 27 | 28 | 29 | 30 | _CONFIG = _descriptor.Descriptor( 31 | name='Config', 32 | full_name='v2ray.core.proxy.vless.outbound.Config', 33 | filename=None, 34 | file=DESCRIPTOR, 35 | containing_type=None, 36 | create_key=_descriptor._internal_create_key, 37 | fields=[ 38 | _descriptor.FieldDescriptor( 39 | name='vnext', full_name='v2ray.core.proxy.vless.outbound.Config.vnext', index=0, 40 | number=1, type=11, cpp_type=10, label=3, 41 | has_default_value=False, default_value=[], 42 | message_type=None, enum_type=None, containing_type=None, 43 | is_extension=False, extension_scope=None, 44 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 45 | ], 46 | extensions=[ 47 | ], 48 | nested_types=[], 49 | enum_types=[ 50 | ], 51 | serialized_options=None, 52 | is_extendable=False, 53 | syntax='proto3', 54 | extension_ranges=[], 55 | oneofs=[ 56 | ], 57 | serialized_start=105, 58 | serialized_end=172, 59 | ) 60 | 61 | _CONFIG.fields_by_name['vnext'].message_type = common_dot_protocol_dot_server__spec__pb2._SERVERENDPOINT 62 | DESCRIPTOR.message_types_by_name['Config'] = _CONFIG 63 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 64 | 65 | Config = _reflection.GeneratedProtocolMessageType('Config', (_message.Message,), { 66 | 'DESCRIPTOR' : _CONFIG, 67 | '__module__' : 'proxy.vless.outbound.config_pb2' 68 | # @@protoc_insertion_point(class_scope:v2ray.core.proxy.vless.outbound.Config) 69 | }) 70 | _sym_db.RegisterMessage(Config) 71 | 72 | 73 | DESCRIPTOR._options = None 74 | # @@protoc_insertion_point(module_scope) 75 | -------------------------------------------------------------------------------- /v2api/proto/proxy/vless/outbound/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/proxy/vmess/account_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: proxy/vmess/account.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | from common.protocol import headers_pb2 as common_dot_protocol_dot_headers__pb2 15 | 16 | 17 | DESCRIPTOR = _descriptor.FileDescriptor( 18 | name='proxy/vmess/account.proto', 19 | package='v2ray.core.proxy.vmess', 20 | syntax='proto3', 21 | serialized_options=b'\n\032com.v2ray.core.proxy.vmessP\001Z*github.com/v2fly/v2ray-core/v4/proxy/vmess\252\002\026V2Ray.Core.Proxy.Vmess', 22 | create_key=_descriptor._internal_create_key, 23 | serialized_pb=b'\n\x19proxy/vmess/account.proto\x12\x16v2ray.core.proxy.vmess\x1a\x1d\x63ommon/protocol/headers.proto\"\x85\x01\n\x07\x41\x63\x63ount\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08\x61lter_id\x18\x02 \x01(\r\x12\x45\n\x11security_settings\x18\x03 \x01(\x0b\x32*.v2ray.core.common.protocol.SecurityConfig\x12\x15\n\rtests_enabled\x18\x04 \x01(\tBc\n\x1a\x63om.v2ray.core.proxy.vmessP\x01Z*github.com/v2fly/v2ray-core/v4/proxy/vmess\xaa\x02\x16V2Ray.Core.Proxy.Vmessb\x06proto3' 24 | , 25 | dependencies=[common_dot_protocol_dot_headers__pb2.DESCRIPTOR,]) 26 | 27 | 28 | 29 | 30 | _ACCOUNT = _descriptor.Descriptor( 31 | name='Account', 32 | full_name='v2ray.core.proxy.vmess.Account', 33 | filename=None, 34 | file=DESCRIPTOR, 35 | containing_type=None, 36 | create_key=_descriptor._internal_create_key, 37 | fields=[ 38 | _descriptor.FieldDescriptor( 39 | name='id', full_name='v2ray.core.proxy.vmess.Account.id', index=0, 40 | number=1, type=9, cpp_type=9, label=1, 41 | has_default_value=False, default_value=b"".decode('utf-8'), 42 | message_type=None, enum_type=None, containing_type=None, 43 | is_extension=False, extension_scope=None, 44 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 45 | _descriptor.FieldDescriptor( 46 | name='alter_id', full_name='v2ray.core.proxy.vmess.Account.alter_id', index=1, 47 | number=2, type=13, cpp_type=3, label=1, 48 | has_default_value=False, default_value=0, 49 | message_type=None, enum_type=None, containing_type=None, 50 | is_extension=False, extension_scope=None, 51 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 52 | _descriptor.FieldDescriptor( 53 | name='security_settings', full_name='v2ray.core.proxy.vmess.Account.security_settings', index=2, 54 | number=3, type=11, cpp_type=10, label=1, 55 | has_default_value=False, default_value=None, 56 | message_type=None, enum_type=None, containing_type=None, 57 | is_extension=False, extension_scope=None, 58 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 59 | _descriptor.FieldDescriptor( 60 | name='tests_enabled', full_name='v2ray.core.proxy.vmess.Account.tests_enabled', index=3, 61 | number=4, type=9, cpp_type=9, label=1, 62 | has_default_value=False, default_value=b"".decode('utf-8'), 63 | message_type=None, enum_type=None, containing_type=None, 64 | is_extension=False, extension_scope=None, 65 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 66 | ], 67 | extensions=[ 68 | ], 69 | nested_types=[], 70 | enum_types=[ 71 | ], 72 | serialized_options=None, 73 | is_extendable=False, 74 | syntax='proto3', 75 | extension_ranges=[], 76 | oneofs=[ 77 | ], 78 | serialized_start=85, 79 | serialized_end=218, 80 | ) 81 | 82 | _ACCOUNT.fields_by_name['security_settings'].message_type = common_dot_protocol_dot_headers__pb2._SECURITYCONFIG 83 | DESCRIPTOR.message_types_by_name['Account'] = _ACCOUNT 84 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 85 | 86 | Account = _reflection.GeneratedProtocolMessageType('Account', (_message.Message,), { 87 | 'DESCRIPTOR' : _ACCOUNT, 88 | '__module__' : 'proxy.vmess.account_pb2' 89 | # @@protoc_insertion_point(class_scope:v2ray.core.proxy.vmess.Account) 90 | }) 91 | _sym_db.RegisterMessage(Account) 92 | 93 | 94 | DESCRIPTOR._options = None 95 | # @@protoc_insertion_point(module_scope) 96 | -------------------------------------------------------------------------------- /v2api/proto/proxy/vmess/account_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/proxy/vmess/inbound/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/proxy/vmess/outbound/config_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: proxy/vmess/outbound/config.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | from common.protocol import server_spec_pb2 as common_dot_protocol_dot_server__spec__pb2 15 | 16 | 17 | DESCRIPTOR = _descriptor.FileDescriptor( 18 | name='proxy/vmess/outbound/config.proto', 19 | package='v2ray.core.proxy.vmess.outbound', 20 | syntax='proto3', 21 | serialized_options=b'\n#com.v2ray.core.proxy.vmess.outboundP\001Z3github.com/v2fly/v2ray-core/v4/proxy/vmess/outbound\252\002\037V2Ray.Core.Proxy.Vmess.Outbound', 22 | create_key=_descriptor._internal_create_key, 23 | serialized_pb=b'\n!proxy/vmess/outbound/config.proto\x12\x1fv2ray.core.proxy.vmess.outbound\x1a!common/protocol/server_spec.proto\"F\n\x06\x43onfig\x12<\n\x08Receiver\x18\x01 \x03(\x0b\x32*.v2ray.core.common.protocol.ServerEndpointB~\n#com.v2ray.core.proxy.vmess.outboundP\x01Z3github.com/v2fly/v2ray-core/v4/proxy/vmess/outbound\xaa\x02\x1fV2Ray.Core.Proxy.Vmess.Outboundb\x06proto3' 24 | , 25 | dependencies=[common_dot_protocol_dot_server__spec__pb2.DESCRIPTOR,]) 26 | 27 | 28 | 29 | 30 | _CONFIG = _descriptor.Descriptor( 31 | name='Config', 32 | full_name='v2ray.core.proxy.vmess.outbound.Config', 33 | filename=None, 34 | file=DESCRIPTOR, 35 | containing_type=None, 36 | create_key=_descriptor._internal_create_key, 37 | fields=[ 38 | _descriptor.FieldDescriptor( 39 | name='Receiver', full_name='v2ray.core.proxy.vmess.outbound.Config.Receiver', index=0, 40 | number=1, type=11, cpp_type=10, label=3, 41 | has_default_value=False, default_value=[], 42 | message_type=None, enum_type=None, containing_type=None, 43 | is_extension=False, extension_scope=None, 44 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 45 | ], 46 | extensions=[ 47 | ], 48 | nested_types=[], 49 | enum_types=[ 50 | ], 51 | serialized_options=None, 52 | is_extendable=False, 53 | syntax='proto3', 54 | extension_ranges=[], 55 | oneofs=[ 56 | ], 57 | serialized_start=105, 58 | serialized_end=175, 59 | ) 60 | 61 | _CONFIG.fields_by_name['Receiver'].message_type = common_dot_protocol_dot_server__spec__pb2._SERVERENDPOINT 62 | DESCRIPTOR.message_types_by_name['Config'] = _CONFIG 63 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 64 | 65 | Config = _reflection.GeneratedProtocolMessageType('Config', (_message.Message,), { 66 | 'DESCRIPTOR' : _CONFIG, 67 | '__module__' : 'proxy.vmess.outbound.config_pb2' 68 | # @@protoc_insertion_point(class_scope:v2ray.core.proxy.vmess.outbound.Config) 69 | }) 70 | _sym_db.RegisterMessage(Config) 71 | 72 | 73 | DESCRIPTOR._options = None 74 | # @@protoc_insertion_point(module_scope) 75 | -------------------------------------------------------------------------------- /v2api/proto/proxy/vmess/outbound/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/transport/config_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: transport/config.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | from transport.internet import config_pb2 as transport_dot_internet_dot_config__pb2 15 | 16 | 17 | DESCRIPTOR = _descriptor.FileDescriptor( 18 | name='transport/config.proto', 19 | package='v2ray.core.transport', 20 | syntax='proto3', 21 | serialized_options=b'\n\030com.v2ray.core.transportP\001Z(github.com/v2fly/v2ray-core/v4/transport\252\002\024V2Ray.Core.Transport', 22 | create_key=_descriptor._internal_create_key, 23 | serialized_pb=b'\n\x16transport/config.proto\x12\x14v2ray.core.transport\x1a\x1ftransport/internet/config.proto\"X\n\x06\x43onfig\x12J\n\x12transport_settings\x18\x01 \x03(\x0b\x32..v2ray.core.transport.internet.TransportConfig:\x02\x18\x01\x42]\n\x18\x63om.v2ray.core.transportP\x01Z(github.com/v2fly/v2ray-core/v4/transport\xaa\x02\x14V2Ray.Core.Transportb\x06proto3' 24 | , 25 | dependencies=[transport_dot_internet_dot_config__pb2.DESCRIPTOR,]) 26 | 27 | 28 | 29 | 30 | _CONFIG = _descriptor.Descriptor( 31 | name='Config', 32 | full_name='v2ray.core.transport.Config', 33 | filename=None, 34 | file=DESCRIPTOR, 35 | containing_type=None, 36 | create_key=_descriptor._internal_create_key, 37 | fields=[ 38 | _descriptor.FieldDescriptor( 39 | name='transport_settings', full_name='v2ray.core.transport.Config.transport_settings', index=0, 40 | number=1, type=11, cpp_type=10, label=3, 41 | has_default_value=False, default_value=[], 42 | message_type=None, enum_type=None, containing_type=None, 43 | is_extension=False, extension_scope=None, 44 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 45 | ], 46 | extensions=[ 47 | ], 48 | nested_types=[], 49 | enum_types=[ 50 | ], 51 | serialized_options=b'\030\001', 52 | is_extendable=False, 53 | syntax='proto3', 54 | extension_ranges=[], 55 | oneofs=[ 56 | ], 57 | serialized_start=81, 58 | serialized_end=169, 59 | ) 60 | 61 | _CONFIG.fields_by_name['transport_settings'].message_type = transport_dot_internet_dot_config__pb2._TRANSPORTCONFIG 62 | DESCRIPTOR.message_types_by_name['Config'] = _CONFIG 63 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 64 | 65 | Config = _reflection.GeneratedProtocolMessageType('Config', (_message.Message,), { 66 | 'DESCRIPTOR' : _CONFIG, 67 | '__module__' : 'transport.config_pb2' 68 | # @@protoc_insertion_point(class_scope:v2ray.core.transport.Config) 69 | }) 70 | _sym_db.RegisterMessage(Config) 71 | 72 | 73 | DESCRIPTOR._options = None 74 | _CONFIG._options = None 75 | # @@protoc_insertion_point(module_scope) 76 | -------------------------------------------------------------------------------- /v2api/proto/transport/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/domainsocket/config_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: transport/internet/domainsocket/config.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | 15 | 16 | DESCRIPTOR = _descriptor.FileDescriptor( 17 | name='transport/internet/domainsocket/config.proto', 18 | package='v2ray.core.transport.internet.domainsocket', 19 | syntax='proto3', 20 | serialized_options=b'\n.com.v2ray.core.transport.internet.domainsocketP\001Z>github.com/v2fly/v2ray-core/v4/transport/internet/domainsocket\252\002*V2Ray.Core.Transport.Internet.DomainSocket', 21 | create_key=_descriptor._internal_create_key, 22 | serialized_pb=b'\n,transport/internet/domainsocket/config.proto\x12*v2ray.core.transport.internet.domainsocket\"9\n\x06\x43onfig\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x10\n\x08\x61\x62stract\x18\x02 \x01(\x08\x12\x0f\n\x07padding\x18\x03 \x01(\x08\x42\x9f\x01\n.com.v2ray.core.transport.internet.domainsocketP\x01Z>github.com/v2fly/v2ray-core/v4/transport/internet/domainsocket\xaa\x02*V2Ray.Core.Transport.Internet.DomainSocketb\x06proto3' 23 | ) 24 | 25 | 26 | 27 | 28 | _CONFIG = _descriptor.Descriptor( 29 | name='Config', 30 | full_name='v2ray.core.transport.internet.domainsocket.Config', 31 | filename=None, 32 | file=DESCRIPTOR, 33 | containing_type=None, 34 | create_key=_descriptor._internal_create_key, 35 | fields=[ 36 | _descriptor.FieldDescriptor( 37 | name='path', full_name='v2ray.core.transport.internet.domainsocket.Config.path', index=0, 38 | number=1, type=9, cpp_type=9, label=1, 39 | has_default_value=False, default_value=b"".decode('utf-8'), 40 | message_type=None, enum_type=None, containing_type=None, 41 | is_extension=False, extension_scope=None, 42 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 43 | _descriptor.FieldDescriptor( 44 | name='abstract', full_name='v2ray.core.transport.internet.domainsocket.Config.abstract', index=1, 45 | number=2, type=8, cpp_type=7, label=1, 46 | has_default_value=False, default_value=False, 47 | message_type=None, enum_type=None, containing_type=None, 48 | is_extension=False, extension_scope=None, 49 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 50 | _descriptor.FieldDescriptor( 51 | name='padding', full_name='v2ray.core.transport.internet.domainsocket.Config.padding', index=2, 52 | number=3, type=8, cpp_type=7, label=1, 53 | has_default_value=False, default_value=False, 54 | message_type=None, enum_type=None, containing_type=None, 55 | is_extension=False, extension_scope=None, 56 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 57 | ], 58 | extensions=[ 59 | ], 60 | nested_types=[], 61 | enum_types=[ 62 | ], 63 | serialized_options=None, 64 | is_extendable=False, 65 | syntax='proto3', 66 | extension_ranges=[], 67 | oneofs=[ 68 | ], 69 | serialized_start=92, 70 | serialized_end=149, 71 | ) 72 | 73 | DESCRIPTOR.message_types_by_name['Config'] = _CONFIG 74 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 75 | 76 | Config = _reflection.GeneratedProtocolMessageType('Config', (_message.Message,), { 77 | 'DESCRIPTOR' : _CONFIG, 78 | '__module__' : 'transport.internet.domainsocket.config_pb2' 79 | # @@protoc_insertion_point(class_scope:v2ray.core.transport.internet.domainsocket.Config) 80 | }) 81 | _sym_db.RegisterMessage(Config) 82 | 83 | 84 | DESCRIPTOR._options = None 85 | # @@protoc_insertion_point(module_scope) 86 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/domainsocket/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/grpc/config_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: transport/internet/grpc/config.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | 15 | 16 | DESCRIPTOR = _descriptor.FileDescriptor( 17 | name='transport/internet/grpc/config.proto', 18 | package='v2ray.core.transport.internet.grpc.encoding', 19 | syntax='proto3', 20 | serialized_options=b'Z6github.com/v2fly/v2ray-core/v4/transport/internet/grpc', 21 | create_key=_descriptor._internal_create_key, 22 | serialized_pb=b'\n$transport/internet/grpc/config.proto\x12+v2ray.core.transport.internet.grpc.encoding\",\n\x06\x43onfig\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x14\n\x0cservice_name\x18\x02 \x01(\tB8Z6github.com/v2fly/v2ray-core/v4/transport/internet/grpcb\x06proto3' 23 | ) 24 | 25 | 26 | 27 | 28 | _CONFIG = _descriptor.Descriptor( 29 | name='Config', 30 | full_name='v2ray.core.transport.internet.grpc.encoding.Config', 31 | filename=None, 32 | file=DESCRIPTOR, 33 | containing_type=None, 34 | create_key=_descriptor._internal_create_key, 35 | fields=[ 36 | _descriptor.FieldDescriptor( 37 | name='host', full_name='v2ray.core.transport.internet.grpc.encoding.Config.host', index=0, 38 | number=1, type=9, cpp_type=9, label=1, 39 | has_default_value=False, default_value=b"".decode('utf-8'), 40 | message_type=None, enum_type=None, containing_type=None, 41 | is_extension=False, extension_scope=None, 42 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 43 | _descriptor.FieldDescriptor( 44 | name='service_name', full_name='v2ray.core.transport.internet.grpc.encoding.Config.service_name', index=1, 45 | number=2, type=9, cpp_type=9, label=1, 46 | has_default_value=False, default_value=b"".decode('utf-8'), 47 | message_type=None, enum_type=None, containing_type=None, 48 | is_extension=False, extension_scope=None, 49 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 50 | ], 51 | extensions=[ 52 | ], 53 | nested_types=[], 54 | enum_types=[ 55 | ], 56 | serialized_options=None, 57 | is_extendable=False, 58 | syntax='proto3', 59 | extension_ranges=[], 60 | oneofs=[ 61 | ], 62 | serialized_start=85, 63 | serialized_end=129, 64 | ) 65 | 66 | DESCRIPTOR.message_types_by_name['Config'] = _CONFIG 67 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 68 | 69 | Config = _reflection.GeneratedProtocolMessageType('Config', (_message.Message,), { 70 | 'DESCRIPTOR' : _CONFIG, 71 | '__module__' : 'transport.internet.grpc.config_pb2' 72 | # @@protoc_insertion_point(class_scope:v2ray.core.transport.internet.grpc.encoding.Config) 73 | }) 74 | _sym_db.RegisterMessage(Config) 75 | 76 | 77 | DESCRIPTOR._options = None 78 | # @@protoc_insertion_point(module_scope) 79 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/grpc/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/grpc/encoding/stream_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: transport/internet/grpc/encoding/stream.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | 15 | 16 | DESCRIPTOR = _descriptor.FileDescriptor( 17 | name='transport/internet/grpc/encoding/stream.proto', 18 | package='v2ray.core.transport.internet.grpc.encoding', 19 | syntax='proto3', 20 | serialized_options=b'Z?github.com/v2fly/v2ray-core/v4/transport/internet/grpc/encoding', 21 | create_key=_descriptor._internal_create_key, 22 | serialized_pb=b'\n-transport/internet/grpc/encoding/stream.proto\x12+v2ray.core.transport.internet.grpc.encoding\"\x14\n\x04Hunk\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x32}\n\nGunService\x12o\n\x03Tun\x12\x31.v2ray.core.transport.internet.grpc.encoding.Hunk\x1a\x31.v2ray.core.transport.internet.grpc.encoding.Hunk(\x01\x30\x01\x42\x41Z?github.com/v2fly/v2ray-core/v4/transport/internet/grpc/encodingb\x06proto3' 23 | ) 24 | 25 | 26 | 27 | 28 | _HUNK = _descriptor.Descriptor( 29 | name='Hunk', 30 | full_name='v2ray.core.transport.internet.grpc.encoding.Hunk', 31 | filename=None, 32 | file=DESCRIPTOR, 33 | containing_type=None, 34 | create_key=_descriptor._internal_create_key, 35 | fields=[ 36 | _descriptor.FieldDescriptor( 37 | name='data', full_name='v2ray.core.transport.internet.grpc.encoding.Hunk.data', index=0, 38 | number=1, type=12, cpp_type=9, label=1, 39 | has_default_value=False, default_value=b"", 40 | message_type=None, enum_type=None, containing_type=None, 41 | is_extension=False, extension_scope=None, 42 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 43 | ], 44 | extensions=[ 45 | ], 46 | nested_types=[], 47 | enum_types=[ 48 | ], 49 | serialized_options=None, 50 | is_extendable=False, 51 | syntax='proto3', 52 | extension_ranges=[], 53 | oneofs=[ 54 | ], 55 | serialized_start=94, 56 | serialized_end=114, 57 | ) 58 | 59 | DESCRIPTOR.message_types_by_name['Hunk'] = _HUNK 60 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 61 | 62 | Hunk = _reflection.GeneratedProtocolMessageType('Hunk', (_message.Message,), { 63 | 'DESCRIPTOR' : _HUNK, 64 | '__module__' : 'transport.internet.grpc.encoding.stream_pb2' 65 | # @@protoc_insertion_point(class_scope:v2ray.core.transport.internet.grpc.encoding.Hunk) 66 | }) 67 | _sym_db.RegisterMessage(Hunk) 68 | 69 | 70 | DESCRIPTOR._options = None 71 | 72 | _GUNSERVICE = _descriptor.ServiceDescriptor( 73 | name='GunService', 74 | full_name='v2ray.core.transport.internet.grpc.encoding.GunService', 75 | file=DESCRIPTOR, 76 | index=0, 77 | serialized_options=None, 78 | create_key=_descriptor._internal_create_key, 79 | serialized_start=116, 80 | serialized_end=241, 81 | methods=[ 82 | _descriptor.MethodDescriptor( 83 | name='Tun', 84 | full_name='v2ray.core.transport.internet.grpc.encoding.GunService.Tun', 85 | index=0, 86 | containing_service=None, 87 | input_type=_HUNK, 88 | output_type=_HUNK, 89 | serialized_options=None, 90 | create_key=_descriptor._internal_create_key, 91 | ), 92 | ]) 93 | _sym_db.RegisterServiceDescriptor(_GUNSERVICE) 94 | 95 | DESCRIPTOR.services_by_name['GunService'] = _GUNSERVICE 96 | 97 | # @@protoc_insertion_point(module_scope) 98 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/grpc/encoding/stream_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | from transport.internet.grpc.encoding import stream_pb2 as transport_dot_internet_dot_grpc_dot_encoding_dot_stream__pb2 6 | 7 | 8 | class GunServiceStub(object): 9 | """Missing associated documentation comment in .proto file.""" 10 | 11 | def __init__(self, channel): 12 | """Constructor. 13 | 14 | Args: 15 | channel: A grpc.Channel. 16 | """ 17 | self.Tun = channel.stream_stream( 18 | '/v2ray.core.transport.internet.grpc.encoding.GunService/Tun', 19 | request_serializer=transport_dot_internet_dot_grpc_dot_encoding_dot_stream__pb2.Hunk.SerializeToString, 20 | response_deserializer=transport_dot_internet_dot_grpc_dot_encoding_dot_stream__pb2.Hunk.FromString, 21 | ) 22 | 23 | 24 | class GunServiceServicer(object): 25 | """Missing associated documentation comment in .proto file.""" 26 | 27 | def Tun(self, request_iterator, context): 28 | """Missing associated documentation comment in .proto file.""" 29 | context.set_code(grpc.StatusCode.UNIMPLEMENTED) 30 | context.set_details('Method not implemented!') 31 | raise NotImplementedError('Method not implemented!') 32 | 33 | 34 | def add_GunServiceServicer_to_server(servicer, server): 35 | rpc_method_handlers = { 36 | 'Tun': grpc.stream_stream_rpc_method_handler( 37 | servicer.Tun, 38 | request_deserializer=transport_dot_internet_dot_grpc_dot_encoding_dot_stream__pb2.Hunk.FromString, 39 | response_serializer=transport_dot_internet_dot_grpc_dot_encoding_dot_stream__pb2.Hunk.SerializeToString, 40 | ), 41 | } 42 | generic_handler = grpc.method_handlers_generic_handler( 43 | 'v2ray.core.transport.internet.grpc.encoding.GunService', rpc_method_handlers) 44 | server.add_generic_rpc_handlers((generic_handler,)) 45 | 46 | 47 | # This class is part of an EXPERIMENTAL API. 48 | class GunService(object): 49 | """Missing associated documentation comment in .proto file.""" 50 | 51 | @staticmethod 52 | def Tun(request_iterator, 53 | target, 54 | options=(), 55 | channel_credentials=None, 56 | call_credentials=None, 57 | insecure=False, 58 | compression=None, 59 | wait_for_ready=None, 60 | timeout=None, 61 | metadata=None): 62 | return grpc.experimental.stream_stream(request_iterator, target, '/v2ray.core.transport.internet.grpc.encoding.GunService/Tun', 63 | transport_dot_internet_dot_grpc_dot_encoding_dot_stream__pb2.Hunk.SerializeToString, 64 | transport_dot_internet_dot_grpc_dot_encoding_dot_stream__pb2.Hunk.FromString, 65 | options, channel_credentials, 66 | insecure, call_credentials, compression, wait_for_ready, timeout, metadata) 67 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/headers/http/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/headers/noop/config_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: transport/internet/headers/noop/config.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | 15 | 16 | DESCRIPTOR = _descriptor.FileDescriptor( 17 | name='transport/internet/headers/noop/config.proto', 18 | package='v2ray.core.transport.internet.headers.noop', 19 | syntax='proto3', 20 | serialized_options=b'\n.com.v2ray.core.transport.internet.headers.noopP\001Z>github.com/v2fly/v2ray-core/v4/transport/internet/headers/noop\252\002*V2Ray.Core.Transport.Internet.Headers.Noop', 21 | create_key=_descriptor._internal_create_key, 22 | serialized_pb=b'\n,transport/internet/headers/noop/config.proto\x12*v2ray.core.transport.internet.headers.noop\"\x08\n\x06\x43onfig\"\x12\n\x10\x43onnectionConfigB\x9f\x01\n.com.v2ray.core.transport.internet.headers.noopP\x01Z>github.com/v2fly/v2ray-core/v4/transport/internet/headers/noop\xaa\x02*V2Ray.Core.Transport.Internet.Headers.Noopb\x06proto3' 23 | ) 24 | 25 | 26 | 27 | 28 | _CONFIG = _descriptor.Descriptor( 29 | name='Config', 30 | full_name='v2ray.core.transport.internet.headers.noop.Config', 31 | filename=None, 32 | file=DESCRIPTOR, 33 | containing_type=None, 34 | create_key=_descriptor._internal_create_key, 35 | fields=[ 36 | ], 37 | extensions=[ 38 | ], 39 | nested_types=[], 40 | enum_types=[ 41 | ], 42 | serialized_options=None, 43 | is_extendable=False, 44 | syntax='proto3', 45 | extension_ranges=[], 46 | oneofs=[ 47 | ], 48 | serialized_start=92, 49 | serialized_end=100, 50 | ) 51 | 52 | 53 | _CONNECTIONCONFIG = _descriptor.Descriptor( 54 | name='ConnectionConfig', 55 | full_name='v2ray.core.transport.internet.headers.noop.ConnectionConfig', 56 | filename=None, 57 | file=DESCRIPTOR, 58 | containing_type=None, 59 | create_key=_descriptor._internal_create_key, 60 | fields=[ 61 | ], 62 | extensions=[ 63 | ], 64 | nested_types=[], 65 | enum_types=[ 66 | ], 67 | serialized_options=None, 68 | is_extendable=False, 69 | syntax='proto3', 70 | extension_ranges=[], 71 | oneofs=[ 72 | ], 73 | serialized_start=102, 74 | serialized_end=120, 75 | ) 76 | 77 | DESCRIPTOR.message_types_by_name['Config'] = _CONFIG 78 | DESCRIPTOR.message_types_by_name['ConnectionConfig'] = _CONNECTIONCONFIG 79 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 80 | 81 | Config = _reflection.GeneratedProtocolMessageType('Config', (_message.Message,), { 82 | 'DESCRIPTOR' : _CONFIG, 83 | '__module__' : 'transport.internet.headers.noop.config_pb2' 84 | # @@protoc_insertion_point(class_scope:v2ray.core.transport.internet.headers.noop.Config) 85 | }) 86 | _sym_db.RegisterMessage(Config) 87 | 88 | ConnectionConfig = _reflection.GeneratedProtocolMessageType('ConnectionConfig', (_message.Message,), { 89 | 'DESCRIPTOR' : _CONNECTIONCONFIG, 90 | '__module__' : 'transport.internet.headers.noop.config_pb2' 91 | # @@protoc_insertion_point(class_scope:v2ray.core.transport.internet.headers.noop.ConnectionConfig) 92 | }) 93 | _sym_db.RegisterMessage(ConnectionConfig) 94 | 95 | 96 | DESCRIPTOR._options = None 97 | # @@protoc_insertion_point(module_scope) 98 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/headers/noop/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/headers/srtp/config_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: transport/internet/headers/srtp/config.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | 15 | 16 | DESCRIPTOR = _descriptor.FileDescriptor( 17 | name='transport/internet/headers/srtp/config.proto', 18 | package='v2ray.core.transport.internet.headers.srtp', 19 | syntax='proto3', 20 | serialized_options=b'\n.com.v2ray.core.transport.internet.headers.srtpP\001Z>github.com/v2fly/v2ray-core/v4/transport/internet/headers/srtp\252\002*V2Ray.Core.Transport.Internet.Headers.Srtp', 21 | create_key=_descriptor._internal_create_key, 22 | serialized_pb=b'\n,transport/internet/headers/srtp/config.proto\x12*v2ray.core.transport.internet.headers.srtp\"w\n\x06\x43onfig\x12\x0f\n\x07version\x18\x01 \x01(\r\x12\x0f\n\x07padding\x18\x02 \x01(\x08\x12\x11\n\textension\x18\x03 \x01(\x08\x12\x12\n\ncsrc_count\x18\x04 \x01(\r\x12\x0e\n\x06marker\x18\x05 \x01(\x08\x12\x14\n\x0cpayload_type\x18\x06 \x01(\rB\x9f\x01\n.com.v2ray.core.transport.internet.headers.srtpP\x01Z>github.com/v2fly/v2ray-core/v4/transport/internet/headers/srtp\xaa\x02*V2Ray.Core.Transport.Internet.Headers.Srtpb\x06proto3' 23 | ) 24 | 25 | 26 | 27 | 28 | _CONFIG = _descriptor.Descriptor( 29 | name='Config', 30 | full_name='v2ray.core.transport.internet.headers.srtp.Config', 31 | filename=None, 32 | file=DESCRIPTOR, 33 | containing_type=None, 34 | create_key=_descriptor._internal_create_key, 35 | fields=[ 36 | _descriptor.FieldDescriptor( 37 | name='version', full_name='v2ray.core.transport.internet.headers.srtp.Config.version', index=0, 38 | number=1, type=13, cpp_type=3, label=1, 39 | has_default_value=False, default_value=0, 40 | message_type=None, enum_type=None, containing_type=None, 41 | is_extension=False, extension_scope=None, 42 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 43 | _descriptor.FieldDescriptor( 44 | name='padding', full_name='v2ray.core.transport.internet.headers.srtp.Config.padding', index=1, 45 | number=2, type=8, cpp_type=7, label=1, 46 | has_default_value=False, default_value=False, 47 | message_type=None, enum_type=None, containing_type=None, 48 | is_extension=False, extension_scope=None, 49 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 50 | _descriptor.FieldDescriptor( 51 | name='extension', full_name='v2ray.core.transport.internet.headers.srtp.Config.extension', index=2, 52 | number=3, type=8, cpp_type=7, label=1, 53 | has_default_value=False, default_value=False, 54 | message_type=None, enum_type=None, containing_type=None, 55 | is_extension=False, extension_scope=None, 56 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 57 | _descriptor.FieldDescriptor( 58 | name='csrc_count', full_name='v2ray.core.transport.internet.headers.srtp.Config.csrc_count', index=3, 59 | number=4, type=13, cpp_type=3, label=1, 60 | has_default_value=False, default_value=0, 61 | message_type=None, enum_type=None, containing_type=None, 62 | is_extension=False, extension_scope=None, 63 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 64 | _descriptor.FieldDescriptor( 65 | name='marker', full_name='v2ray.core.transport.internet.headers.srtp.Config.marker', index=4, 66 | number=5, type=8, cpp_type=7, label=1, 67 | has_default_value=False, default_value=False, 68 | message_type=None, enum_type=None, containing_type=None, 69 | is_extension=False, extension_scope=None, 70 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 71 | _descriptor.FieldDescriptor( 72 | name='payload_type', full_name='v2ray.core.transport.internet.headers.srtp.Config.payload_type', index=5, 73 | number=6, type=13, cpp_type=3, label=1, 74 | has_default_value=False, default_value=0, 75 | message_type=None, enum_type=None, containing_type=None, 76 | is_extension=False, extension_scope=None, 77 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 78 | ], 79 | extensions=[ 80 | ], 81 | nested_types=[], 82 | enum_types=[ 83 | ], 84 | serialized_options=None, 85 | is_extendable=False, 86 | syntax='proto3', 87 | extension_ranges=[], 88 | oneofs=[ 89 | ], 90 | serialized_start=92, 91 | serialized_end=211, 92 | ) 93 | 94 | DESCRIPTOR.message_types_by_name['Config'] = _CONFIG 95 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 96 | 97 | Config = _reflection.GeneratedProtocolMessageType('Config', (_message.Message,), { 98 | 'DESCRIPTOR' : _CONFIG, 99 | '__module__' : 'transport.internet.headers.srtp.config_pb2' 100 | # @@protoc_insertion_point(class_scope:v2ray.core.transport.internet.headers.srtp.Config) 101 | }) 102 | _sym_db.RegisterMessage(Config) 103 | 104 | 105 | DESCRIPTOR._options = None 106 | # @@protoc_insertion_point(module_scope) 107 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/headers/srtp/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/headers/tls/config_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: transport/internet/headers/tls/config.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | 15 | 16 | DESCRIPTOR = _descriptor.FileDescriptor( 17 | name='transport/internet/headers/tls/config.proto', 18 | package='v2ray.core.transport.internet.headers.tls', 19 | syntax='proto3', 20 | serialized_options=b'\n-com.v2ray.core.transport.internet.headers.tlsP\001Z=github.com/v2fly/v2ray-core/v4/transport/internet/headers/tls\252\002)V2Ray.Core.Transport.Internet.Headers.Tls', 21 | create_key=_descriptor._internal_create_key, 22 | serialized_pb=b'\n+transport/internet/headers/tls/config.proto\x12)v2ray.core.transport.internet.headers.tls\"\x0e\n\x0cPacketConfigB\x9c\x01\n-com.v2ray.core.transport.internet.headers.tlsP\x01Z=github.com/v2fly/v2ray-core/v4/transport/internet/headers/tls\xaa\x02)V2Ray.Core.Transport.Internet.Headers.Tlsb\x06proto3' 23 | ) 24 | 25 | 26 | 27 | 28 | _PACKETCONFIG = _descriptor.Descriptor( 29 | name='PacketConfig', 30 | full_name='v2ray.core.transport.internet.headers.tls.PacketConfig', 31 | filename=None, 32 | file=DESCRIPTOR, 33 | containing_type=None, 34 | create_key=_descriptor._internal_create_key, 35 | fields=[ 36 | ], 37 | extensions=[ 38 | ], 39 | nested_types=[], 40 | enum_types=[ 41 | ], 42 | serialized_options=None, 43 | is_extendable=False, 44 | syntax='proto3', 45 | extension_ranges=[], 46 | oneofs=[ 47 | ], 48 | serialized_start=90, 49 | serialized_end=104, 50 | ) 51 | 52 | DESCRIPTOR.message_types_by_name['PacketConfig'] = _PACKETCONFIG 53 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 54 | 55 | PacketConfig = _reflection.GeneratedProtocolMessageType('PacketConfig', (_message.Message,), { 56 | 'DESCRIPTOR' : _PACKETCONFIG, 57 | '__module__' : 'transport.internet.headers.tls.config_pb2' 58 | # @@protoc_insertion_point(class_scope:v2ray.core.transport.internet.headers.tls.PacketConfig) 59 | }) 60 | _sym_db.RegisterMessage(PacketConfig) 61 | 62 | 63 | DESCRIPTOR._options = None 64 | # @@protoc_insertion_point(module_scope) 65 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/headers/tls/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/headers/utp/config_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: transport/internet/headers/utp/config.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | 15 | 16 | DESCRIPTOR = _descriptor.FileDescriptor( 17 | name='transport/internet/headers/utp/config.proto', 18 | package='v2ray.core.transport.internet.headers.utp', 19 | syntax='proto3', 20 | serialized_options=b'\n-com.v2ray.core.transport.internet.headers.utpP\001Z=github.com/v2fly/v2ray-core/v4/transport/internet/headers/utp\252\002)V2Ray.Core.Transport.Internet.Headers.Utp', 21 | create_key=_descriptor._internal_create_key, 22 | serialized_pb=b'\n+transport/internet/headers/utp/config.proto\x12)v2ray.core.transport.internet.headers.utp\"\x19\n\x06\x43onfig\x12\x0f\n\x07version\x18\x01 \x01(\rB\x9c\x01\n-com.v2ray.core.transport.internet.headers.utpP\x01Z=github.com/v2fly/v2ray-core/v4/transport/internet/headers/utp\xaa\x02)V2Ray.Core.Transport.Internet.Headers.Utpb\x06proto3' 23 | ) 24 | 25 | 26 | 27 | 28 | _CONFIG = _descriptor.Descriptor( 29 | name='Config', 30 | full_name='v2ray.core.transport.internet.headers.utp.Config', 31 | filename=None, 32 | file=DESCRIPTOR, 33 | containing_type=None, 34 | create_key=_descriptor._internal_create_key, 35 | fields=[ 36 | _descriptor.FieldDescriptor( 37 | name='version', full_name='v2ray.core.transport.internet.headers.utp.Config.version', index=0, 38 | number=1, type=13, cpp_type=3, label=1, 39 | has_default_value=False, default_value=0, 40 | message_type=None, enum_type=None, containing_type=None, 41 | is_extension=False, extension_scope=None, 42 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 43 | ], 44 | extensions=[ 45 | ], 46 | nested_types=[], 47 | enum_types=[ 48 | ], 49 | serialized_options=None, 50 | is_extendable=False, 51 | syntax='proto3', 52 | extension_ranges=[], 53 | oneofs=[ 54 | ], 55 | serialized_start=90, 56 | serialized_end=115, 57 | ) 58 | 59 | DESCRIPTOR.message_types_by_name['Config'] = _CONFIG 60 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 61 | 62 | Config = _reflection.GeneratedProtocolMessageType('Config', (_message.Message,), { 63 | 'DESCRIPTOR' : _CONFIG, 64 | '__module__' : 'transport.internet.headers.utp.config_pb2' 65 | # @@protoc_insertion_point(class_scope:v2ray.core.transport.internet.headers.utp.Config) 66 | }) 67 | _sym_db.RegisterMessage(Config) 68 | 69 | 70 | DESCRIPTOR._options = None 71 | # @@protoc_insertion_point(module_scope) 72 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/headers/utp/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/headers/wechat/config_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: transport/internet/headers/wechat/config.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | 15 | 16 | DESCRIPTOR = _descriptor.FileDescriptor( 17 | name='transport/internet/headers/wechat/config.proto', 18 | package='v2ray.core.transport.internet.headers.wechat', 19 | syntax='proto3', 20 | serialized_options=b'\n0com.v2ray.core.transport.internet.headers.wechatP\001Z@github.com/v2fly/v2ray-core/v4/transport/internet/headers/wechat\252\002,V2Ray.Core.Transport.Internet.Headers.Wechat', 21 | create_key=_descriptor._internal_create_key, 22 | serialized_pb=b'\n.transport/internet/headers/wechat/config.proto\x12,v2ray.core.transport.internet.headers.wechat\"\r\n\x0bVideoConfigB\xa5\x01\n0com.v2ray.core.transport.internet.headers.wechatP\x01Z@github.com/v2fly/v2ray-core/v4/transport/internet/headers/wechat\xaa\x02,V2Ray.Core.Transport.Internet.Headers.Wechatb\x06proto3' 23 | ) 24 | 25 | 26 | 27 | 28 | _VIDEOCONFIG = _descriptor.Descriptor( 29 | name='VideoConfig', 30 | full_name='v2ray.core.transport.internet.headers.wechat.VideoConfig', 31 | filename=None, 32 | file=DESCRIPTOR, 33 | containing_type=None, 34 | create_key=_descriptor._internal_create_key, 35 | fields=[ 36 | ], 37 | extensions=[ 38 | ], 39 | nested_types=[], 40 | enum_types=[ 41 | ], 42 | serialized_options=None, 43 | is_extendable=False, 44 | syntax='proto3', 45 | extension_ranges=[], 46 | oneofs=[ 47 | ], 48 | serialized_start=96, 49 | serialized_end=109, 50 | ) 51 | 52 | DESCRIPTOR.message_types_by_name['VideoConfig'] = _VIDEOCONFIG 53 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 54 | 55 | VideoConfig = _reflection.GeneratedProtocolMessageType('VideoConfig', (_message.Message,), { 56 | 'DESCRIPTOR' : _VIDEOCONFIG, 57 | '__module__' : 'transport.internet.headers.wechat.config_pb2' 58 | # @@protoc_insertion_point(class_scope:v2ray.core.transport.internet.headers.wechat.VideoConfig) 59 | }) 60 | _sym_db.RegisterMessage(VideoConfig) 61 | 62 | 63 | DESCRIPTOR._options = None 64 | # @@protoc_insertion_point(module_scope) 65 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/headers/wechat/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/headers/wireguard/config_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: transport/internet/headers/wireguard/config.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | 15 | 16 | DESCRIPTOR = _descriptor.FileDescriptor( 17 | name='transport/internet/headers/wireguard/config.proto', 18 | package='v2ray.core.transport.internet.headers.wireguard', 19 | syntax='proto3', 20 | serialized_options=b'\n3com.v2ray.core.transport.internet.headers.wireguardP\001ZCgithub.com/v2fly/v2ray-core/v4/transport/internet/headers/wireguard\252\002/V2Ray.Core.Transport.Internet.Headers.Wireguard', 21 | create_key=_descriptor._internal_create_key, 22 | serialized_pb=b'\n1transport/internet/headers/wireguard/config.proto\x12/v2ray.core.transport.internet.headers.wireguard\"\x11\n\x0fWireguardConfigB\xae\x01\n3com.v2ray.core.transport.internet.headers.wireguardP\x01ZCgithub.com/v2fly/v2ray-core/v4/transport/internet/headers/wireguard\xaa\x02/V2Ray.Core.Transport.Internet.Headers.Wireguardb\x06proto3' 23 | ) 24 | 25 | 26 | 27 | 28 | _WIREGUARDCONFIG = _descriptor.Descriptor( 29 | name='WireguardConfig', 30 | full_name='v2ray.core.transport.internet.headers.wireguard.WireguardConfig', 31 | filename=None, 32 | file=DESCRIPTOR, 33 | containing_type=None, 34 | create_key=_descriptor._internal_create_key, 35 | fields=[ 36 | ], 37 | extensions=[ 38 | ], 39 | nested_types=[], 40 | enum_types=[ 41 | ], 42 | serialized_options=None, 43 | is_extendable=False, 44 | syntax='proto3', 45 | extension_ranges=[], 46 | oneofs=[ 47 | ], 48 | serialized_start=102, 49 | serialized_end=119, 50 | ) 51 | 52 | DESCRIPTOR.message_types_by_name['WireguardConfig'] = _WIREGUARDCONFIG 53 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 54 | 55 | WireguardConfig = _reflection.GeneratedProtocolMessageType('WireguardConfig', (_message.Message,), { 56 | 'DESCRIPTOR' : _WIREGUARDCONFIG, 57 | '__module__' : 'transport.internet.headers.wireguard.config_pb2' 58 | # @@protoc_insertion_point(class_scope:v2ray.core.transport.internet.headers.wireguard.WireguardConfig) 59 | }) 60 | _sym_db.RegisterMessage(WireguardConfig) 61 | 62 | 63 | DESCRIPTOR._options = None 64 | # @@protoc_insertion_point(module_scope) 65 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/headers/wireguard/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/http/config_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: transport/internet/http/config.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | 15 | 16 | DESCRIPTOR = _descriptor.FileDescriptor( 17 | name='transport/internet/http/config.proto', 18 | package='v2ray.core.transport.internet.http', 19 | syntax='proto3', 20 | serialized_options=b'\n&com.v2ray.core.transport.internet.httpP\001Z6github.com/v2fly/v2ray-core/v4/transport/internet/http\252\002\"V2Ray.Core.Transport.Internet.Http', 21 | create_key=_descriptor._internal_create_key, 22 | serialized_pb=b'\n$transport/internet/http/config.proto\x12\"v2ray.core.transport.internet.http\"$\n\x06\x43onfig\x12\x0c\n\x04host\x18\x01 \x03(\t\x12\x0c\n\x04path\x18\x02 \x01(\tB\x87\x01\n&com.v2ray.core.transport.internet.httpP\x01Z6github.com/v2fly/v2ray-core/v4/transport/internet/http\xaa\x02\"V2Ray.Core.Transport.Internet.Httpb\x06proto3' 23 | ) 24 | 25 | 26 | 27 | 28 | _CONFIG = _descriptor.Descriptor( 29 | name='Config', 30 | full_name='v2ray.core.transport.internet.http.Config', 31 | filename=None, 32 | file=DESCRIPTOR, 33 | containing_type=None, 34 | create_key=_descriptor._internal_create_key, 35 | fields=[ 36 | _descriptor.FieldDescriptor( 37 | name='host', full_name='v2ray.core.transport.internet.http.Config.host', index=0, 38 | number=1, type=9, cpp_type=9, label=3, 39 | has_default_value=False, default_value=[], 40 | message_type=None, enum_type=None, containing_type=None, 41 | is_extension=False, extension_scope=None, 42 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 43 | _descriptor.FieldDescriptor( 44 | name='path', full_name='v2ray.core.transport.internet.http.Config.path', index=1, 45 | number=2, type=9, cpp_type=9, label=1, 46 | has_default_value=False, default_value=b"".decode('utf-8'), 47 | message_type=None, enum_type=None, containing_type=None, 48 | is_extension=False, extension_scope=None, 49 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 50 | ], 51 | extensions=[ 52 | ], 53 | nested_types=[], 54 | enum_types=[ 55 | ], 56 | serialized_options=None, 57 | is_extendable=False, 58 | syntax='proto3', 59 | extension_ranges=[], 60 | oneofs=[ 61 | ], 62 | serialized_start=76, 63 | serialized_end=112, 64 | ) 65 | 66 | DESCRIPTOR.message_types_by_name['Config'] = _CONFIG 67 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 68 | 69 | Config = _reflection.GeneratedProtocolMessageType('Config', (_message.Message,), { 70 | 'DESCRIPTOR' : _CONFIG, 71 | '__module__' : 'transport.internet.http.config_pb2' 72 | # @@protoc_insertion_point(class_scope:v2ray.core.transport.internet.http.Config) 73 | }) 74 | _sym_db.RegisterMessage(Config) 75 | 76 | 77 | DESCRIPTOR._options = None 78 | # @@protoc_insertion_point(module_scope) 79 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/http/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/kcp/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/quic/config_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: transport/internet/quic/config.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | from common.serial import typed_message_pb2 as common_dot_serial_dot_typed__message__pb2 15 | from common.protocol import headers_pb2 as common_dot_protocol_dot_headers__pb2 16 | 17 | 18 | DESCRIPTOR = _descriptor.FileDescriptor( 19 | name='transport/internet/quic/config.proto', 20 | package='v2ray.core.transport.internet.quic', 21 | syntax='proto3', 22 | serialized_options=b'\n&com.v2ray.core.transport.internet.quicP\001Z6github.com/v2fly/v2ray-core/v4/transport/internet/quic\252\002\"V2Ray.Core.Transport.Internet.Quic', 23 | create_key=_descriptor._internal_create_key, 24 | serialized_pb=b'\n$transport/internet/quic/config.proto\x12\"v2ray.core.transport.internet.quic\x1a!common/serial/typed_message.proto\x1a\x1d\x63ommon/protocol/headers.proto\"\x8b\x01\n\x06\x43onfig\x12\x0b\n\x03key\x18\x01 \x01(\t\x12<\n\x08security\x18\x02 \x01(\x0b\x32*.v2ray.core.common.protocol.SecurityConfig\x12\x36\n\x06header\x18\x03 \x01(\x0b\x32&.v2ray.core.common.serial.TypedMessageB\x87\x01\n&com.v2ray.core.transport.internet.quicP\x01Z6github.com/v2fly/v2ray-core/v4/transport/internet/quic\xaa\x02\"V2Ray.Core.Transport.Internet.Quicb\x06proto3' 25 | , 26 | dependencies=[common_dot_serial_dot_typed__message__pb2.DESCRIPTOR,common_dot_protocol_dot_headers__pb2.DESCRIPTOR,]) 27 | 28 | 29 | 30 | 31 | _CONFIG = _descriptor.Descriptor( 32 | name='Config', 33 | full_name='v2ray.core.transport.internet.quic.Config', 34 | filename=None, 35 | file=DESCRIPTOR, 36 | containing_type=None, 37 | create_key=_descriptor._internal_create_key, 38 | fields=[ 39 | _descriptor.FieldDescriptor( 40 | name='key', full_name='v2ray.core.transport.internet.quic.Config.key', index=0, 41 | number=1, type=9, cpp_type=9, label=1, 42 | has_default_value=False, default_value=b"".decode('utf-8'), 43 | message_type=None, enum_type=None, containing_type=None, 44 | is_extension=False, extension_scope=None, 45 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 46 | _descriptor.FieldDescriptor( 47 | name='security', full_name='v2ray.core.transport.internet.quic.Config.security', index=1, 48 | number=2, type=11, cpp_type=10, label=1, 49 | has_default_value=False, default_value=None, 50 | message_type=None, enum_type=None, containing_type=None, 51 | is_extension=False, extension_scope=None, 52 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 53 | _descriptor.FieldDescriptor( 54 | name='header', full_name='v2ray.core.transport.internet.quic.Config.header', index=2, 55 | number=3, type=11, cpp_type=10, label=1, 56 | has_default_value=False, default_value=None, 57 | message_type=None, enum_type=None, containing_type=None, 58 | is_extension=False, extension_scope=None, 59 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 60 | ], 61 | extensions=[ 62 | ], 63 | nested_types=[], 64 | enum_types=[ 65 | ], 66 | serialized_options=None, 67 | is_extendable=False, 68 | syntax='proto3', 69 | extension_ranges=[], 70 | oneofs=[ 71 | ], 72 | serialized_start=143, 73 | serialized_end=282, 74 | ) 75 | 76 | _CONFIG.fields_by_name['security'].message_type = common_dot_protocol_dot_headers__pb2._SECURITYCONFIG 77 | _CONFIG.fields_by_name['header'].message_type = common_dot_serial_dot_typed__message__pb2._TYPEDMESSAGE 78 | DESCRIPTOR.message_types_by_name['Config'] = _CONFIG 79 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 80 | 81 | Config = _reflection.GeneratedProtocolMessageType('Config', (_message.Message,), { 82 | 'DESCRIPTOR' : _CONFIG, 83 | '__module__' : 'transport.internet.quic.config_pb2' 84 | # @@protoc_insertion_point(class_scope:v2ray.core.transport.internet.quic.Config) 85 | }) 86 | _sym_db.RegisterMessage(Config) 87 | 88 | 89 | DESCRIPTOR._options = None 90 | # @@protoc_insertion_point(module_scope) 91 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/quic/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/tcp/config_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: transport/internet/tcp/config.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | from common.serial import typed_message_pb2 as common_dot_serial_dot_typed__message__pb2 15 | 16 | 17 | DESCRIPTOR = _descriptor.FileDescriptor( 18 | name='transport/internet/tcp/config.proto', 19 | package='v2ray.core.transport.internet.tcp', 20 | syntax='proto3', 21 | serialized_options=b'\n%com.v2ray.core.transport.internet.tcpP\001Z5github.com/v2fly/v2ray-core/v4/transport/internet/tcp\252\002!V2Ray.Core.Transport.Internet.Tcp', 22 | create_key=_descriptor._internal_create_key, 23 | serialized_pb=b'\n#transport/internet/tcp/config.proto\x12!v2ray.core.transport.internet.tcp\x1a!common/serial/typed_message.proto\"n\n\x06\x43onfig\x12?\n\x0fheader_settings\x18\x02 \x01(\x0b\x32&.v2ray.core.common.serial.TypedMessage\x12\x1d\n\x15\x61\x63\x63\x65pt_proxy_protocol\x18\x03 \x01(\x08J\x04\x08\x01\x10\x02\x42\x84\x01\n%com.v2ray.core.transport.internet.tcpP\x01Z5github.com/v2fly/v2ray-core/v4/transport/internet/tcp\xaa\x02!V2Ray.Core.Transport.Internet.Tcpb\x06proto3' 24 | , 25 | dependencies=[common_dot_serial_dot_typed__message__pb2.DESCRIPTOR,]) 26 | 27 | 28 | 29 | 30 | _CONFIG = _descriptor.Descriptor( 31 | name='Config', 32 | full_name='v2ray.core.transport.internet.tcp.Config', 33 | filename=None, 34 | file=DESCRIPTOR, 35 | containing_type=None, 36 | create_key=_descriptor._internal_create_key, 37 | fields=[ 38 | _descriptor.FieldDescriptor( 39 | name='header_settings', full_name='v2ray.core.transport.internet.tcp.Config.header_settings', index=0, 40 | number=2, type=11, cpp_type=10, label=1, 41 | has_default_value=False, default_value=None, 42 | message_type=None, enum_type=None, containing_type=None, 43 | is_extension=False, extension_scope=None, 44 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 45 | _descriptor.FieldDescriptor( 46 | name='accept_proxy_protocol', full_name='v2ray.core.transport.internet.tcp.Config.accept_proxy_protocol', index=1, 47 | number=3, type=8, cpp_type=7, label=1, 48 | has_default_value=False, default_value=False, 49 | message_type=None, enum_type=None, containing_type=None, 50 | is_extension=False, extension_scope=None, 51 | serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), 52 | ], 53 | extensions=[ 54 | ], 55 | nested_types=[], 56 | enum_types=[ 57 | ], 58 | serialized_options=None, 59 | is_extendable=False, 60 | syntax='proto3', 61 | extension_ranges=[], 62 | oneofs=[ 63 | ], 64 | serialized_start=109, 65 | serialized_end=219, 66 | ) 67 | 68 | _CONFIG.fields_by_name['header_settings'].message_type = common_dot_serial_dot_typed__message__pb2._TYPEDMESSAGE 69 | DESCRIPTOR.message_types_by_name['Config'] = _CONFIG 70 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 71 | 72 | Config = _reflection.GeneratedProtocolMessageType('Config', (_message.Message,), { 73 | 'DESCRIPTOR' : _CONFIG, 74 | '__module__' : 'transport.internet.tcp.config_pb2' 75 | # @@protoc_insertion_point(class_scope:v2ray.core.transport.internet.tcp.Config) 76 | }) 77 | _sym_db.RegisterMessage(Config) 78 | 79 | 80 | DESCRIPTOR._options = None 81 | # @@protoc_insertion_point(module_scope) 82 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/tcp/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/tls/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/udp/config_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # source: transport/internet/udp/config.proto 4 | """Generated protocol buffer code.""" 5 | from google.protobuf import descriptor as _descriptor 6 | from google.protobuf import message as _message 7 | from google.protobuf import reflection as _reflection 8 | from google.protobuf import symbol_database as _symbol_database 9 | # @@protoc_insertion_point(imports) 10 | 11 | _sym_db = _symbol_database.Default() 12 | 13 | 14 | 15 | 16 | DESCRIPTOR = _descriptor.FileDescriptor( 17 | name='transport/internet/udp/config.proto', 18 | package='v2ray.core.transport.internet.udp', 19 | syntax='proto3', 20 | serialized_options=b'\n%com.v2ray.core.transport.internet.udpP\001Z5github.com/v2fly/v2ray-core/v4/transport/internet/udp\252\002!V2Ray.Core.Transport.Internet.Udp', 21 | create_key=_descriptor._internal_create_key, 22 | serialized_pb=b'\n#transport/internet/udp/config.proto\x12!v2ray.core.transport.internet.udp\"\x08\n\x06\x43onfigB\x84\x01\n%com.v2ray.core.transport.internet.udpP\x01Z5github.com/v2fly/v2ray-core/v4/transport/internet/udp\xaa\x02!V2Ray.Core.Transport.Internet.Udpb\x06proto3' 23 | ) 24 | 25 | 26 | 27 | 28 | _CONFIG = _descriptor.Descriptor( 29 | name='Config', 30 | full_name='v2ray.core.transport.internet.udp.Config', 31 | filename=None, 32 | file=DESCRIPTOR, 33 | containing_type=None, 34 | create_key=_descriptor._internal_create_key, 35 | fields=[ 36 | ], 37 | extensions=[ 38 | ], 39 | nested_types=[], 40 | enum_types=[ 41 | ], 42 | serialized_options=None, 43 | is_extendable=False, 44 | syntax='proto3', 45 | extension_ranges=[], 46 | oneofs=[ 47 | ], 48 | serialized_start=74, 49 | serialized_end=82, 50 | ) 51 | 52 | DESCRIPTOR.message_types_by_name['Config'] = _CONFIG 53 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 54 | 55 | Config = _reflection.GeneratedProtocolMessageType('Config', (_message.Message,), { 56 | 'DESCRIPTOR' : _CONFIG, 57 | '__module__' : 'transport.internet.udp.config_pb2' 58 | # @@protoc_insertion_point(class_scope:v2ray.core.transport.internet.udp.Config) 59 | }) 60 | _sym_db.RegisterMessage(Config) 61 | 62 | 63 | DESCRIPTOR._options = None 64 | # @@protoc_insertion_point(module_scope) 65 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/udp/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/proto/transport/internet/websocket/config_pb2_grpc.py: -------------------------------------------------------------------------------- 1 | # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! 2 | """Client and server classes corresponding to protobuf-defined services.""" 3 | import grpc 4 | 5 | -------------------------------------------------------------------------------- /v2api/types/__init__.py: -------------------------------------------------------------------------------- 1 | from . import common, vmess 2 | 3 | 4 | __all__ = [ 5 | 'common', 6 | 'vmess' 7 | ] 8 | -------------------------------------------------------------------------------- /v2api/types/common.py: -------------------------------------------------------------------------------- 1 | class Inbound(object): 2 | message = ... 3 | 4 | 5 | class Account(object): 6 | message = ... 7 | -------------------------------------------------------------------------------- /v2api/types/vmess.py: -------------------------------------------------------------------------------- 1 | from uuid import UUID 2 | import typing 3 | 4 | from ..utils import to_typed_message 5 | 6 | from ..proto.proxy.vmess.inbound import config_pb2 as vmess_inbound_config_pb2 7 | from ..proto.proxy.vmess import account_pb2 8 | from ..proto.common.protocol import user_pb2 9 | 10 | from .common import Account, Inbound 11 | 12 | 13 | class VMessInbound(Inbound): 14 | def __init__(self, users: typing.List[dict], secure_encryption_only: bool): 15 | self.message = to_typed_message( 16 | vmess_inbound_config_pb2.Config( 17 | user=[ 18 | user_pb2.User( 19 | email=u['email'], 20 | level=u['level'], 21 | account=to_typed_message(account_pb2.Account( 22 | id=u['user_id'], 23 | alter_id=u['alter_id'] 24 | )) 25 | ) for u in users 26 | ], 27 | secure_encryption_only=secure_encryption_only 28 | ) 29 | ) 30 | 31 | 32 | class VMessAccount(Account): 33 | def __init__(self, user_id: typing.Union[UUID, str], alter_id: int = 0): 34 | if isinstance(user_id, UUID): 35 | user_id = str(user_id) 36 | 37 | self.message = to_typed_message(account_pb2.Account( 38 | id=user_id, 39 | alter_id=alter_id 40 | )) 41 | -------------------------------------------------------------------------------- /v2api/utils.py: -------------------------------------------------------------------------------- 1 | from .proto.common.serial import typed_message_pb2 2 | 3 | 4 | def to_typed_message(message): 5 | return typed_message_pb2.TypedMessage( 6 | type=message.DESCRIPTOR.full_name, 7 | value=message.SerializeToString() 8 | ) 9 | 10 | 11 | def ip2bytes(ip: str): 12 | return bytes([int(i) for i in ip.split('.')]) 13 | --------------------------------------------------------------------------------