This page is from the Fall 2013 course.
It may be replaced with an updated version later this semester. [Permalink to this version]

Project Ideas

This page collects some ideas for possible projects. You should view this only as a starting point to get you thinking about interesting things you might do. As discussed in Class 16, there are no requirements for the project, other than it should satisfy well at least two of these desired properties:

Do something that is fun (for you to do, and others to see), relevant (to the class), technically interesting (to you and me), and useful (at least to you, hopefully to many). You probably can’t maximize all of these! It is okay to sacrifice one or two of them to increase others. A good project should be strong on at least 2 of these, which is much better than being mediocre of all four.

Although these suggestions focus on Rust-related projects, it it not required to use Rust, although it will be easier to make a case for your project being relevant if it does (but merely using Rust is not enough to argue that your project is relevant).

Lists of Ideas

Wanted Libraries for Rust

Rust Issues List

Rust Computer Graphics and Game Development

Ideas from Class

Trusting Trust (from Class 13) - consider how easy it would be to insert a backdoor into the Rust compiler or runtime system, and to exploit that to compromise an otherwise-secure system.

Background Gashing (from PS3) - A more ambitious way to incorporate shell commands would support running the shell commands in the background, and send the results without them back to the client but with a hook to incorporate those results in the page later. Then, when the shell command responds, the results would be sent to the client and incorporated into the client-side DOM later. This would make it easy to build sites the provide clients with quick partial responses (to expensive requests) which would encourage them to wait for the rest of the response rather than leaving for a competitor's site. This requires some familiarity with client-side web programming, but it seems like a feature that a zhtta server should support.

App Server (from PS3) Many web frameworks exists that make it easy to build web services that instead of just serving static files will run application code in response to requests to provide dynamic behavior. A simple example is web.py (this was originally developed by Aaron Swartz to run reddit). A simple web app framework built in Rust would have many advantages including safety, high performance, and easy concurrency over existing web app frameworks.

Open Piazza (from PS3) - I believe one team is planning to work on this already.

Memory Management

Garbage Collection - study how automatic memory management is done in Rust and develop techniques to improve it.

GPU

GPU Programming in Rust