[rust-dev] Student projects/internships
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.
> - ...
> Any thoughts?
* 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