Suggestion for a helpful Rust/web project

We currently track compiler performance at: http://perf.rust-lang.org. This is a really important source of data for the compiler team and helps us keep on top of compile time regressions and track improvements to compile time (an important goal for the Rust compiler). It's a piece of infrastructure we're keen to keep around and to extend

However, it is a crufty bit of software. The backend is a mess of bash scripts, Python data processing, and a node.js web server (which also does a bunch of data processing). It regularly crashes or runs out of memory. It would all benefit from being rewritten from the ground up in Rust. This would be a medium sized web project and hopefully a pretty interesting one. You probably don't need much experience with anything other that Rust; knowledge of general web stuff and Hyper (or one of the other Rust web frameworks) would be useful.

I'm very happy to help out and mentor. Let me know if you're interested!

7 Likes

Hello I can help this project one day (8 hours) in every weeks.
if you want can speak detailed

I would also be interested in working on something like this. For reference this is the source for the webapp you're talking about, right?

Hi, I will be happy to help out with this project. I was actually looking for something to work on and your tweet showed up.

I'd be interested in working on this. I've started looking into the current code, and it seems like an interesting project.

Please let me know how I can get started! I have decent experience with Rust; and look forward to working on this.

I'd be glad to help

@nrc can probably answer best but I think a good first step would to port the python scripts in GitHub - rust-lang-nursery/rustc-timing-scripts: Scripts for measuring rustc performance to Rust. Those scripts are used to convert the raw logs to the json format as found in GitHub - rust-lang-nursery/rustc-timing: Data for timing rustc. This part of the project could be replaced with a Rust version without needing to modify the rest of the project.

I've started work on converting the JS backend into Rust, so I'll leave the scripts for someone else, at least for now. From what I've seen, they shouldn't be too hard to convert, but I may be wrong.

Hi thanks for the interest everyone! Just to clarify the work that needs doing is converting the node.js backend at GitHub - rust-lang/rustc-perf: Website for graphing performance of rustc to Rust, the other scripts at /rustc-timing-scripts can probably be left alone for now.

I've chatted to some of you on irc, that's probably as many people as can usefully contribute to this right now. I have some other projects I'd be happy to mentor on (both more compiler/tools than web stuff) - rustfmt and rustw. If you're particularly interested in web backend stuff, then rust-z (@brson) or the new RFC tool (@dikaiosune) could probably do with help. If you want more info about any of these projects, please ping me on irc.

I'd definitely suggest rusty-dash (source) as a place fertile for contributions. There's another irlo thread for coordinating that work. One difficulty with that project is that the work to be done is not so clearly tasked out right now, but I hope we'll rectify that in the next few weeks, and if you talk directly to @dikaiosune he can help figure out what to do next.

On the subject of performance monitoring I posted a relevant rant over the weekend (not aware that this thread existed). The most important point I tried to make was that I think it is vital that we get perf testing on individual PRs, and I proposed an architecture that might make that possible. I'd urge those working on perf.rust-lang.org to think about how to get from here to there.