./sysutils/bkt, Subprocess caching utility

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 0.8.0, Package name: bkt-0.8.0, Maintainer: pkgsrc-users

bkt (pronounced bucket) is a subprocess caching utility written in Rust,
inspired by bash-cache.
Wrapping expensive process invocations with bkt allows callers to reuse recent
invocations without complicating their application logic. This can be useful in
shell prompts, interactive applications such as fzf, and long-running programs
that poll other processes.

When bkt is passed a command it hasn't seen before (or recently) it executes
the command synchronously and caches its stdout, stderr, and exit code.
Calling bkt again with the same command reads the data from the cache and
outputs it as if the command had been run again.


Master sites:

Filesize: 35.3 KB

Version history: (Expand)


CVS history: (Expand)


   2024-01-25 11:02:10 by pin | Files touched by this commit (3) | Package updated
Log message:
sysutils/bkt: update to 0.8.0

What's Changed
 -  --ttl is now a required flag. Historically it arbitrarily defaulted to one
    minute; to preserve this behavior you can set BKT_TTL=1m in the environment
    that's executing bkt (#48 and #27)
 -  Swapped from Instant to SystemTime for TTL arithmetic and related operations
    (#45)
 -  Scopes are now base-64 encoded to support scope names that don't happen to
    be valid file names (#51)
 -  Improve error message on permission failures (#35)

API Changes
 -  CacheStatus::Hit(Instant) has been replaced with CacheStatus::Hit(SystemTime)
   2023-08-29 08:31:50 by pin | Files touched by this commit (2) | Package updated
Log message:
sysutils/bkt: update to 0.7.1

 - Patch release to pick up the fix for #44 which was a regression
   introduced in 0.7.0.
   2023-08-28 10:18:51 by pin | Files touched by this commit (2) | Package updated
Log message:
sysutils/bkt: update to 0.7.0

What's Changed
 - stdout/stderr are now streamed as the subprocess is executing, rather than
   output only once the subprocess completes (#43).
 - NotFound errors during cleanup are now ignored (#42).
 - Improved error handling for malformed executables (#37).

API Changes
 - New methods Bkt::retrieve_streaming and Bkt::refresh_streaming have been
   added for library users that want to stream output, however these methods
   are subject to change and should be treated as experimental.
   2023-04-13 20:07:05 by pin | Files touched by this commit (3) | Package updated
Log message:
sysutils/bkt: update to 0.6.1

 - Patch release adjusting how --help's output is wrapped.
   2023-04-03 13:04:04 by pin | Files touched by this commit (3) | Package updated
Log message:
sysutils/bkt: update to 0.6.0

What's Changed
 - Support environment variables BKT_TTL, BKT_SCOPE, and BKT_CACHE_DIR as
   alternatives for flags --ttl, --scope, and --cache-dir, respectively (#15)
 - Added support for keying the cache off one or more files' last-modified time
   via the --modtime flag (#10).
 - --discard_failures is included in the cache key, meaning bkt -- foo and bkt
   --discard_failures -- foo will be cached separately.
 - Added CI test coverage of feature="debug" behavior.
 - Fixed flaky tests that relied unnecessarily on how file modtimes change (#14)

API Changes
 - Bkt::discard_failures() is now set on CommandDesc, and affects the cache key.
 - Added a CommandState type, making CommandDesc safe to persist and pass
   around. Environment details like the working directory and environment
   variables are captured when the CommandState instance is constructed.
 - Bkt::retrieve and Bkt::refresh now return more metadata about the cache state
   (e.g. whether there was a cache hit or miss).
 - Upgraded to Clap v4 (#25).
   2022-04-06 11:55:37 by pin | Files touched by this commit (3) | Package updated
Log message:
sysutils/bkt: update to 0.5.4

-Patch release to aid packaging for Debian (see #12).
 No new functionality vs. 0.5.2
   2022-03-14 11:18:08 by pin | Files touched by this commit (3) | Package updated
Log message:
sysutils/bkt: update to 0.5.3

-Patch release to aid packaging for Debian (see #12).
 No new functionality vs. 0.5.2.
   2022-02-07 10:17:55 by pin | Files touched by this commit (2) | Package updated
Log message:
sysutils/bkt: update to 0.5.2

-Handle (i.e. ignore) BrokenPipe errors, which indicate stdout/stderr were
 closed without reading all output.