Skip to content

Releases: riquito/tuc

v1.3.0

11 Sep 05:42

Choose a tag to compare

Changes

  • perf: much faster (2x to 5x depending on the workload)
    • detect and apply better algorithms before starting
    • mmap support
  • feat: you can now pass a file path as argument to tuc
  • feat: add the ability to display fallback output when a field is out of bound
    (you can set it per-field using -f <range>=somefallback or by providing
    a default fallback with --fallback-oob somefallback)
    (it will be opened with mmap if available and as long as --no-mmap is not set)
  • feat: it is now possible to type \t while formatting fields and
    output a TAB (as we already do for \n) e.g. -f '{1}\t{2}'
  • feat: new argument --fixed-memory (-M) to cut lines in chunks of
    a fixed size (in kilobytes), to allow cutting arbitrary long lines
  • feat: --characters now depends on the (default) regex feature
  • feat: ignore broken pipe when feeding output to tools such as head
  • feat: display short help when run without arguments
  • feat: help and short help are colored, as long as output is a tty and
    unless env var TERM=dumb or NO_COLOR (any value) is set
  • chore: --json internally uses serde_json, faster and more precise
  • chore: improved test coverage

v1.2.0

02 Jan 00:43

Choose a tag to compare

Changes

  • feat: new option --json to format output as JSON array
  • feat: -r can be used when cutting --characters. It replaces
    the (empty) delimiter between characters with whatever you provided
  • feat: exit early when some combinations of fields cannot be used together
  • feat: updated dependencies. In particular the regex crate which offers new
    functionalities (word boundary assertions)
  • fix: field formatting is now applied to field 1 even if no delimiters
    are found (similar to how we print the unformatted field 1)
  • doc: many error messages have been rewritten for better clarity
  • doc: new svg demo in the README

v1.1.0

02 Dec 18:19

Choose a tag to compare

Changes

  • feat: no more need to pass --join when using --replace, it's implied
  • feat: new error messages when applying some incompatible options
  • doc: improved documentation, help, man page
  • doc: mention that --regex requires an argument
  • test: improved test coverage
  • fix: better error message when --regex argument is missing

v1.0.0

26 Feb 00:19

Choose a tag to compare

Time for a new release, 1.0.0 !
Since no known bugs have been found since a while, it's time to give a sense of maturity with a 1.0.0 release.

Changes

  • refactor: regex feature is enabled by default
  • perf: disable unnecessary regex features to reduce binary size
  • refactor: check fields bounds using unsigned_abs
  • chore: updated dependencies
  • chore: prebuilt binaries are built with rust 1.67.1
  • doc: added link to tuc playground
  • doc: fix typos

For maintainers: first, thank you. You help so many projects with your valuable work.
With the release of 1.0.0 I took the decision to compile tuc with regex support enabled by default. This means that prebuilt binaries have changed from tuc and tuc-regex to tuc (now with regex) and tuc-lite (tuc-lite is tuc without regex support, to offer a smaller binary). I believe is best for tuc to have regex support by default: sorry for the confusion. I'm not sure if tuc-lite is meaningful for every distribution/OS out there, I'll leave that decision up to you. And thanks again.

v0.11.0

21 Jun 01:26

Choose a tag to compare

  • fix: --lines could throw out of bounds with -f 1: in some situations
  • chore: dependency updates
  • doc: fixed typos
  • doc: new section about community-managed install methods (macports)
  • doc: man page generated using the mode modern pandoc 2.5

v0.10.0

13 Jun 09:02

Choose a tag to compare

  • breaking: -E is now an option (-e), and accept the regex as value
  • doc: added man page
  • doc: improved documentation
  • chore: updated pico-args

v0.9.0

05 Jun 21:22

Choose a tag to compare

  • breaking: --lines output each bound on their own line
  • feat: --regex support
  • feat: minor tuning of buffers
  • feat: internal improvements for --lines
  • fix: right side of a range can be negative
  • fix: emit proper error if right side of a range is behind left side
  • fix: --lines with negative indexes were broken
  • fix: --greedy-delimiter was cutting wrongly lines starting with delimiter

v0.8.0

23 May 22:59

Choose a tag to compare

  • add support for --greedy-delimiter
  • bounds can be formatted
  • major refactoring for better code maintainability

v0.7.0

21 May 07:30

Choose a tag to compare

  • add support for --join
  • add support for --lines
  • add support for --complement
  • add support for --zero-terminated

v0.6.0

14 May 06:25

Choose a tag to compare

  • add split-by-byte using --bytes
  • add split-by-character using --characters
  • faster performance when -p (compress delimiters) is on
  • faster performance when reading the input
  • CI now fails if the linter is not satisfied
  • reviewd CI/release actions, simpler, faster
  • release binaries for ARM too