dc95f2e065
This brings Phoenix's minimum required version from 20.x down to 16.x. ReadableStream.from() is deemed experimental, and requires Node 20.x (or at least, something higher than 18.x). This was the only code that made us require version 20.x. ReadableStream and WritableStream are available from Node 16.5, but require that they be explicitly imported. |
||
---|---|---|
.. | ||
assets | ||
config | ||
doc | ||
packages | ||
src | ||
test | ||
tools | ||
.gitignore | ||
LICENSE | ||
notalicense-license-checker-config.json | ||
package-lock.json | ||
package.json | ||
README.md | ||
rollup.config.js | ||
run.json5 | ||
test.js |
Phoenix
Puter's pure-javascript shell
phoenix
is a pure-javascript shell built for puter.com.
Following the spirit of open-source initiatives we've seen like
SerenityOS,
we've built much of the shell's functionality from scratch.
Some interesting portions of this shell include:
- A shell parser which produces a Concrete-Syntax-Tree
- Pipeline constructs built on top of the Streams API
- Platform support for Puter
The shell is a work in progress. The following improvements are considered in-scope:
- Anything specified in POSIX.1-2017 Chapter 2
- UX improvements over traditional shells
examples include: readline syntax highlighting, hex view for binary streams
- Platform support, so
phoenix
can run in more environments
Running Phoenix
In a Browser
You can use the terminal on Puter, including self-hosted installations.
Running in Node
Under node.js Phoenix acts as a shell for your operating system.
This is a work-in-progress and lots of things are not working
yet. If you'd like to try it out you can run src/main_cli.js
.
Check this issue
for updated information on our progress.
Testing
You can find our tests in the test/ directory. Testing is done with mocha. Make sure it's installed, then run:
npm test
What's on the Roadmap?
We're looking to continue improving the shell and broaden its usefulness. Here are a few ideas we have for the future:
- local machine platform support
See this issue
- further support for the POSIX Command Language
Check our list of missing features