moto-rush

Crates.iomoto-rush
lib.rsmoto-rush
version0.1.0
sourcesrc
created_at2024-01-07 19:25:40.109651
updated_at2024-01-07 19:25:40.109651
descriptionA posixy shell implemented in Rust with minimal external dependencies.
homepage
repositoryhttps://github.com/moturus/rush
max_upload_size
id1091974
size68,518
(lasiotus)

documentation

README

rush

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.
Commit count: 0

cargo fmt