g-s-k / parsley

a scheme implementation in rust

Home Page:https://georgekaplan.xyz/parsley

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

parsley

Build Crates.io

what if scheme...but rust. still working on a backronym.

cargo install parsley installs the interpreter - see the docs if you want to use it as a library.

high-level goals

  1. a lightweight Scheme implementation...
  2. that compiles to WebAssembly...
  3. usable inside of a larger application without making too many sacrifices...
  4. that is modular and extensible...
  5. but includes enough definitions to be useful out of the box.

on the horizon

  • improve test coverage
    • More tests from SICP
    • Better coverage of the standard library
    • Example crates
  • (eventually) R7RS compliance

Navigating this repo

  • The source for the main library is in src.
  • The source for the cargo install-able binary is in src/bin/parsley.
  • The source for the (gh-pages) homepage is in examples/www.
    • To run (serve) or compile (build) it, cd into that directory and use trunk. Its output will be placed in ./examples/www/dist.
  • The source for the npm package is in examples/npm.
    • To compile it, use wasm-pack. Its output will be placed in examples/npm/pkg.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

a scheme implementation in rust

https://georgekaplan.xyz/parsley

License:Apache License 2.0


Languages

Language:Rust 96.5%Language:Scheme 3.5%