Skip to content
/ rush Public

A posixy shell implemented in Rust with minimal external dependencies.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

moturus/rush

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

A posixy shell implemented in Rust with minimal external dependencies.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages