Skip to content

Gem Comparison

Jeff Felchner edited this page Mar 6, 2023 · 6 revisions

We reviewed many other gems and we encourage you to check them out to see if they meet your needs better than Chamber does. Here are our candidates:

Here are the breakdowns of their features. Hover over any item for a more detailed explanation.

Note on Namespaces: When you see the word "namespaces" in the table below, and you've never used Chamber before, you may be a little confused. It simply means a way of segregating the same settings keys between different use cases. The most common of these is environment. For example your API key for Stripe may be one thing in test and another thing in production.

All other settings libraries focus on the environment. While this is the most common, there are other use cases such as a namespace for CI or a namespace for a dev's local computer. In Chamber these are first class citizens. So while the libraries below may get a checkmark for a namespace row, know that Chamber's namespacing is much more powerful.

Comparison Matrix

I've made every attempt to be as accurate as possible. If I'm incorrect on any of these, please let me know via an issue.

            Chamber                            Config                        Configatron                        Configus                              Dotenv                             Econfig                              Figaro                               Global                                Rails                
Version chamber_v config_v configatron_v configus_v dotenv_v econfig_v figaro_v global_v rails_v
Downloads chamber_dl config_dl configatron_dl configus_dl dotenv_dl econfig_dl figaro_dl global_dl rails_dl
Overall Rank chamber_or config_or configatron_or configus_or dotenv_or econfig_or figaro_or global_or rails_or
Daily Rank chamber_dr config_dr configatron_dr configus_dr dotenv_dr econfig_dr figaro_dr global_dr rails_dr
Latest Commit chamber_upd config_upd configatron_upd configus_upd dotenv_upd econfig_upd figaro_upd global_upd rails_upd
Stars chamber_st config_st configatron_st configus_st dotenv_st econfig_st figaro_st global_st rails_st
Contributors chamber_con config_con configatron_con configus_con dotenv_con econfig_con figaro_con global_con rails_con
Open Issues chamber_iss config_iss configatron_iss configus_iss dotenv_iss econfig_iss figaro_iss global_iss rails_iss
Open Pulls chamber_pul config_pul configatron_pul configus_pul dotenv_pul econfig_pul figaro_pul global_pul rails_pul
Test Coverage chamber_cov config_cov configatron_cov configus_cov dotenv_cov N/A figaro_cov global_cov rails_cov
Build Status chamber_bld config_bld configatron_bld configus_bld dotenv_bld econfig_bld figaro_bld global_bld rails_bld
Maintainability chamber_gpa config_gpa configatron_gpa configus_gpa dotenv_gpa N/A figaro_gpa global_gpa rails_gpa
Documentation chamber_doc config_doc configatron_doc configus_doc dotenv_doc econfig_doc figaro_doc global_doc rails_doc
 
Accessing
Accessed Via i Constant Constant MKM 1 MKM 1 ENV RAO 5 ENV / Constant Constant RS 6
Object Notation i Yes Yes Yes Yes No Yes Yes Yes Yes
Hash Notation i Yes Yes No No Yes No No No No
Multiple Namespaces i Yes No No No No No No No No
 
Formatting
Format i File File Direct / Manual File File File / Database / Redis File File File
File Template Style i YAML YAML N/A Ruby DSL Key/Value YAML YAML YAML YAML
Dynamic Values i ERB ERB No Ruby Nested Shell Commands ERB No ERB ERB
Arbitrary File Organization i Yes No No No No No No Yes No
Nested Values i Yes Yes Yes Yes No No No Yes No
Schema Validation i No Yes No No No No No No No
Tamper Verification i Yes No No No No No No No No
Embedded Namespaces i Yes No N/A Yes No Yes Yes Yes Yes
Mix-and-Match Data i Yes N/A N/A N/A N/A N/A N/A Yes N/A
 
File Layout
Namespaced Files i Yes Yes 7 Yes 7 No Yes 7 No No No No
Host-Based Settings i Yes Yes 8 No No Yes 8 No No No No
Host-Based Committable? i Yes No N/A N/A No N/A N/A N/A N/A
 
Allowed Types
Strings Yes Yes Yes Yes Yes Yes Yes Yes Yes
Booleans Yes Yes Yes Yes No Yes No Yes Yes
Integers Yes Yes Yes Yes No Yes No Yes Yes
Floats Yes Yes Yes Yes No Yes No Yes Yes
Regex Yes Yes Yes Yes No Yes No Yes Yes
Arrays Yes Yes Yes Yes No Yes No Yes Yes
Hashes Yes Yes Yes Yes No Yes No Yes Yes
Symbols Yes Yes Yes Yes No Yes No Yes Yes
Arbitrary Ruby Objects Yes Yes Yes Yes No Yes No Yes Yes
 
ENV Integration
ENV Overrides i Yes Yes No No Yes Yes Yes No No
ENV Substitutions
Basic Types i Yes Yes N/A N/A No No No N/A N/A
Complex Types i Yes No N/A N/A No No No N/A N/A
Shell Commands i Yes10 No N/A N/A Yes No No N/A N/A
Nested ENV Variables i Yes10 No N/A N/A Yes No No N/A N/A
Schema-Based i Yes No N/A N/A No No No N/A N/A
 
Official Support
Standalone/Gem i Yes Yes Yes Yes Yes No No Yes No
Rails i Yes Yes Yes Yes Yes11 Yes Yes Yes Yes
Rails Engines i Yes Yes No No Yes No No No No
Detect Rails Environment i Yes Yes Yes Yes Yes11 Yes Yes Yes Yes
Sinatra i Yes Yes No No No No No No No
Padrino i Yes Yes No No No No No No No
Hanami i No No No No No No No No No
Javascript i No No No No No No No Yes No
Heroku Integration i Yes No No No No No No No No
Travis Integration i Yes No No No No No No No No
CircleCI Integration i Yes No No No No No No No No
 
Security
Encryption Method i Public/Private RSA Keys N/A N/A N/A N/A N/A N/A N/A Symmetric
Human Readable? i Yes N/A N/A N/A N/A N/A N/A N/A No
ENV Key Detection i Yes No No No No No No No Yes
Git Commit Hook i Yes9 No No No No No No No No
Settings Encrypted i Yes No No No No No No No Yes
Per-Setting Encryption i Yes No No No No No No No No
Complex Value Encryption i Yes No No No No No No No Yes
Files Committable i Yes No No No No No No No Yes
Keys Per Namespace i Yes No No No No No No No No
      
Command Line
CLI i Yes Yes 2 Yes 2 No Yes No Yes No No
 
Architecture
No Monkey Patching i Yes Yes Opt-Out No Yes Yes Yes Yes No 12
Extendable i Yes
Clone this wiki locally