#unix-shell #unix #shell

app crsh

Crappy Rust SHell. Basic implementation of a unix shell written in Rust, not meant to actually be used or taken seriously.

1 unstable release

0.0.1 Jun 18, 2024

#42 in #unix-shell

Custom license

37KB
1K SLoC

crsh

Crappy Rust SHell. Basic implementation of a unix shell written in Rust, not meant to actually be used or taken seriously.

Features

  • Functional prompt
  • Command launching, piping, and logical grouping
  • Basic builtin commands cd, which, exit
  • Non-interactive mode
  • Prompt history

Todo

  • Command lists
  • Flesh out builtins
  • Fully functional IO redirection
  • History persistence
  • Set/unset shell options
  • Setting/reading env vars
  • Bash-esque variable expansion
  • Launching sub-shells
  • Full scripting functionality
  • Rewrite parser to use shunting yard
  • Implement stack based compiler/interpreter
  • Implement ctrl-z and ctrl-c and proper signal handling
  • New scripting language
  • Custom prompt styling
  • Loading configuration files (ie. .profile, .*rc, .*env)
  • Autocompletion
  • Syntax highlighting

Dependencies

~2.5–9MB
~60K SLoC