Development update: New Rell IDE

Development update: New Rell IDE

Chromia dapp developers have a new tool – a brand new Rell IDE based on Eclipse platform. It's currently being tested by a small group of developers and will be released to the public in coming weeks.

Our previous browser-based Rell IDE, also known as "DevPreview" was designed to give developers a quick way to experiment with Rell in a friendly manner - it can be easily installed via Docker and has no requirements. But it's not convenient for development of larger and more complex project, as it does not support all project organization and configuration options. Thus developers working on such projects had to resort to using basic editors and command line tools.

We want to give Chromia developers the best experience, and for this reason in the last couple of months we have been prioritizing development of a new Rell IDE which can be installed as an Eclipse plugin. Eclipse is the most powerful open source IDE platform familiar to millions of developers, known for its vast ecosystem. The fact that both Rell runtime and Eclipse are based on the JVM allowed us to integrate Rell runtime right into the IDE, allowing the most accurate interpretation of syntax and semantics in the editor.

Compared to the older browser-based IDE, the new IDE adds support for complex projects with multiple directories, libraries, and modules. It also supports multiple run profiles which allows developers to run multiple blockchains with multiple modules, test blockchain configuration changes (i.e. code upgrade) and so on. Besides that, it supports real-time validation of not just syntax but also language semantics, giving the developer fast feedback on code as it is being written.

A Postchain node can be launched or updated with one click:

Rell IDE running a node

In the future we plan to make the IDE even more powerful and convenient. Planned features include:

  • Running multi-node Postchain cluster
  • Deployment to AWS and managed blockchain clusters
  • Interactive debugging
  • Automated testing
  • Support for other IDEs/editors (like VS Code) using LSP (Language Server Protocol)

Usually we do not mention individual team members in development updates as development is a team effort. But this time we'd like to highlight the absolutely extraordinary work of Anton Karmanov who implemented the entire Rell Eclipse plugin all by himself. Anton found a clever way to integrate the Rell runtime with the Eclipse Xtext framework using advanced metaprogramming techniques. This not only allowed us to create the Rell IDE within a short time frame, but also ensured a high degree of accuracy. Further, it saves a lot of daunting work in future, as new versions of the Rell plugin can be built automatically when the language is updated. This allows us to focus on new features instead of wasting time on maintenance and duplicate work.

Also we would like to thank Eclipse and Xtext open source contributors who made this all possible.

Finally, we'd like to note that the old browser-based Rell IDE is not retired, but is currently being transformed into Rell Cloud IDE. It would allow developers to experiment with Rell programming without installing anything on their computer, running their Postchain node in the cloud.