SkillAgentSearch skills...

Snailquote

A shell-inspired escape+unescape library for strings

Install / Use

/learn @euank/Snailquote
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

snailquote

Build Status

Docs

This library provides functions to escape and unescape strings.

It escapes them in a roughly 'sh' compatible way (e.g. double quotes supporting backslash escapes, single quotes supporting no escapes).

In addition, it provides support for common c-like ascii escapes (like \n for newline, \v for vertical tab, etc) and rust-string-like unicode (via \u{12ff} style escapes).

More importantly, this library also provides the ability to un-escape a given escaped text to recover the original string.

For more information on usage and what escape sequences will work, see the docs.

Compatibility

snailquote intends to explicitly be compatible with the following use-cases:

  1. Readable encoding of arbitrary strings for user's editing; re-parsing of said strings after being edited.
  2. Reading and writing the values of os-release files.

Other files may have a similar shell-inspired format that snailescape works with, but it's up to you to verify it really is similar enough to be correct.

snailquote is inspired by, but not compatible with, the following:

  1. gnulib quotearg, as used for 'ls' output -- snailquote handles unicode escapes differently.
  2. ANSI-c string literal quoting -- snailquote handles unicode differently and supports shell-related escapes, like '$'.
  3. sh string quoting -- snailquote handles unicode differently and is more lax about shell special characters.

Why not use <other library>

Other libraries in rust I've found have one or more of the following problems:

  1. The escaped text is not as easily human-editable
  2. There is no way to un-escape text
  3. NIH
View on GitHub
GitHub Stars38
CategoryDevelopment
Updated8mo ago
Forks5

Languages

Rust

Security Score

82/100

Audited on Jul 6, 2025

No findings