10 releases

0.0.13 Apr 20, 2023
0.0.12 Apr 19, 2023

#1 in #r7rs

MIT license

12MB
155K SLoC

Rust 134K SLoC // 0.0% comments Scheme 20K SLoC // 0.3% comments LALRPOP 847 SLoC // 0.0% comments OCaml 389 SLoC Shell 7 SLoC // 0.2% comments

rmosh

License: MIT Crates.io

rmosh is a Rust implementation of the Mosh Scheme interpreter, which was originally written in C++. It supports all of the features in R7RS small and R6RS standards. Please note that rmosh is currently in its alpha stage.

Features

Feature Supported
R6RS Yes
R7RS small Yes
R7RS vectors Yes
Regexp Yes
Client socket Yes
Server socket No
Multiprocess No
FFI No

Repository

The project is hosted at https://github.com/higepon/mosh/tree/master/rmosh.

Crate

The rmosh crate is available at https://crates.io/crates/rmosh/.

Trying rmosh

For most Rust users, the easiest way to try rmosh is by running the following command:

cargo install rmosh

Build Instructions

To build rmosh from source, follow these steps:

  1. Clone the repository:

    git clone https://github.com/higepon/mosh.git
    cd mosh/rmosh
    
  2. Build the project using Cargo:

    cargo build --release
    

Installation

To install rmosh after building from source, follow these steps:

  1. Install the binary with the following command:

    cargo install --path .
    
  2. Make sure the installation directory is in your PATH.

Running Tests

To run all the tests, simply execute the following command in the project directory:

make test

Limitations and Contributions

Although rmosh passes the R6RS and R7RS tests, there are still some features to be implemented. You may find todo!() or panic!() macros throughout the codebase, indicating areas where your help would be appreciated. Please feel free to submit pull requests to improve the project.

Dependencies

~10–20MB
~300K SLoC