Skip to main content

sqlite-scanner

sqlite-scanner is a tiny Go CLI that recurses through one or more directories, checks each regular file’s header bytes, and reports the ones whose first 16 bytes match SQLite format 3\x00. It never trusts file extensions, and it can run multiple workers in parallel for speed.

Features

  • scans one or more positional paths or falls back to . when no paths are specified
  • configurable worker pool via --workers (defaults to your CPU count)
  • always prints absolute paths so results are unambiguous
  • optional --size flag that appends file sizes to text output and emits JSON objects like {"path": "...", "size": ...}
  • newline-delimited JSON via --jsonl; use --size to include each object's size field
  • JSON output mode (--json) that pretty-prints {"entries": [...]} objects for downstream processing
  • streams matches immediately as they’re discovered (plain text and pretty JSON)
  • custom --help text that describes usage, examples, and notes

Setup

git clone https://github.com/simonw/sqlite-scanner
cd sqlite-scanner

Build

go build -o bin/sqlite-scanner

Usage

Simple scan (current directory):

bin/sqlite-scanner

Scan /tmp and $HOME:

bin/sqlite-scanner /tmp ~

Use JSON mode:

bin/sqlite-scanner /tmp --json

Example JSON output shape:

{
  "entries": [
    {"path": "/abs/path/to/db1.sqlite"},
    {"path": "/abs/path/to/db2.sqlite"}
  ]
}

Use newline-delimited JSON to stream objects per line (requires --size to include size):

bin/sqlite-scanner --jsonl ~/dev

Example JSONL output shape (no size):

{"path": "/abs/path/to/db1.sqlite"}
{"path": "/abs/path/to/db2.sqlite"}

Example JSONL output shape (with --size):

{"path": "/abs/path/to/db1.sqlite", "size": 12345}
{"path": "/abs/path/to/db2.sqlite", "size": 67890}

Include sizes (plain text shows (size bytes) and JSON outputs objects) with:

bin/sqlite-scanner --size /tmp --json

Example --size output (plain text):

/abs/path/to/db1.sqlite (12345 bytes)
/abs/path/to/db2.sqlite (67890 bytes)

Check available flags (it prints the detailed help text added earlier; all flags use the --flag form):

bin/sqlite-scanner --help

Testing

go test

Release files for sqlite-scanner 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for sqlite-scanner 0.1.1
File
sqlite_scanner-0.1.1-py3-none-win_arm64.whl Python 3 none Windows ARM64 Details
sqlite_scanner-0.1.1-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
sqlite_scanner-0.1.1-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details
sqlite_scanner-0.1.1-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details
sqlite_scanner-0.1.1-py3-none-manylinux_2_17_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
sqlite_scanner-0.1.1-py3-none-manylinux_2_17_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
sqlite_scanner-0.1.1-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
sqlite_scanner-0.1.1-py3-none-macosx_10_9_x86_64.whl Python 3 none macOS 10.9+ x86-64 Details

Total release size: 17.1 MB

Release files / sqlite_scanner-0.1.1-py3-none-win_arm64.whl

Download URL sqlite_scanner-0.1.1-py3-none-win_arm64.whl
Size 2.2 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
7bae87b45eb8b148eb4b6fd739b9e771ca833dfeb6391b01ec3c7fe77364ece5
BLAKE2b-256 checksum
How to use checksums
a391b2d77b4c467b649bad2696cdcf4f77fe4d053113fda1660af0299ab1661a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release files / sqlite_scanner-0.1.1-py3-none-win_amd64.whl

Download URL sqlite_scanner-0.1.1-py3-none-win_amd64.whl
Size 2.2 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
4b0e945ea5b71270c569df3bff4d61aea4828a071dce114faa82e70649ab7504
BLAKE2b-256 checksum
How to use checksums
2a579b607803157005cbc4e679c3ef98476346355faff2630756f684169937a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release files / sqlite_scanner-0.1.1-py3-none-musllinux_1_2_x86_64.whl

Download URL sqlite_scanner-0.1.1-py3-none-musllinux_1_2_x86_64.whl
Size 2.1 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
41d42411208cb1331b40b236993856f02a5c103e563e9e0a781c9c230765ae7f
BLAKE2b-256 checksum
How to use checksums
03241546aad9e9ddc49fc649711206177787b0fb96992420432bcd4e2e3bcd48
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release files / sqlite_scanner-0.1.1-py3-none-musllinux_1_2_aarch64.whl

Download URL sqlite_scanner-0.1.1-py3-none-musllinux_1_2_aarch64.whl
Size 2.1 MB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
d72673df796634591b23d248b6cdee2779517dd2c8ae8c074a54b911b1a4f605
BLAKE2b-256 checksum
How to use checksums
2bfde82cbc8607bfd62c154e4902d4e2bd17a5be6f244289bbddb6719f94ea77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release files / sqlite_scanner-0.1.1-py3-none-manylinux_2_17_x86_64.whl

Download URL sqlite_scanner-0.1.1-py3-none-manylinux_2_17_x86_64.whl
Size 2.1 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
6f9c543d3aa9091806e63237b75cad846a55fc46589c19fb860ea4c5c0c98160
BLAKE2b-256 checksum
How to use checksums
7c86fa000bbd7278ae2cc536c8e64ac15b828397f7152eeadb40561760c37f14
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release files / sqlite_scanner-0.1.1-py3-none-manylinux_2_17_aarch64.whl

Download URL sqlite_scanner-0.1.1-py3-none-manylinux_2_17_aarch64.whl
Size 2.1 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
c972fe8c3ef9325bf1b6aa61cc60391ba600fdfce5e8096f7b6b2aebdf13193e
BLAKE2b-256 checksum
How to use checksums
6f1d2ec490677b4967acc413ee2eb53c213cdf323a0ec97ee0b76860134f5a88
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release files / sqlite_scanner-0.1.1-py3-none-macosx_11_0_arm64.whl

Download URL sqlite_scanner-0.1.1-py3-none-macosx_11_0_arm64.whl
Size 2.1 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4625b69c4abd5176a29e0072d46390b3d7403ff0931e5e37923bc7d2d8d361c8
BLAKE2b-256 checksum
How to use checksums
88b117a716635d2733fec53ba0a8267f85bd6b6cf882c6b29301bc711fba212c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release files / sqlite_scanner-0.1.1-py3-none-macosx_10_9_x86_64.whl

Download URL sqlite_scanner-0.1.1-py3-none-macosx_10_9_x86_64.whl
Size 2.2 MB
Tags Python 3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
04f1cead81616dbd2b320cd266935993eca24c0585d93032c2e8e960ab944b78
BLAKE2b-256 checksum
How to use checksums
2b545eef290f2c11dbb319c4f3b53965c0f71716a47426689b0b505cbc0ad17a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release history Release notifications | RSS feed

This release

0.1.1 This release

8 release files

0.1.0

8 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page