Having a standalone executable of Facter would allow for easily shipping Facter down to a node and gathering facts.
This would enable Bolt to gather facts for nodes without installing the full puppet-agent package.
Possible options: https://github.com/pmq20/ruby-packer
This is a spike to determine how technically feasible it is to make Facter into a single binary.
Making the binary for EL is straightforward:
Steps to build on el8: 1. prepare Facter repo
2. prepare rubyc
3. build facter
facter changes: https://github.com/puppetlabs/facter/compare/main...gimmyxd:ruby-packer
Can be built easily on OSX too, using the vmpooler images.
In terms of performance, the standalone executable has a slight improvement over running from gem using bundler, around 5%(tested on OSX 10.15 and Centos 8)
Some limitations:
[^facter_el8]
executable build on el8: [^facter_el8]