shelly-shell 0.5.4

A Rust based Unix style shell with a typed and structured language syntax.
# Language map

You can learn Shelly in layers. The shell layer handles commands and their I/O;
the value layer handles data; the application layer supplies interfaces and
modules. A script can use all three without changing languages.

## Foundations

- [Language basics]Language-Basics: statements, comments, quoting, and grouping.
- [Variables and scope]Variables-and-Scope: declarations, assignment, shadowing,
  caller scope, and captured bindings.
- [Numbers and logic]Numbers-and-Logic: numeric promotion, arithmetic, equality,
  ordering, truthiness, and short-circuit evaluation.
- [Strings and paths]Strings-and-Paths: Unicode text, interpolation, slices,
  home-directory display, and file patterns.

## Collections and decisions

- [Arrays]Arrays: element contracts, slices, copying, spread, and stack methods.
- [Hash maps]Hash-Maps: typed keys and values, lookup, and pairs.
- [Ranges and iteration]Ranges-and-Iteration: bounded and open ranges, snapshots,
  and the `next_item` protocol.
- [Control flow]Control-Flow: `if`, `for`, `while`, `until`, and loop transfers.
- [Match and type guards]Match-and-Type-Guards: value/range cases and narrowing.

## Program structure

- [Functions and calls]Functions-and-Calls: argument positions, results,
  executable references, aliases, and versioned definitions.
- [Closures and function types]Closures-and-Function-Types: live captures,
  callbacks, prototypes, and optional arguments.
- [Methods and properties]Methods-and-Properties: live `$self`, getters,
  setters, dynamic member names, and receiver-dependent contracts.
- [Structs]Structs, [Enums]Enums, [Named types and unions]Named-Types-and-Unions.
- [Conversions]Conversions: explicit conversion and source/target hooks.
- [Reflection]Reflection: runtime types and discoverable interfaces.

## Shell execution and composition

- [Pipelines]Pipelines and [Pipeline formats]Pipeline-Formats.
- [Pipeline splits]Pipeline-Splits: nested branches, required alignment guides,
  streaming fan-out, and portable tab settings.
- [Commands and exit status]Commands-and-Exit-Status.
- [Redirection]Redirection and [Environment]Environment.
- [Errors and cleanup]Errors-and-Cleanup.

## Modules and libraries

- [Modules]Modules, [Module packages]Module-Packages, and
  [Conditional code]Conditional-Code.
- [Standard library]Standard-Library and [Prelude]Prelude.
- [Bytes and I/O]Bytes-and-IO, [Item streams]Item-Streams, [JSON]JSON.
- [Networking]Networking, [HTTP]HTTP, [HTTP servers]HTTP-Servers,
  [Framing and RPC]Framing-and-RPC.

## Interactive tools

- [Startup and library selection]Startup-and-Standard-Library.
- [REPL and history]REPL-and-History, [Prompts and widgets]Prompts-and-Widgets.
- [Terminal formatting]Terminal-Formatting, [Line editing]Line-Editing,
  [Editor integration]Editor-Integration.

[Recipes](Recipes) combines topics into small programs. The
[syntax reference](Syntax-Reference) is a compact reminder once the concepts are
familiar.

---

Related: [Home](Home) ยท [Syntax reference](Syntax-Reference)