Rust entries in Highload Cup (contest)


#1

Apparently there was a competition called the Highload Cup where contestants submitted a web server implementation in various languages. That web server was then subjected to lots of concurrent client requests. Entries were judged on correctness of their results and also on their response times.

Turns out there were a few Rust entries but none of them ended up anywhere near the top. With the caveat that slow software can be written in any language, I must say it’s a bit disappointing that no Rust entry shined here. As has been discussed on this forum and elsewhere, Rust needs these types of wins (and/or “killer projects”) to make selling it easier.

Did anyone here participate in this contest or know any more details beyond what’s in this Reddit thread: https://www.reddit.com/r/rust/comments/6z7o6e/rust_showed_quiet_poor_results_on_highload/

Someone’s experience participating is detailed here: https://www.reddit.com/r/rust/comments/6zdvza/my_experience_participating_in_highload_cup_re/

I think this comes back to the “what does Rust need for the server” topic.

Thoughts?


#2

I think this is essentially down to having good ecosystem of web framework libraries. One of the participants basically summarized his experience as this:

  • Lack of async web frameworks
  • using serde on ArrayString
  • clearer documentation on queueing requests
  • example on how to calculate difference between a given Unix Timestamp and now
  • how to deal in serde with a JSON that has some missing fields

#3

Yeah, I saw that feedback in the Reddit post. I kind of wish someone very proficient in Rust would’ve participated and thus not been afraid to use lower level APIs/libs and/or had a better idea of how to optimize the code. It’s unfortunate that entries written in Go and Java beat out Rust here (not to say those languages/runtimes are slow though).

But I think this is a decent measuring stick for “what’s needed on the server”, at least if server = web server.