[rust-dev] Student projects/internships

Patrick Walton pwalton at mozilla.com
Fri Jan 13 11:38:56 PST 2012

On 1/13/12 4:25 AM, David Rajchenbach-Teller wrote:
> 	Dear list,
>   As some of you know, I am one of the persons in charge of relationships
> to Universities. As a big fan of Rust, I would love submitting
> Rust-related student projects and/or internships.
>  From the top of my heads, I am considering the following topics, and I
> would like to hear your thoughts about them and the general idea of
> getting Rust in the hands of students:
> - writing a modern http server (or an irc server) in Rust;
> - contributing to some of the "easy" bugs;
> - getting Rust to produce Android binaries (it doesn't yet, does it?);
> - developing a web framework for Rust;
> - adding high-level bindings to a number of system-level libraries (e.g.
> nss);
> - ...
> Any thoughts?

Some ideas:

* If you're looking for bindings for students to work on, the 
SpiderMonkey bindings (https://github.com/pcwalton/rust-spidermonkey) 
could use help.

* For Servo we're also interested in bindings to Azure (the 
cross-platform rendering library), as well as bindings to OpenGL and the 
native windowing APIs.

* Monomorphizing is something I would really like to try, but it's a 
fair amount of work. Possibly too ambitious for a student project. 
Serializing ASTs might be doable as a project though, and it's an 
important step in monomorphizing... but also fairly mechanical and not 
too interesting from a pedagogical perspective.

* Making message passing more efficient. Brian had some ideas to use RCU 
here. This is fun low-level hacking.

* An API to allow third-party libraries to interoperate with Rust host 
programs better (allowing Rust strings to be easily created from C, 
sending messages, etc.) This is pretty easy and helps students get 
acquainted with real codebases.

* Implementing prototypes of some of the language feature proposals, 
like formalized DPS, fixed-length arrays, classes, regions, traits... 
Regions in particular are interesting from a pedagogical point of view 
because they're well-studied in the literature and they're fairly 
straightforward to implement in Rust -- it's mostly all typechecker work.


More information about the Rust-dev mailing list