NeoSH is looking for contributors!
NeoSH - is a crossplatform shell written in Rust and Lua, where Rust is used as a core, and Lua is used for configuration.
Right now we can't even say that the project is in it's pre-alpha study, because it is 1 month old. We would like to implement many beautiful features, but right now 3 people is not enough because we can't give enough time for the project.
Our goals
Right now we want to write a "next-gen" shell and as I've said before, we are using Lua for configuration but we also plan to make a transpiler to Lua. That means, we parse user input and send it to Lua by using an AST and the result of the user input will be rendered using a table beautifier (something similar to what nushell does IIRC).
We want to make a highly extensible shell with a robust functionality and a good interface language and that's why we chose Lua as our scripting language. We also want to make a robust Lua API so people can easily make plugins to extend what NeoSH can do.
Additionally to this, we plan to make a "cross-shell" (don't know how to define this lol), that means, we will have two core modes. The normal mode, being the shell that everybody knows and a Lua REPL to directly interact with our Lua API (this one will be capable of execute system commands!). Some more features are planned but we cannot make a bible here haha.
What we have done so far
- Right now we have implemented the most basic built-in shell commands (
cd,pwdand of course,exit). - Our extended Lua stdlib
- Core logging system (exported to our Lua API too).
- Started our parser (in a very early stage!)
- Shell history and shell directories creation (like
~/.config/neosh) - Some CIs on GitHub to help us with some tasks.
Where help is needed
- readme
- refactoring
- logging
- implementing parser for user input (
cargo fmt -- --checkinto ast (ast is almost done)) - shell commands
- feature suggestion
- core concepts suggestion
- testing
- community guidelines