Skip to content

Repository files navigation

HAVERS

High-speed All Values Export Registry Search turns Windows Registry Editor .reg exports into local, indexed, read-only search databases. Import up to two files, search both together, and compare their contents.

Use it

  1. Double-click Start HAVERS.cmd.
  2. A search page opens in your default browser.
  3. Under File 1, choose a .reg export and click Import file 1. Existing indexes appear automatically. To add another export, choose it under File 2 and click Import file 2. Wait for each import to finish before starting the next.
  4. Enter at least three characters. Searches are literal, case-insensitive substring searches across key paths, value names, decoded text, and raw data. Both files are searched together, with each imported filename displayed above its results and on every result. Each page shows up to 50 matches per file.
  5. Click Compare files, or enter #Differ# in the same search box, to compare the two indexed files. The command is case-insensitive and should be entered on its own.

Differences are shown as Changed, Only in file 1, or Only in file 2. Changed values show both versions side by side with filenames, types, and export line numbers. Keys and value names are matched case-insensitively. Types and full value data are compared, including data beyond the displayed preview. Value data is case-sensitive; hex capitalization, numeric spelling, and hex line wrapping do not produce differences. Repeated keys/values use their last occurrence. Empty keys and deletion entries are included. Scope and type filters also apply to differences; a type filter matches either version of a changed value.

The first comparison reads both complete indexes and prepares a disk-backed cache. Progress is displayed while it runs, and normal searches remain available. Further comparisons reuse that cache until either indexed file changes. Identical exports display No differences found. With only one indexed file, the app asks for a second file before comparing.

The server listens only on 127.0.0.1, so the registry data is not exposed to the network. Browser imports transfer the selected file only to the local HAVERS server. The temporary import copy is deleted after indexing. HAVERS never changes the Windows registry or the original .reg files.

Update it from a newer Registry export

Use the browser's import controls to replace either indexed file independently. The imported filenames and indexing progress are displayed above the search box.

Alternatively, double-click Update HAVERS Index.cmd to replace file 1, or Update HAVERS Second Index.cmd to replace file 2. You can also drag a .reg file onto either shortcut. Drag two files onto Update HAVERS Index.cmd to index the first as file 1 and the second as file 2. Refresh the browser after using a shortcut. Each file is published separately when its index succeeds.

The replacement is built in a temporary database and checked before it replaces the working index. If the update fails or is interrupted, the old index remains available. Each slot persists across app restarts. Existing version 1.0 indexes are supported; reimport an old index if it contains a value literally named (Default), because version 1.0 did not distinguish that name from the unnamed default value.

Each build uses its own temporary database, so simultaneous command-line builds cannot overwrite each other's work files. If multiple builds target the same slot, the last successful build becomes that slot's index.

Command line

py -3 .\havers.py index "D:\Backups\registry.reg"
py -3 .\havers.py index "D:\Backups\registry-after.reg" --slot 2
# Or import both in one command:
py -3 .\havers.py index "D:\Backups\registry.reg" --second "D:\Backups\registry-after.reg"
py -3 .\havers.py serve
py -3 .\havers.py search "DisplayName" --scope name
py -3 .\havers.py search "#Differ#"
py -3 .\havers.py info

By default, the generated database is stored at:

%LOCALAPPDATA%\HAVERS\registry-index.sqlite3
%LOCALAPPDATA%\HAVERS\registry-index.second.sqlite3
%LOCALAPPDATA%\HAVERS\registry-index.differences.sqlite3

This keeps a large, frequently rebuilt file out of OneDrive. Only the standard Python library is required; no packages or internet connection are needed. Allow disk space for both indexes, the comparison cache, and temporary import and build files. Stop and restart HAVERS after updating the application code.

Development

Run the automated checks with py -3 -m unittest discover -s tests -v. Registry exports and generated databases are ignored by Git.

About

High-speed local search and comparison of Windows Registry exports. Dependency-free Python app with SQLite indexing.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages