A minimal, sensible, scripting language for configuring, extending and controlling your application
Explore the docs »
View Examples
·
Report Bug
·
Request Feature
PSI is a scripting language with the following aims:
- Be fast enough to be embedded with little slowdown
- Simple enough to use, but powerful enough to be practical
- Potentially be used as a general purpose scripting language
- Can be learnt in under 1 hour with prior experience.
- Rust (Fast language to implement PSI in)
- Lliw (Provides colours and styles on the terminal)
- Thiserror (Allows for easy custom error creation)
- Unicode-rs (For use to ensure unicode is supported)
- Crafting Interpreters (Where I learnt to build it)
-
Ensure you have an up-to-date Rust compiler toolchain (https://rust-lang.org)
-
Build from source (use a nightly compiler for potential performance improvements)
cargo install psi-lang
-
Ensure you have an up-to-date Rust compiler toolchain (https://rust-lang.org)
-
Clone the repo and enter the directory
git clone https://github.com/curlpipe/psi.git cd psi/compiler
-
Build from source (use a nightly compiler for potential performance improvements)
cargo build --release
-
Add the executable
mv target/release/psi_compiler /usr/bin/psi
You can find a cheatsheet for the language over here
You can also use the --learn
or -l
flag for an interactive learning environment to get yourself up to scratch on the langauge very quickly.
Here is the usage for the command line application itself:
psi -h
- Show help messagepsi -r
- Access a REPL for trying out the language (a great environment to get to know it)psi example.psi
- Run code from a filepsi example.psi -v
- Run code from a file (and show the internal workings of PSI)psi -rv
orpsi -r -v
- Combine the repl and verbose argument to interactively show the internal workingspsi -l
- Access an interactive learning environment to learn the language quickly
Distributed under the GPLv2 License. See LICENSE
for more information.
Project Link: https://github.com/curlpipe/psi