Candidate disk scanner
Rust library + native CLI + Python abi3 extension. The provisional name is recorded in NAME.md; nothing has been published or reserved.
soldr cargo run --release -p jettison-cli -- /home --top 20 --one-filesystem
soldr cargo run --release -p jettison-cli -- /home --json --depth 2
soldr cargo run --release -p jettison-cli -- /home --summary --threads 8
uv build --wheel # soldr PEP 517 backend, native CLI bundled
python3 ci/wheel.py smoke # clean installed-wheel tests
./ci.py all # Linux gates (no publishing)
The installed command is jettison-cli; it is the Rust executable itself,
not a generated Python console-script launcher. --help lists every option.
Default sizes are allocated blocks, so sparse holes are excluded. --apparent
ranks logical sizes. Hardlinks count once; the alias that receives the charge
can vary with worker order. Directories include their own metadata allocation.
--depth and --top limit output, never traversal or totals. Human output ranks
all visible nodes globally; JSON applies top/depth to each directory's children.
--summary uses the streaming API and retains no file tree.
import jettison
result = jettison.scan("/home", one_filesystem=True, threads=8)
print(result["allocated"], result["errors"])
The Python call releases the GIL during traversal. A scan of a root that cannot
be opened raises an error. Descendant failures increment errors; CLI exit 1
means partial results, exit 2 means invalid arguments or root failure. Progress
is on stderr when attached to a terminal. A live scan is not a snapshot, and
concurrent filesystem changes can affect results. Filename bytes are preserved
in Rust paths; JSON/Python display paths replace invalid Unicode.
Linux uses getdents64 + fd-relative statx/openat with worker deques. Windows attempts raw NTFS MFT, then USN, then FindFirstFileExW and a compatibility walk. macOS uses getattrlistbulk, adapted from MIT-licensed Kencho5/derust. Windows and macOS are cross-compiled here; their native runtime paths remain UNVERIFIED until the corresponding CI lanes execute. See docs/DESIGN.md and NOTICE.
The six native lanes compile on Linux and run their test executables and wheel on their own runner OS. Musl triples are declared for release-only work. There is no release/tag/upload workflow in this candidate repository.
Tests create real fixtures under ignored target/test-fixtures/ directories, including a
3000-entry directory, sparse data, hardlinks, unreadable files and symlink loops.
Fixtures remain available for diagnosis; remove them with safe-rm -r after use.
No filesystem is mocked. Pure NTFS and macOS byte decoders run on Linux too.
The core crate can be packaged independently for crates.io; the wheel includes
the same core, a PyO3 abi3-py310 module, and the native executable. Before a
release, a human must approve the name, complete native validation, and review
the registry availability again. See RELEASE.md, LINTING.md and docs/DESIGN.md.
Metadata
Release files for jettison 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| jettison-0.1.0-cp310-abi3-manylinux_2_39_x86_64.whl | CPython 3.10 | abi3 | Linux glibc 2.39+ x86-64 | Details for jettison-0.1.0-cp310-abi3-manylinux_2_39_x86_64.whl |
Release files / jettison-0.1.0-cp310-abi3-manylinux_2_39_x86_64.whl
| Download URL | jettison-0.1.0-cp310-abi3-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 3.2 MB |
| Tags | CPython 3.10 Linux glibc 2.39+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
7d957c3245bc0d3167e7cd9561697a1ff71a750f03f3d33c10e17c8fea758d56
|
|
BLAKE2b-256 checksum How to use checksums |
959d32ee77743a1390bfeff3f64191f8aafd7f72609176602bc47c423dba45e5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"NixOS","version":"26.05","id":"yarara","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for jettison 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.