Skip to content
This repository was archived by the owner on Oct 24, 2025. It is now read-only.

Latest commit

 

History

History
43 lines (26 loc) · 1.35 KB

File metadata and controls

43 lines (26 loc) · 1.35 KB

rush

Archived: the repo has been moved to Motor OS repo.

RUst SHell: a posixy shell implemented in Rust with minimal external dependencies.

Q: Why another shell in Rust?

A: Existing shell projects (a) aim to be 'a better shell', and (b) have a lot of dependencies, so they cannot be easily ported to non-standard OSes; and even non-standard OSes often need interactive shells.

Goals

  • A simple interactive shell with a familiar subset of standard shell functionality;
  • Minimal external dependencies and thus easily portable;
  • To eventually comply, as much as posible, with the spec.

Non-goals

  • To be better than X (sh, bash, etc). The main purpose of this project is simplicity and portability.

How to use

  • Just do a 'cargo run';
  • Try various commands;
  • File bug reports;
  • Type 'exit' or 'quit'.

What works

  • Basic line editing (arrows, home/end, del/backspace, basic history);
  • Command piping (e.g. 'ls | wc -l');
  • Globbing (e.g. "ls src/*.rs") (using glob crate).

TODO

  • Non-interactive mode (batch processing);
  • Variables, environment, loops, eval, etc.

Contributions:

  • Are welcome;
  • If you plan to add a large feature or make a non-trivial refactoring, please discuss your approach first.