Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Main -> Develop #15

Merged
merged 11 commits into from
Oct 26, 2023
54 changes: 54 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# php-rs

A minimalistic PHP interpreter.

## Overview

With this project I'm attempting to create a lightweight PHP interpreter built using Rust.
It's currently in its early stages and is meant for experimental and educational purposes.

## Try it out
I've deployed the REPL to the web using WebAssembly (see the ```wasm``` directory)

You can find it [here](https://php-rs.zakfarmer.com).

## Features

- Basic arithmetic operations
- Conditional operators / boolean expressions

Expect this list to grow 😁

## Usage

Ensure you have Rust and Cargo installed on your system. Clone the repository and navigate to the project root:

```bash
git clone https://github.com/ZakFarmer/php-rs.git
cd php-rs
```

To run the interpreter:

```bash
cargo run
```

To run the testsuite:
```bash
cargo test
```

## Credits
The design of the project was heavily influenced by Thorsten Ball's "Writing an Interpreter in Go" and "Writing a Compiler in Go", of course adapted to Rust.
100% recommend reading both as they're great books if you're interested in language fundamentals.

## Contributing

Although this project isn't intended to be anything consequential and certainly won't ever be used in production, contributions for educational purposes or to address small issues are always welcome.

Of course! Here's a new section you can add to your `README.md`:

## Disclaimer

This project is an independent work and is not affiliated with, endorsed by, or sponsored by the official PHP development team or the PHP Group. The interpreter has been created for experimental and educational purposes only.