As I mentioned here the other day, nspectre uses a customised version of the Ader Template Engine. The Ader Template Engine is the only dependency of nspectre. The customisation is that the Ader Template Engine suppresses template exceptions or outputs them inline. Since nspectre uses templates to generate code that is compiled at runtime, it is more useful to have the template engine throw exceptions – this provides more useful feedback than the compilation exception that would otherwise occur.
Originally – before release – nspectre used NVelocity. The switch to the Ader Template Engine halved the time the unit tests took to run. The change between the template languages was fairly easy. NVelocity has resource loading functionality, so I had to add the ResourceLocator class. It seems reasonable to me that a templating engine should handle templates and no more, so that wasn’t a major concern.