Skip to main content

Introduction

This section covers the advantages of Rell and its position within the Chromia platform.

info

You can read Rell's release notes here.

Rell language

Most dapp blockchain platforms use virtual machines of various kinds. But a traditional virtual machine architecture doesn't work very well with the Chromia relational data model, as we need a way to encode queries and operations. For this reason, ChromaWay is taking a more language-centric approach: a newly developed language called Rell (Relational language) that's used for dapp programming. This language allows programmers to describe the data model/schema, queries, and procedural app code.

Rell code gets compiled to an intermediate binary format, which is code for a specialized virtual machine. Chromia nodes then translate queries in this code into SQL (while ensuring this translation is safe) and execute code as needed using an interpreter or compiler.

Features that empower developers

  • Type safety: Rell is completely type-safe, ensuring that types returned by queries match those used in procedural code. This minimizes errors and safeguards against financial losses.
  • Safety first: Arithmetic operations are protected against overflows, and explicit authorization checks are mandatory. This safety-first approach provides developers with confidence and peace of mind.
  • Concise and expressive: Rell doesn't have the unnecessary verbosity of SQL, focusing on conveying essential details with clarity and precision. Data definition tasks become up to 7 times more compact, boosting developer productivity.
  • Meta-programming power: Rell allows you to bundle features as reusable templates. This empowers you to eliminate repetitive code and accelerate development.

Our research indicated that no existing language or environment has this feature set, and thus, the development of a new language was necessary. We designed Rell in such a way that it's easy to learn for programmers:

  • Programmers can use relational programming idioms they're already familiar with. However, they don't have to go out of their way to express everything through relational algebra: Rell can seamlessly merge relational constructs with procedural programming.
  • The language is deliberately similar to modern programming languages like JavaScript and Kotlin. A familiar language is easier to adapt to, and our internal tests show that programmers can become proficient in Rell in a matter of days. In contrast, the ALGOL-style syntax of PL/SQL generally needs to be more intuitive to modern developers.

Rell structure

As mentioned, Rell is a language designed for relational blockchain programming. The structure of a decentralized app built in Rell looks something like this:

Rell structureRell structure

The end user communicates with the client, sending transactions to Rell using a postchain client.

info

If you want to learn Rell from the ground up, you should take the Rell masterclass.