- Rust 99%
- Nix 1%
| assets | ||
| docs | ||
| src | ||
| .envrc | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| README.md | ||
selo-pona
selo pona (simple shell in toki pona) is an (planned) interactive shell and (planned) interpreted scripting language that is a (planned) superset of bash. That is, every bash script is also a selo pona script (planned), but selo pona adds some nicer syntax, on top. (planned)
Built in Rust, with minimal dependencies (for now, only libc, and leftpad)
Installation
You have to compile from source for now, some packages may be available when this project's out of pre-alpha someday.
Compiling from source
This project uses cargo. MSRV is 1.93. The only dependency you need is libc, it should work with either glibc or musl. File an issue if you find some discrepancy between them.
Clone the project, and run cargo build --release.
Features
Infrastructure
- Analyzer
- Lexer
- AST
- Interpreter
Language
- Variables
- Main control flow
- Commands
- Syntactic sugar
Shell
- read/eval/print loop (basic implementation)
- cli interface (basic)
Common
- Pipes (basic)
- File redirections (basic)
- Command substitions
- String, backslash-escapes (basic)
- Subshells
Design principles
fish but POSIX-compliant and retrocompatible with bash.
This is made to be minimalist, useful out-of-the box, and unintrusive. You can leave your default bashrc and it'll work (planned).