All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.1.0 - 2026-07-05

Added

  • ShellWords.split/2 and ShellWords.split!/2: POSIX-like word splitting with single quotes, double quotes (POSIX backslash semantics), backslash escaping outside quotes, empty quoted words, and adjacent segment concatenation.
  • ShellWords.escape/1: shlex.quote-style escaping with an exact ASCII safe-word whitelist.
  • ShellWords.join/1: escape and join argv into one shell-safe string.
  • ShellWords.ParseError with reason, 0-based byte position, and message (reasons: :unterminated_single_quote, :unterminated_double_quote, :trailing_escape).
  • StreamData property tests for the split(join(argv)) == {:ok, argv} round-trip guarantee.