Metadata-Version: 2.4
Name: xray-helper
Version: 0.2.3
Summary: Helper package to xray_conf_models
Author: Polyfusion
Maintainer: Polyfusion
License: GPLv2
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Operating System :: OS Independent
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: annotated-types==0.7.0
Requires-Dist: cffi==2.0.0
Requires-Dist: cryptography==46.0.6
Requires-Dist: protobuf==7.34.1
Requires-Dist: pycparser==3.0
Requires-Dist: pydantic==2.12.5
Requires-Dist: pydantic_core==2.41.5
Requires-Dist: typing-inspection==0.4.2
Requires-Dist: typing_extensions==4.15.0
Requires-Dist: xray-conf-models==0.1.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: black>=22.0; extra == "dev"
Requires-Dist: mypy>=1.0; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"
Provides-Extra: docs
Requires-Dist: sphinx>=6.0; extra == "docs"
Requires-Dist: sphinx-rtd-theme>=1.0; extra == "docs"

# Установка
`pip install xray-helper`

Всё, что реально нужно находится в `templates`
- `base`: Бутстрап-конфиг с настройками по умолчанию. Можно ознакомиться так: `print(base.to_native_json(indent=2))`. По умолчанию содержит:
    - лог-объект на warning
    - policy-объект
    - socks-инбаунд для тестов, который выходит напрямую
    - маршрутизация: transfer напрямую, приватные айпишки в блок
- `Transport`: класс, который призван помочь автосгенерить некоторые виды транспорта. На данный момент поддерживается tcp, xhttp, kcp, а из шифрования Reality или None
    - обязательным параметром является `seed`: об него генерится всё, что связано с криптографией, а также shortIds. Может быть произвольной строкой. 
    - с другими параметрами можно ознакомиться в `__init__ ` класса
- `Rule`: класс, который призван помочь добавить правила маршрутизации. Есть два взаимоисключающих аргумента:
    - `out`: у всех правил должен быть аутбаунд, куда выходит трафик. Через `out` можно задать его явно
    - `lookup`: поиск аутбаунда по тегу. Например, вот так: `Rule(lookup=["d-transfer", base.outbounds])` — ищем в outbounds объекта base аутбаунд с тегом "d-transfer"
- Также полезно будет ознакомиться с файлом `demo.py`
