Experimental Features: Native Facter

This version is out of date. For current versions, see Puppet packages and versions.

Warning: This document describes an experimental feature, which is not officially supported. See here for more information about experimental features in Puppet, especially if you are using Puppet Enterprise. Acceptance testing for Native Facter has been minimal, and we do not recommend using it in a production environment.

Native Facter is a rewrite of Facter in C++. Native Facter does the same job that Facter does, but with better performance.


Native Facter 0.2.0 supports OSX and Linux; Native Facter 0.3.0 will support Windows and Solaris as well.

Installing Native Facter

We don’t yet have release packages for Native Facter, but we do have nightly builds available. The project’s README has the most current information about packaging and installation for various systems.

Enabling Native Facter

To enable Native Facter, set cfacter = true in the main section of puppet.conf on each of your agent nodes.

Alternately, for one-off tests, you can set --cfacter on the command line when running puppet apply or puppet agent --test.

Native Facter Works Like Facter

We’ve implemented as much of Facter 2.2 functionality as possible. Native Facter supports all core facts as well as external facts and Ruby custom facts. The Native Facter extensibility features page contains the latest feature information.

Unsupported Features

For custom facts, the timeout property is unsupported. The option is ignored, and fact resolution is not scoped to a particular time limit. Setting this property causes an error.

See an issue? Please file a JIRA ticket in our [DOCUMENTATION] project
Puppet sites use proprietary and third-party cookies. By using our sites, you agree to our cookie policy.