Modernized Linux networking tools for the
Bright Spacetime
era. bping, bclockdiff, btracepath, and barping — all output and accept BrightDate and are engineered for universal spacetime coordinates.
One sortable, timezone-free, and location-aware scalar — everywhere.
find's time predicates — -mtime,
-newer, -newermt — are a perennial source of
confusion: -mtime -1 means "within the last 24 hours,
rounded down to integer days," -newermt needs an ISO 8601
string with the right timezone, and the results differ on Linux vs
macOS because stat's timestamp resolution and epoch
handling differ subtly between the two. Every script that filters
files by recency carries this invisible complexity.
BSH (BrightShell)
showed that the fix is not a better date-parsing library — it's a
better time representation. BrightDate is a single Float64:
decimal days since the astronomical epoch J2000.0, on a TAI substrate.
No timezone. No leap-second jumps. b − a = elapsed days,
always.
This fork carries that same fix into the findutils layer. If your
shell prints BrightDate (BSH, or any shell using
$BRIGHTEPOCH), and your file-search tool speaks
BrightDate, there is no translation step anywhere in the pipeline. The
number in your prompt is the number you pass to -after,
which is the number printed by -printf '%Wt'.
In one sentence:
BrightDate is a timezone-free SI-day count since J2000.0
(2000-01-01T11:58:55.816 UTC). BD 0.0 = the standard astronomical
epoch. BD 9628 ≈ May 2026. b − a = elapsed days, no
date library required.
find pain| Problem | What goes wrong |
|---|---|
| -mtime -1 | Rounds to integer days from "now", not a clean boundary |
| -newermt "2026-01-01" | Needs TZ; differs on macOS vs Linux |
| -printf "%T+" | Locale-dependent, not sortable as-is |
| Duration math |
Requires date -d, gdate, or Python
|
| Daystart | Midnight in local timezone — silently wrong in UTC+N |
| Feature | What it does |
|---|---|
| -after 9600 | Files whose mtime > BD 9600 — universal, exact |
| -before 9628 | Files whose mtime < BD 9628 — same scalar |
| %Wt / %Wa / %Wc / %WB | Print mtime/atime/ctime/btime as BrightDate decimal |
| -daystart | Floors to BD integer — same on every machine |
| -newerXY 9600 | All -newer variants accept BD literals |
Every time-sensitive surface in findutils now speaks the same float.
The changes are surgical: all four binaries are renamed (
In a world of decentralized nodes and "trusted" identities, Ping vs. Distance is your ultimate truth-detector. If bsh knows its coordinates, it stops treating the internet like a magic cloud and starts treating it like a physical network of silicon and light.
The "Why" (Forensic Utility): Standard networking tells you Latency, but it doesn't tell you Efficiency.
The bsh Integration (The "How"): For bsh to handle this, it needs to be able to pipe coordinate data into its networking tools. Instead of just showing time, Math:b
prefix) so they coexist with system
find/locate/xargs.
Why Bright Spacetime? Forensic Utility
1 mbm = 1 ms, a node 16 mbm away cannot physically respond faster than 16 ms. If it's slower than that, you're seeing routing overhead. If it's faster (which is impossible), you know the node is spoofing its location.The
bping Commandbping provides the Spacetime Efficiency Ratio:bping node-01.brightchain.org
brew tap digital-defiance/tap
brew install digital-defiance/tap/findutils-brightdate
This installs bfind, blocate,
bupdatedb, and bxargs into
$(brew --prefix)/bin. They coexist with system
find/locate/xargs without
shadowing them.
bfind ~ -maxdepth 2 -type f -printf '%Wt %p\n' | sort -rn | head -5
Build from source
A C compiler (clang or gcc),
autoconf, automake ≥ 1.16, and
gettext. macOS, Linux, and *BSD all work.
git clone https://github.com/Digital-Defiance/findutils-brightdate.git
cd findutils-brightdate
autoreconf -fi
./configure --prefix=/usr/local --disable-nls
make -C gl && make -C lib
make -C find bfind
make -C locate blocate bupdatedb
make -C xargs bxargs
sudo cp find/bfind locate/blocate locate/bupdatedb xargs/bxargs /usr/local/bin/
Note: BSH is not required to use these tools — they work in any shell. But if you want BrightDate throughout your whole shell, install
BSH (BrightShell),
a zsh-compatible shell where date, ls -l, stat, history -d, and $BRIGHTEPOCH all speak the same float. bfind and bping fit right in.
A zsh-compatible shell with BrightDate woven into every
time-related surface: date, ls -l,
stat, history -d, sched,
and $BRIGHTEPOCH.
Not required for bping, bfind, or any BSH iputils — but makes them even more seamless.
brightdate
The Rust crate powering BSH internally. Also ships standalone CLI
tools (bdate, btime,
buptime, bcal, bwatch) via
the Homebrew tap.
@brightchain/brightdateTypeScript/JavaScript library. Same J2000.0 / TAI semantics, same epoch. Works in Node.js, Deno, and the browser.
All Digital Defiance BrightDate tools in one tap. Install
bfind, the Rust CLI tools, and BSH itself from a
single tap.
brew tap digital-defiance/tap
brew install bright-iputils
brew install bdate btime buptime bcal bwatch bsh