# opal/opal

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/opal-opal).**

4,923 stars · 336 forks · Ruby · MIT

## Links

- GitHub: https://github.com/opal/opal
- Homepage: https://opalrb.com
- awesome-repositories: https://awesome-repositories.com/repository/opal-opal.md

## Description

Opal is a Ruby frontend framework and compiler that translates Ruby source code into JavaScript. It functions as a web runtime that allows for the development of client-side web applications using Ruby instead of JavaScript.

The project includes a Ruby HTML template engine that evaluates Ruby code embedded directly within markup files. It further integrates with JavaScript environments by bundling core libraries and dependencies into a distribution string for execution in a web browser.

The system provides capabilities for Ruby to JavaScript compilation and the ability to encode and decode Base64 data.

## Tags

### Programming Languages & Runtimes

- [Source-to-JavaScript Transpilers](https://awesome-repositories.com/f/programming-languages-runtimes/javascript-transpilers/source-to-javascript-transpilers.md) — Translates Ruby source code into functionally equivalent JavaScript for browser and Node.js execution.
- [Ruby Environments](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/language-runtimes/ruby-environments.md) — Implements a runtime environment that allows Ruby to execute within a web browser.
- [Source Code Compilers](https://awesome-repositories.com/f/programming-languages-runtimes/source-code-compilers.md) — Transforms high-level Ruby source code into an executable format for browser environments. ([source](https://cdn.jsdelivr.net/gh/opal/opal@main/README.md))
- [Abstract Syntax Tree Parsing](https://awesome-repositories.com/f/programming-languages-runtimes/abstract-syntax-tree-parsing.md) — Provides abstract syntax tree parsing to map Ruby semantics onto JavaScript expressions.
- [Embedded Script Execution](https://awesome-repositories.com/f/programming-languages-runtimes/embedded-script-execution.md) — Allows Ruby logic to be executed within a larger web application context.
- [Standard Library Polyfills](https://awesome-repositories.com/f/programming-languages-runtimes/standard-library-polyfills.md) — Implements Ruby standard library behavior using JavaScript prototypes to maintain language consistency.

### Development Tools & Productivity

- [Runtime Distribution Bundles](https://awesome-repositories.com/f/development-tools-productivity/dependency-bundling/runtime-distribution-bundles.md) — Bundles core libraries and required dependencies into a single distribution string for browser execution. ([source](https://cdn.jsdelivr.net/gh/opal/opal@main/README.md))

### Software Engineering & Architecture

- [Standalone Runtime Bundling](https://awesome-repositories.com/f/software-engineering-architecture/embedded-runtimes/standalone-runtime-bundling.md) — Combines the core language implementation and dependencies into a single portable distribution file.

### Web Development

- [Client-Side Ruby Frameworks](https://awesome-repositories.com/f/web-development/client-side-ruby-frameworks.md) — Provides a toolset for building client-side web applications using Ruby instead of JavaScript.
- [Embedded Logic Evaluators](https://awesome-repositories.com/f/web-development/markup-parsers/embedded-logic-evaluators.md) — Evaluates Ruby logic directly within HTML markup files using a specialized parser. ([source](https://cdn.jsdelivr.net/gh/opal/opal@main/README.md))
- [Ruby Template Engines](https://awesome-repositories.com/f/web-development/ruby-template-engines.md) — Implements a template system to generate markup using embedded Ruby logic.

### Part of an Awesome List

- [Language Implementations](https://awesome-repositories.com/f/awesome-lists/devtools/language-implementations.md) — Compiler for translating Ruby to JavaScript.
- [Ruby Frameworks and Tools](https://awesome-repositories.com/f/awesome-lists/devtools/ruby-frameworks-and-tools.md) — Ruby to JavaScript transpiler.
