Go to file
2022-09-16 23:45:07 +01:00
.github/workflows chore: only run pull_request on opened/reopened 2022-09-16 14:22:00 +01:00
blog wip 2022-08-01 14:14:17 +01:00
meta meta: remove old scripts 2022-09-12 00:15:22 +01:00
trunk_compiler compiler/runtime: support var_dump 2022-09-03 16:35:17 +01:00
trunk_go compiler/runtime: support var_dump 2022-09-03 16:35:17 +01:00
trunk_lexer parser: support a basic shorthand if 2022-09-16 23:40:32 +01:00
trunk_parser parser: support shorthand elseifs 2022-09-16 23:45:07 +01:00
.gitignore rs: experiment with a PHP to Rust to binary compiler 2022-07-29 16:32:25 +01:00
Cargo.toml feature: basic PoC for compiling PHP to a Go-based runtime and custom IR 2022-09-02 23:38:05 +01:00
README.md docs: missing word 2022-09-12 00:43:31 +01:00

Trunk

A collection of modern libraries and tools for working with PHP.


Overview

The Trunk project originally started with me (Ryan) experimenting with a handwritten recursive-descent parser for PHP written in Rust. The parser evolved very quickly and I found myself already being able to parse relatively complex programs that I had written myself.

Once I had something worth sharing, I created this GitHub repository and some people were interested in what I was doing. Since then, it's become a hobby project for myself and I tend to work on it in my spare time.

The current goal for Trunk is to get a fully functional parser up and running so that it can be used in some meaningful projects, aimed at bringing the speed and performance of modern PHP tooling closer to that of our cousins in JavaScript land.

Libraries and Tools

Contributing

All contributions to Trunk are welcome. It's the perfect project for Rust beginners since we don't use many of Rust's complex features and the core concepts in the parser are purposely simple.

If you do wish to contribute, we just ask you to follow a few simple rules.

  1. Create a pull request from a non-main branch on your fork.
  2. Provide a short, but clear, description of your changes.
  3. Have fun and don't take it all too seriously!

Credits