Metadata-Version: 2.4
Name: py-ntfs-quick-index
Version: 0.1.2
Summary: Fast NTFS indexing and search for Windows amd64.
Project-URL: Homepage, https://github.com/GGN-2015/py-ntfs-quick-index
Author: py-ntfs-quick-index contributors
License-Expression: MIT
License-File: LICENSE
Keywords: index,ntfs,sqlite,usn,windows
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Environment :: Win32 (MS Windows)
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Desktop Environment :: File Managers
Classifier: Topic :: System :: Filesystems
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Requires-Dist: py-admin-launch>=0.1.3
Requires-Dist: tqdm>=4.66
Description-Content-Type: text/markdown

# py-ntfs-quick-index

Fast Windows NTFS indexing and search for amd64 machines.

`pnqi` uses NTFS MFT enumeration for initial indexing and the NTFS USN Journal
for incremental refreshes. Indexes are stored as SQLite files named
`pnqi.index.sqlite` in the volume root, for example `C:\pnqi.index.sqlite`.

## Requirements

- Windows only
- amd64 / x86_64 CPU only
- Administrator privileges
- NTFS volumes only
- Python 3.10+

The program elevates only at startup through
[`py-admin-launch`](https://pypi.org/project/py-admin-launch/). Internal library
calls require the already-elevated process and do not trigger additional UAC
prompts.

## Install

Install the latest release from PyPI:

```powershell
python -m pip install py-ntfs-quick-index
```

Upgrade an existing install:

```powershell
python -m pip install --upgrade py-ntfs-quick-index
```

For local development from a checkout:

```powershell
python -m pip install -e .
```

## CLI

Create or replace an index for a folder:

```powershell
pnqi index C:\
```

Search with `*` wildcards. `*` matches any string, including `\`.

```powershell
pnqi search "C:\Users\*\Desktop\*.pdf"
```

Show descendants sorted by recursive size:

```powershell
pnqi sizes C:\Users --limit 100
```

Show only direct children:

```powershell
pnqi sizes C:\Users --direct
```

CLI progress bars use `tqdm`, and `Ctrl+C` cancels cleanly.

## GUI

```powershell
pnqi-gui
```

The GUI supports creating indexes, searching wildcard paths, browsing indexed
folders, and viewing recursive sizes. During long operations the interface is
locked except for Cancel. Long tasks run in a worker process so NTFS MFT scans
do not stall the Tk event loop. Cancelled index builds write only to a temporary
SQLite file and do not replace the existing index.

## Incremental Updates

On startup, and before searches or browsing, `pnqi` checks existing
`pnqi.index.sqlite` files and replays USN Journal changes into SQLite. If the
USN Journal was recreated or no longer contains the required history, `pnqi`
reports that the index must be recreated.
