Gecode is an attempt to construct an open, free, portable, accessible,
and efficient environment for developing constraint-based systems and
applications.

Gecode is radically open for programming: it can be easily
interfaced to other systems. It supports the programming of new
propagators (as implementation of constraints), branching strategies,
and search engines. New variable domains can be programmed at the same
level of efficiency as finite domain and integer set variables that
come predefined with Gecode.