Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Property404/its-a-unix-system
Web-based terminal
https://github.com/Property404/its-a-unix-system
rust webassembly
Last synced: about 2 months ago
JSON representation
Web-based terminal
- Host: GitHub
- URL: https://github.com/Property404/its-a-unix-system
- Owner: Property404
- License: mit
- Created: 2022-10-30T14:31:18.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-02T19:57:25.000Z (2 months ago)
- Last Synced: 2024-11-02T20:27:17.855Z (2 months ago)
- Topics: rust, webassembly
- Language: Rust
- Homepage: https://dagans.dev/projects/its-a-unix-system
- Size: 1.03 MB
- Stars: 35
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE_MIT
Awesome Lists containing this project
README
# It's a Unix System! I know this!
WebAssembly Unix terminal built with π¦Rustπ¦
## Features
* Essential Unix commands (sh, ls, cp, mv, cat, cowsay, etc)
* Basic Vi implementation
* Pipes and file redirect
* Variables and subshells
* File system via [rust-vfs](https://github.com/manuel-woelker/rust-vfs)
* Basic scripting support (try `sh example.sh`)
* GNU Readline-like features (key bindings, history, tab-complete)
* ANSI escape code support, including some colors### Known bugs
* Running `foo=bar echo ${foo}` will print `foo`'s old value
* `[` cannot compare multiword values because of how variable substition works
* No emoji support in `vi`## Example
```
$ fortune -s | cowsay
_____________________________________
< Your mother is disappointed in you. >
-------------------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
$ # We also have file redirect
$ echo "Wow what a great fortune" > file
$ # We could do `cat file` as well
$ cat < file
Wow what a great fortune
```## Building and Serving for Development
* `cargo install wasm-pack`
* `wasm-pack build --dev`
* `cd www`
* `npm install`
* `npm run start`App will be served on port 8080
## Building for Release
* `cargo install wasm-pack`
* `wasm-pack build --no-default-features`
* `cd www`
* `npm install`
* `npm run build`Build will be in `www/dist/`
## License
MIT