Cairo's Summer of Code Pool of Ideas

The cairo project is glad to be participating in Google Summer of Code 2008. See the cairo announcement for an overview of the process to be followed by students, then come back here for a list of potential project ideas.

Why cairo is cool

Cairo has a great community of users and developers. We use a single mailing list for both user questions and development discussions. This has proved to be a very effective way of helping users become developers gradually. It all starts by submitting that small first patch. The same thing applies to our IRC channel. Please feel free to join and watch for a few days, to get the hang of it. We never say "this is not the right list/channel for this question/discussion". Mailing list and IRC information can be found on the cairo contact page.

Overview of the library

Cairo is a library written in the C programming language. Its main external dependency is a library called pixman that does the software rendering for cairo. Most of the ideas below do not touch on Pixman though. See cairo download for instructions on how to obtain the cairo source code.

Cairo has a very clean code base that is a pleasure to read. We believe that source code should be written with a primary goal to make it easy to be read by humans. The file names are very clean and instantly give an easily understandable map of the code base. For example, the cairo xlib surface backend is implemented in src/cairo-xlib-surface.c. All the other xlib-specific code is under src/cairo-xlib-*.c names too. The code itself is fairly well documented with comments and documentation blocks for all public symbols. The best way to start seeing how things work, after you have checked the documentation and know how to use cairo, is to start skimming through src/cairo.c and checking out other source files from there.

Summer of Code Project Ideas

Each idea below is given a difficulty estimate, (Easy, Medium, or Hard), determined by one of the potential mentors. Please use these ratings to help choose an appropriate project. If a project description uses terms you've never heard of and is also rated Hard, then you can know that that's a project that will provide plenty of learning experiences for you. If a project is rated as Easy, then maybe it won't keep your interest and give you the intellectual challenge you're looking for.

Website improvements

Cairo's website is run using ikiwiki. See here for more details about how to get the website source code.