What is cfengine 3?

Cfengine 3 is a complete rewrite of the cfengine front-end. It will include more tools for analysis and access to online web services.

Work on cfengine 3 has now entered the programming phase, after much in-depth study of both theoretical and practical issues.. Cfengine 3 will be written in plain C, just like previous versions. There are two main reasons: one is that initial test projects have shown that implementing even current functionality in C++ leads to highly cumbersome programming style that is unfamiliar to current cfengine programmers. The second reason is that our research has shown that object orientation is not the right model for cfengine's service oriented model.

Since the move to cfengine 3 will be a big one, cfengine 2 will be supported and will grow along side cfengine 3 for the foreseeable future. The two programs will inter-operate. In this way, cfengine 3 will mainly provide a new and more consistent front-end to the proven capabilities of cfengine.

The aim of cfengine 3 is to remove the limitations from the organically grown cfengine 2, and use the experience gained, and existing tool-set, to write a new platform that observes the proven requirements of convergence and locking from the research that cfengine inspired. It will feature: