cairus - portland state universitywiki.cs.pdx.edu/capstone/fall_2016/team... · step 3 create epic...
TRANSCRIPT
CairusA reimplementation of the Cairo vector graphics library in Rust
The Cairus TeamAnswer the question, “Why are we the ones to solve the problem we identified?”
Kyle Kneitinger Courtney Anderson-Clark DJ Sabo Evan Smelser
Bobby Eshlemen Sara Ferdousi Troy Routley
What is Cairo? A 2D vector graphics library written in C
Includes functions for strokes, filling Bezier splines, compositing and antialiasing
Used in all graphics of Firefox and GTK; rendering in WebKit, and many others
Experimental backend for OpenGl
Why Rust?
- Thread Safe- No Segmentation Faults- No Garbage Collector- Type Inference- Cargo Build
System/Package Manager- Strives for “Abstraction
without Overhead”
Who is this for?a few rust projects are already using a cairo binding
what if they had a native implementation?
gtk-rs
a reimplementationof GTK
Mozilla Servo
a next-gen browserin rust
the free & open source software
community
cairo_surface_create()
cairo_create()
cairo_paint()
cairo_destroy()
cairo_surface_destroy()
Minimal ProjectImplement the Cairo drawing model
...Stretch Goals
Fills, Strokes & Shapes
Additional Compositing Modes
Bezier Curves
SLACKCross-Platform Communication
Google DocsCollaborative Documents
TRELLOSupports Agile Process
Travis CIAutomated Testing and Deployment to crates.io
GITHUBPublic, Open Source
Repository
Our Workflow in Action
Step 1Clarification of requirements for the project. Setup tools
Step 2Understand Cairo code base and learn Rust
Step 3Create Epic for each feature. Break it down into stories in Trello
Our Workflow in Action
Step 4Team members work on assigned stories
Step 5Code review
Step 6Testing and Validation
Risk Assessment Analysis
Low Risk
High Likelihood
Git Workflow Issues
Medium Risk
High Likelihood
Difficulties with Rust
High Risk
Low Likelihood
Unexpected Requirements
What now?By beginning of next term:
● All core story tickets are created● Mastery of Tools of Workflow through
practice repo
Goals:
● Beginning of March: Complete MVP● Remaining Time: Work on Stretch Goals
CairusQuestions?