Protea (named after Proteus, the Greek sea god known for his ability to change shape) is an architecture description language (ADL) designed for teaching at ITMO and MIPT. It is built on top of the Ruby programming language, leveraging its flexibility and expressiveness to allow users to easily define and manipulate architectural components.
ProteaIR (Protea Intermediate Representation) doesn't have canonical textual or binary representation. Instead, it is possible to serialize and deserialize it using JSON, YAML, or any other format.
It is a monorepo managed by Bundler. To install dependencies, run:
bundle installSo every ruby tool or script can be run using bundle exec, for example:
bundle exec ruby tools/some_tool.rb