Crate papyrus

source ·
Expand description

papyrus

Build Status Latest Version Rust Documentation

A rust REPL and script running tool

See the docs. Look at progress and contribute on github.

Installation

papyrus depends on proc-macro2 and syn which contains features that are only available on a nightly compiler. Further to this, the features are underneath a config flag, so compiling requires the RUSTFLAGS environment variable to include --cfg procmacro2_semver_exempt.

Linux, Mac

RUSTFLAGS="--cfg procmacro2_semver_exempt" cargo install papyrus

Windows

$env:RUSTFLAGS="--cfg procmacro2_semver_exempt"
cargo install papyrus;

REPL

papyrus run will start the repl!

Shell Context Menu

Add right click context menu. (May need admin rights)

papyrus rc-add

Remove right click context menu. (May need admin rights)

papyrus rc-remove

Run papyrus from command line.

papyrus run path_to_src_file.rs
papyrus run path_to_script_file.rscript

Implementation Notes

  • Right click on a .rs or .rscript file and choose Run with Papyrus to compile and run code!
  • Papyrus will take the contents of the source code and construct a directory to be used with cargo. For now the directory is created under a .papyrus directory in the users home directory.
  • The compiled binary will be executed with the current directory the one that houses the file. So env::current_dir() will return the directory of the .rs or .rscript file.

Example - .rs

File hello.rs.

extern crate some_crate;
 
fn main() {
  println!("Hello, world!");
}

Use papyrus to execute code.

papyrus run hello.rs

The src/main.rs will be populated with the same contents as hello.rs. A Cargo.toml file will be created, where some_crate will be added as a dependency some-crate = "*".

Example - .rscript

File hello.rscript.

extern crate some_crate;
 
println!("Hello, world!");

Use papyrus to execute code.

papyrus run hello.rscript

The src/main.rs will be populated with a main function encapsulating the code, and crate references placed above it. A similar Cargo.toml will be created as before.

Structs

A command definition.
A REPL instance.
A persistent structure of the script to run.

Enums

Command arguments variants.

Traits

Functions

Adds a right click context menu entry for papyrus. Associates .rs and .rscript files with papyrus.
Removes the right click context menu entry for papyrus.