https://github.com/puppetlabs/facter
Collect and display system facts
https://github.com/puppetlabs/facter
Keywords from Contributors
rubocop gitlab ruby-gem rubygems openssl tls feature-flag rspec code-formatter static-code-analysis
Last synced: about 16 hours ago
JSON representation
Repository metadata
Collect and display system facts
- Host: GitHub
- URL: https://github.com/puppetlabs/facter
- Owner: puppetlabs
- License: apache-2.0
- Created: 2010-09-14T19:31:04.000Z (about 15 years ago)
- Default Branch: main
- Last Pushed: 2025-11-21T13:12:31.000Z (19 days ago)
- Last Synced: 2025-11-28T06:43:47.594Z (12 days ago)
- Language: Ruby
- Homepage: https://puppet.com/open-source/#osp
- Size: 15.8 MB
- Stars: 631
- Watchers: 186
- Forks: 496
- Open Issues: 43
- Releases: 25
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: CODEOWNERS
README.md
facter
Facter is a command-line tool that gathers basic facts about nodes (systems)
such as hardware details, network settings, OS type and version, and more.
These facts are made available as variables in your Puppet manifests and can be
used to inform conditional expressions in Puppet.
Documentation
Documentation for the Facter project can be found on the Puppet Docs
site.
Supported platforms
- Linux
- macOS
- Windows
- Solaris
- AIX
Requirements
- Ruby 2.5+
- FFI (for facts like
mountpointswhich are resolved using C API calls)
Basic concepts
The project has three main parts, the framework, facts and resolvers.
In the framework we implement functionality that is agnostic of specific facts like parsing user input, formatting output, etc.
Facts are the nuggets of information that will be provided by facter e.g. os.name, networking.interfaces, etc.
Resolvers have the role of gathering data from the system.
For example a resolver can execute a command on the system, can read a file or any operation that retrieves some data from a single source on the system.
sequenceDiagram
participant user
participant framework
participant fact
participant resolver
user->>framework: user query
framework->>fact: create
fact->>resolver: resolve
resolver->>fact: system information
fact->>framework: fact value
framework->>user: formatted user output
Getting started
After cloning the project, run bundle install to install all dependencies.
You can run facter by executing ./bin/facter.
The command will output all the facts that facter detected for the current OS.
The implementation can be validated locally by running bundle exec rake check.
Goals - fast, easy, compatible
- Gain performance similar to the C++ version of Facter. We plan to achieve this goal by gathering multiple facts with only one call and by using the faster Win32 API rather than WMI for the Windows implementation.
- Facilitate community contribution. At the moment, C++ presents a possible impediment for community contributions.
- Enable native integration with other Ruby-based projects such as Bolt and puppet.
- Enable native integration for custom facts.
- Provide 100% compatibility with C++ Facter (drop-in replacement).
Licensing
See LICENSE file. Puppet is licensed by Puppet, Inc. under the Apache license. Puppet, Inc. can be contacted at: info@puppet.com
Owner metadata
- Name: Puppet
- Login: puppetlabs
- Email:
- Kind: organization
- Description:
- Website: http://www.puppet.com/
- Location: Portland, OR
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/234268?v=4
- Repositories: 694
- Last ynced at: 2023-04-10T07:28:02.825Z
- Profile URL: https://github.com/puppetlabs
GitHub Events
Total
- Issues event: 12
- Watch event: 12
- Delete event: 2
- Issue comment event: 58
- Push event: 10
- Pull request review comment event: 7
- Pull request review event: 13
- Pull request event: 19
- Fork event: 7
- Create event: 5
Last Year
- Issues event: 8
- Watch event: 9
- Delete event: 2
- Issue comment event: 30
- Push event: 4
- Pull request event: 6
- Pull request review comment event: 6
- Pull request review event: 7
- Fork event: 5
- Create event: 4
Committers metadata
Last synced: 4 days ago
Total Commits: 1,633
Total Committers: 78
Avg Commits per committer: 20.936
Development Distribution Score (DDS): 0.785
Commits in past year: 30
Committers in past year: 5
Avg Commits per committer in past year: 6.0
Development Distribution Score (DDS) in past year: 0.3
| Name | Commits | |
|---|---|---|
| Bogdan Irimie | b****e@p****m | 351 |
| Josh Cooper | j****r | 162 |
| oanatmaria | 4****a | 159 |
| Sebastian Miclea | s****a@p****m | 95 |
| Michael Hashizume | m****e@p****m | 93 |
| gimmy | g****u@p****m | 89 |
| Florin Dragos | f****s | 61 |
| Filipovici-Andrei | F****i | 59 |
| Jenkins CI | ci@p****m | 55 |
| Oana Tanasoiu | o****u@p****m | 53 |
| Gabriel Nagy | g****y@p****m | 48 |
| Luchian Nemes | l****s@p****m | 32 |
| Romain Tartière | r****n@b****g | 31 |
| gigicampean | 5****n | 26 |
| Andrei Filipovici | a****i@a****t | 26 |
| mihaibuzgau | m****u@p****m | 25 |
| Bogdan Irimie | i****n@p****m | 24 |
| Aria Li | a****i@p****m | 22 |
| Ciprian Badescu | c****u@p****m | 20 |
| Bobosila Victor | v****1@g****m | 19 |
| Dorin Pleava | d****a@p****m | 19 |
| Tony Vu | v****y@g****m | 17 |
| Alexandru Popa | a****n@g****m | 16 |
| Christopher Thorn | c****n@p****m | 15 |
| ciprianbadescu | 5****u | 7 |
| Alex Avlonitis | A****s | 6 |
| Shubham Shinde | s****e@p****m | 6 |
| Pat Riehecky | r****y@f****v | 6 |
| Ewoud Kohl van Wijngaarden | e****d@k****l | 5 |
| Tim Meusel | t****m@b****e | 5 |
| and 48 more... | ||
Committer domains:
- puppet.com: 16
- puppetlabs.com: 2
- linkedin.com: 1
- olmheim.com: 1
- riseup.net: 1
- boobah.com: 1
- kosada.com: 1
- quicinc.com: 1
- aglaz.de: 1
- l00-bugdead-prods.de: 1
- mbuki-mvuki.org: 1
- bastelfreak.de: 1
- kohlvanwijngaarden.nl: 1
- fnal.gov: 1
- perforce.com: 1
- andreis-mbp.eth.tsr.corp.puppet.net: 1
- next-development.com: 1
- liu.se: 1
- beetjevreemd.nl: 1
- gridscale.io: 1
- nwops.io: 1
- bedag.ch: 1
- japannext.co.jp: 1
- ali.ch: 1
- box.com: 1
- thegoldfish.org: 1
- redhat.com: 1
- verweg.com: 1
- isc.org: 1
- symmetryinvestments.com: 1
- johnbond.org: 1
- cern.ch: 1
- blogreen.org: 1
Issue and Pull Request metadata
Last synced: 4 days ago
Total issues: 43
Total pull requests: 343
Average time to close issues: about 1 month
Average time to close pull requests: about 2 months
Total issue authors: 28
Total pull request authors: 43
Average comments per issue: 2.3
Average comments per pull request: 1.92
Merged pull request: 248
Bot issues: 0
Bot pull requests: 5
Past year issues: 4
Past year pull requests: 10
Past year average time to close issues: 12 days
Past year average time to close pull requests: about 16 hours
Past year issue authors: 3
Past year pull request authors: 7
Past year average comments per issue: 1.5
Past year average comments per pull request: 0.8
Past year merged pull request: 2
Past year bot issues: 0
Past year bot pull requests: 3
Top Issue Authors
- bastelfreak (6)
- jcpunk (3)
- sharewax (3)
- mhashizume (3)
- joshcooper (3)
- SaltyAlan (2)
- jonathannewman (2)
- morsik (1)
- personjs (1)
- rismoney (1)
- archaron (1)
- molhamalnasr (1)
- Hegelund (1)
- aqueos (1)
- tvpartytonight (1)
Top Pull Request Authors
- joshcooper (106)
- mhashizume (71)
- AriaXLi (26)
- tvpartytonight (20)
- bastelfreak (12)
- smortex (12)
- cthorn42 (10)
- jcpunk (9)
- lollipopman (6)
- shubhamshinde360 (6)
- skyamgarp (4)
- jonathannewman (4)
- smokris (4)
- kenyon (4)
- mminkus (3)
Top Issue Labels
- bug (26)
- enhancement (14)
- triaged (11)
- maintenance (1)
- accepted (1)
Top Pull Request Labels
- maintenance (64)
- bug (39)
- enhancement (37)
- dependencies (3)
- github_actions (3)
- blocked (2)
- triaged (2)
Package metadata
- Total packages: 3
-
Total downloads:
- rubygems: 97,175,638 total
- Total docker downloads: 254,295,822
- Total dependent packages: 103 (may contain duplicates)
- Total dependent repositories: 14,131 (may contain duplicates)
- Total versions: 541
- Total maintainers: 1
- Total advisories: 2
gem.coop: facter
You can prove anything with facts!
- Homepage: https://github.com/puppetlabs/facter
- Documentation: http://www.rubydoc.info/gems/facter/
- Licenses: Apache-2.0
- Latest release: 4.10.0 (published about 1 year ago)
- Last Synced: 2025-12-09T11:03:16.934Z (1 day ago)
- Versions: 262
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 48,585,987 Total
- Docker Downloads: 127,147,911
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 0.169%
- Downloads: 0.508%
- Maintainers (1)
rubygems.org: facter
You can prove anything with facts!
- Homepage: https://github.com/puppetlabs/facter
- Documentation: http://www.rubydoc.info/gems/facter/
- Licenses: Apache-2.0
- Latest release: 4.10.0 (published about 1 year ago)
- Last Synced: 2025-12-09T18:01:33.871Z (about 20 hours ago)
- Versions: 263
- Dependent Packages: 103
- Dependent Repositories: 14,131
- Downloads: 48,589,651 Total
- Docker Downloads: 127,147,911
-
Rankings:
- Dependent repos count: 0.292%
- Dependent packages count: 0.311%
- Downloads: 0.453%
- Docker downloads count: 0.608%
- Average: 0.866%
- Forks count: 1.217%
- Stargazers count: 2.315%
- Maintainers (1)
- Advisories:
proxy.golang.org: github.com/puppetlabs/facter
- Homepage:
- Documentation: https://pkg.go.dev/github.com/puppetlabs/facter#section-documentation
- Licenses: apache-2.0
- Latest release: v4.0.6+incompatible (published almost 6 years ago)
- Last Synced: 2025-12-07T21:02:19.425Z (3 days ago)
- Versions: 16
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 6.999%
- Average: 8.173%
- Dependent repos count: 9.346%
Dependencies
- actions/checkout v4 composite
- ruby/setup-ruby v1 composite
- actions/checkout v4 composite
- gimmyxd/rtc-action 0.3.1 composite
- ruby/setup-ruby v1 composite
- actions/checkout v4 composite
- ruby/setup-ruby v1 composite
- actions/checkout v4 composite
- ruby/setup-ruby v1 composite
- actions/checkout v4 composite
- actions/setup-java v3 composite
- ruby/setup-ruby v1 composite
- actions/checkout v4 composite
- ruby/setup-ruby v1 composite
- ronn ~> 0.7.3 development
- ffi = 1.15.5
- octokit ~> 4.18.0
- packaging >= 0
- multi_json ~> 1.8
- rake >= 12.3.3
- ffi = 1.15.5 development
- rake ~> 13.0, >= 13.0.6 development
- rspec ~> 3.0 development
- rubocop ~> 0.81.0 development
- rubocop-performance ~> 1.5.2 development
- rubocop-rspec ~> 1.38 development
- simplecov ~> 0.17.1 development
- sys-filesystem ~> 1.4 development
- webmock ~> 3.12 development
- yard ~> 0.9 development
- hocon ~> 1.3
- thor >= 1.0.1, < 2.0
Score: 30.547619243002703