Metadata-Version: 2.4
Name: ixi
Version: 1.0.102
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Dist: certifi>=2024.0.0
Requires-Dist: packaging>=24.0
Summary: Encrypt Python scripts and execute decrypted code.
Keywords: encryption,script-protection
Author: 3iXi
License-Expression: LicenseRef-Proprietary
Requires-Python: >=3.10
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM

# ixi

`ixi` 用于加密 Python 脚本，并生成可执行的加密启动脚本。运行时只在内存中解密并执行，不落盘明文。

## 安装

```bash
pip install --only-binary=:all: ixi
```

## 命令

- `ixi -v`：输出当前版本号
- `ixi -e script.py`：加密脚本并输出 `script_<timestamp>.py`

## 分发模型

- 仅发布 `abi3` wheel（`cp310-abi3`），覆盖 Windows / Linux / macOS。
- Linux 同时覆盖 `manylinux`(glibc) 与 `musllinux`(musl)。
- 目标矩阵：`win32`、`win_amd64`、`manylinux_x86_64`、`manylinux_aarch64`、`musllinux_x86_64`、`musllinux_aarch64`、`macosx_x86_64`、`macosx_arm64`。
- 不发布 `sdist`。
- 敏感逻辑统一由 Rust 扩展模块 `ixi._core` 提供。
- 若平台不在已发布 wheel 标签内，`pip` 安装会失败。

## 运行时行为

- 启动脚本会先尝试 `import ixi`。
- 若导入失败，自动执行 `python -m pip install --only-binary=:all: ixi`，依次尝试默认源、USTC 镜像与官方 PyPI simple 源。
- 解密前强制请求 USTC：
  - `GET https://mirrors.ustc.edu.cn/pypi/simple/ixi/`
  - `Accept: application/vnd.pypi.simple.v1+json`
  - TLS 信任根固定为 `certifi`（Mozilla CA Bundle），不使用系统证书库。
  - 运行时额外要求对端证书签发组织为 `Let's Encrypt`。
- 本地版本不是最新版时，打印告警并终止执行。
- 若接口返回 404，直接终止执行。
- 自动安装失败时会输出 `machine/libc/python` 诊断信息，便于定位 wheel 标签不匹配问题（例如 Alpine/musl 环境缺少 `musllinux` 产物）。

