rsthn/rose-core

Rose Framework - Core

v5.0.20 2024-11-20 10:03 UTC

README

Total Downloads Latest Stable Version License

About Rose

Rose is a framework designed aiming to the highest-level of abstraction possible, this is achieved by using an internal expression language (dialect of Lisp) to code entire APIs and systems. This effectively allows the developer to never write any host language code when building core logic.

The host language is the language in which the rose-core was built, for the repository you're viewing right now, that would be PHP.

In the future we're planning to build ports of Rose and its extensions for other host languages such as Python, NodeJS or whatever hot crazy lang may be available in the future. And when that happens, all of your current code written for Rose will continue to work seamlessly in the new host language (given that all required extensions are of course ported to the new host language as well).

And that dear readers, is the power of Rose.


Installation

As any other package of the modern web, this one should be installed using a package manager. In this case, we're on Packagist and you can install Rose using composer.

However this is rose-core, and should not be used alone. Please use one of our pre-made project skeletons instead:


Expression Functions

Rose comes with a powerful expression evaluator (located in the Expr class), based on a lisp-like (or clojure-like if you would) language variation known as Violet. There are several built-in functions and you can find all of them in the Documentation.


FAQ

Q: If there is no need to write host-language code, what happens when I need something new that is not doable using current functions?

A: Given such case, you're free to build your own Rose-extensions in the host-language, and use it in any expression. Read our extensions documentation for more information.