GContracts is a Groovy library that implements Design by Contract using annotations. It allows specifying preconditions, postconditions, and class invariants using annotations like @Requires, @Ensures, and @Invariant. These annotations take closure expressions that are evaluated at compile-time and run-time to check conditions. GContracts works with Groovy 1.6 and higher and has features like labeling, interface contracts, inheritance support, and integration with Grails.