Rosa is a specialized binary file format designed for distributing applications. It offers platform independence, architecture agnosticism and efficient execution through the use of an intermediate representation and runtime interpretation or translation.
- Platform Independence: Rosa binaries can be distributed on every platform without the need for recompilation.
- Architecture Agnosticism: Rosa is designed to be architecture-agnostic, enabling binaries to execute efficiently on various hardware architectures. The indermediate representation ensure optimal execution on each target architecture.
- Secure Distribution: The use of IR within the Rosa helps protect the source code of closed-source applications. As the IR consists of basic instructions and is not the representative of the original source code, it provides a level of abstraction that makes reverse engineering more challenging.
- Efficient Execution: Rosa allows for efficient execution by being optimized for the specific machine on which they run. During the loading or interpretation phase, the loader or interpreter can analyze the target platform's characteristics and translate the IR instructions into appropriate machine code or virtual machine instructions specific to that platform.
The commands below are purely stubs, may be subject to future changes or may not be available at this time.
- Rust (version 1.69+)
- Install the project with Cargo:
cargo install https://github.com/gulje/rosa.git
- Now, you should be able use the
rosa
command on your shell. Run therosa -v
command to verify the installation.
- Create a project in your desired programming language.
- Compile the project into the intermediate representation using the available tools or libraries.
- Use the compiler to generate a Rosa binary:
rosa compile -i input.ir -o binary.rosa
- Distribute the generated Rosa binary for users to run on their respective platforms.
- Users can execute the binary on their platform using the Rosa interpreter or translator:
rosa run -f binary.rosa
or
rosa translate -f binary.rosa -a x86_64
The Rosa project is licensed under the Violet Public License 1.0. See the LICENSE for more details.