×

Status message

A creation review has been created for this proposal.

Eclipse Corrosion: the Eclipse IDE for Rust

Basics
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project: 
Background: 

The Rust programming language is continuing to grow in popularity as the 5th most discussed project on GitHub (https://octoverse.github.com/). However, almost 10% of Rust users are looking for better IDE support and 5% of past users stopped using Rust due to it's lacking IDE support (https://blog.rust-lang.org/2017/09/05/Rust-2017-Survey-Results.html). The Eclipse marketplace does have RustDT, which excluding Eclipse Corrosion, is the only Rust support plugin, but as of 2017, RustDT is no longer actively maintained (https://github.com/RustDT/RustDT).

Within one year VSCode went from 3.8% to 34% of the Rust developer market share due to its available Rust Language Server integration. There is the opportunity to develop and popularize a Language Server based plugin for complete Rust project support in Eclipse. This not only helps those who are looking for better IDE support but exposes more Eclipse IDE users to Rust, and more Rust users to Eclipse.

Scope: 

The scope of the project is to provide development tools for Rust and Cargo based Rust applications in the Eclipse IDE. This includes creating projects, rich edition of source code files and manifest files, running and debugging code under development, running test suites, and packaging and deploying projects.

Support for in IDE Cargo Crate management is currently out of scope but can be reconsidered in the future.

Description: 

Eclipse Corrosion provides development tools for Rust and Cargo inside the Eclipse IDE.

Why Here?: 

Joining the Eclipse Community, we expect Corrosion to get higher visibility, leading to more users and contributors. Getting a more active community raises the quality of Corrosion through contributions and raised issues, making a better Rust development process for all Eclipse users.

Eclipse is a leading IDE for Java, C, and C++, which make up 3 of the 4 most common non-Rust languages used by Rust developers (https://blog.rust-lang.org/images/2016-06-Survey/what_language.png). This cross in communities will allow for easier communication and shared collaboration with other Eclipse.org projects.

Depending on the future popularity of Rust, we'd like to consider the creating of an "Eclipse IDE for Rust developers" just like other typical Eclipse IDE package. Being part of Eclipse Community is a requirement to succeed in implementing this and will hopefully help the adoption of the Rust programming language.

Project Scheduling: 

Eclipse Corrosion already has automated builds and is able to produce a build anytime.

We'd like to make a 1st incubation release of Eclipse Corrosion 0.1.0 in the week after it's moved under the Eclipse.org community.

Future Work: 

Bugfix and incremental improvements will be happening on the existing code.

An Eclipse Corrosion 1.0.0 version will be released once debug support is added. If implemented for Rust, support will be added using the Debug Protocol, but in the mean time using CDT GDB.

Beyond this, as the user base grows, more requirments will come to light and added, including further integration of `cargo` commands.

People
Project Leads: 
Interested Parties: 
  • Red Hat Inc.
Source Code
Initial Contribution: 

The initial contribution comes with:

  • Wizards to bootstrap a Cargo based Rust project (delegating to `cargo` CLI)
  • Rich editor for Rust, with content-assist, hover, error reporting, find references, jump to declaration, hierarchical navigation (outline)... relying on the Rust Language Server and TextMate grammars
  • Launch Configuration to run project code from Eclipse IDE (delegating to `cargo` CLI)
  • Wizard to package Cargo Based Rust projects into distributable tarballs (delegating to `cargo` CLI)
  • Preference options to install rust compiler and language server along with installing new toolchains and setting the system default toolchain

 

Source Repository Type: