SoCrates

Studying how Rust traits, and the code that depends on them, evolve across crate versions.

⚠️ This project is a work in progress.

Traits are the backbone of Rust’s type system: a library defines a trait, other crates implement it, and generic code is written against it. When a trait changes, or an implementation gets its contract wrong, the effects ripple through every crate that depends on it. SoCrates studies how traits and their uses evolve across crate versions in the Rust ecosystem, and what that means for the safety of the code built on them. If you want to talk more about this work, email me at mhassnain@ucdavis.edu.