fondo de menu

Current version: 0.9

CRUST is a C static analyzer that allows to have in C language the same memory ownership model than in RUST language.

CRUST doesn't create a new language, but just adds to C the bare minimum to allow a C static analyzer to know when a pointer must be managed. It doesn't need a new compiler, neither fancy libraries nor obscure macros with unknown effects. The code is pure C language, so it can be used even in microcontrollers.

With CRUST it is easier to write C code without dangling pointers or memory leaks, and with the big advantage of not needing to learn a new language.

Download zone

GIT Repository

History of versions

  • version 0.9 (2019/01/06)
  • Added support for _Static_assert
  • Added preliminary support for Statements and Declarations in Expressions
  • version 0.8 (2018/12/25)
  • Add support for CONST and RESTRICT statements in pointers
  • Add support for array syntax in function declaration parameters
  • version 0.7 (2018/12/24)
  • Now doesn't return an error when returning NULL as borrowed
  • version 0.6 (2018/10/03)
  • Fixed case when a switch/case block lacks a 'default' statement
  • version 0.5 (2018/10/01)
  • Only checks function declarations in external files if their definition is in the current file
  • version 0.4 (2018/09/27)
  • Forbides to define functions with empty parameters list; they must have, in case they don't need parameters, 'void'
  • version 0.3 (2018/08/25)
  • Allows to generate the *crust.h* file just calling crust, instead of having to copy it from elsewhere
  • version 0.2 (2018/08/23)
  • First public version