Metadata-Version: 2.4
Name: nubwen-rust-shell
Version: 0.3.0
Summary: Verified Windows x64 Rust Shell protection CLI for source-integrated CI builds
License-Expression: LicenseRef-Proprietary
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.11.9
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: THIRD_PARTY_NOTICES.txt
Dynamic: license-file

# Nubwen Rust Shell

Windows x64 command-line tools for source-integrated Rust/C/C++ protection builds.
The wheel contains the verified native CLI, static runtime, C header and CMake
helper. It does not run an installer or download executables during pip install.

This is a development release. Commercial acceptance, Authenticode signing and
VMProtect/AI-resistance equivalence are not established. Existing licensing and
protection configuration are required; this is not an arbitrary EXE repacker.

```powershell
# Install from public PyPI; no private registry credentials are required.
python -m pip install --no-deps nubwen-rust-shell==0.3.0
rust-shell --version
rust-shell-package --home
```

Run in an x64 Visual Studio developer environment with the Windows SDK,
PowerShell 7 and Rust stable (minimum 1.97.1). Setup matches LLVM automatically:

```powershell
# Explicit setup verifies the official LLVM archive digest before extraction.
$env:RUSTUP_TOOLCHAIN = 'stable'
rust-shell-package --setup-toolchain --install-rust
rust-shell doctor
rust-shell cargo-build --config rust-shell.toml --manifest-path Cargo.toml --bin app --static-crt
```

An existing LLVM cache can be selected through `RSH_LLVM_BIN` instead. The package
uses the native CLI's existing version checks and leaves the caller's working
directory and arguments intact. Every command verifies the installed payload's
hashes before execution and returns the native program's exit code.

Rust applications must already integrate the matching Rust SDK and protection
markers. The Rust SDK/VM source workspace is deliberately not distributed in
this wheel; existing product repositories can retain their authorized SDK copy.
`rust-shell-package` prints JSON paths for the native CLI, server, static runtime,
C header, CMake helper and original release manifest. CMake and long-running
server processes should use those native executable paths directly.

For a private registry, use only its `--index-url`, not `--extra-index-url`, and
install a fixed version with `--require-hashes`. Supply authentication through
the runner's protected pip/netrc/keyring configuration, never credentials in a
committed URL. Private keys, content keys, licensing caches and build reports
must not be included in release artifacts.

Version 0.2.0 requires a separate integrity signing key, an embedded
`integrity_public_key`, signed `.rsh-integrity.json` sidecars beside final EXE/DLLs,
and host checkpoints before publishing results or committing side effects.
CMake targets must call `rust_shell_finalize`; see the included `docs/integrity.md`.
Existing products must rebuild with the matching SDK. Offline licensing is retained.

Synchronous whole-image checks have substantial overhead for hot protected functions.
The local synthetic candidate measured about 15.6 ms p50 for one protected call per
request and 512.6 ms for 100 calls with one client. This is not a product performance
promise. Simultaneous wrapper/checkpoint patches and changes restored between
checkpoints remain outside the demonstrated refusal cases.

Version 0.3.0 follows Rust stable and automatically pairs LLVM 22/23. New LLVM major versions require adaptation and acceptance before use; unknown generations fail closed. Use the matching SDK/runtime and rebuild protected products with fresh build IDs. Version 0.2.0 retains its Rust 1.97.1 / LLVM 22.1.6 toolchain.

The earlier synthetic integrity-performance numbers were measured before the 1.99.1/23.1.1 upgrade; they are not performance acceptance evidence for 0.3.0.
