Metadata-Version: 2.4
Name: ntoseye
Version: 0.36.0
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Software Development :: Debuggers
Classifier: Topic :: Security
Summary: Python SDK for the ntoseye Windows kernel debugger on Linux and macOS
Keywords: debugger,windows,kernel,kvm,qemu,introspection,windbg
Author: dmaivel
License: MIT
Requires-Python: >=3.9
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Homepage, https://github.com/dmaivel/ntoseye
Project-URL: Issues, https://github.com/dmaivel/ntoseye/issues
Project-URL: Repository, https://github.com/dmaivel/ntoseye

# ntoseye (Python SDK)

Drive the [ntoseye](https://github.com/dmaivel/ntoseye) Windows kernel debugger
from Python.

## Install

```sh
pip install ntoseye
```

Or build from source into a virtualenv with maturin:

```sh
cd python
python3 -m venv .venv
source .venv/bin/activate
maturin develop --release
```

Or build a wheel and install it:

```sh
cd python
maturin build --release --out dist
pip install dist/ntoseye-*.whl
```

## Releasing portable wheels

Release wheels are built by `.github/workflows/release.yml` with `PyO3/maturin-action` on native GitHub runners:

- Linux x86-64 and ARM64 build on `ubuntu-22.04` and `ubuntu-24.04-arm` inside the `quay.io/pypa/manylinux_2_28_*` images, producing `manylinux_2_28` wheels.
- Apple Silicon uses the native ARM64 `macos-14` runner.

Each wheel then passes `twine check` and an import test in a clean virtual environment before upload.

To reproduce a Linux release wheel locally (from the repository root, Docker required):

```sh
docker run --rm -e CARGO_TARGET_DIR=/tmp/target -e HOST_IDS="$(id -u):$(id -g)" \
  -v "$PWD":/io -w /io/python quay.io/pypa/manylinux_2_28_$(uname -m) bash -c '
  dnf install -y clang &&
  curl -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal &&
  source ~/.cargo/env &&
  /opt/python/cp312-cp312/bin/pip install maturin &&
  /opt/python/cp312-cp312/bin/maturin build --release --out dist --compatibility manylinux_2_28 &&
  chown -R "$HOST_IDS" dist'
```
