-
-
Notifications
You must be signed in to change notification settings - Fork 231
Closed
Description
Hi!
Since version 2.1 config supports validation via dry-rb. Unfortunately this dependency results in a quite high memory usage.
Output using derailed bundle:mem:
rails/all: 25.1523 MiB
rails: 9.4883 MiB
...
config: 7.1172 MiB
config/validation/schema: 6.6563 MiB (Also required by: config/validation/schema)
dry-schema: 6.6367 MiB
dry/schema: 6.6211 MiB
dry/schema/dsl: 6.5039 MiB
dry/schema/config: 4.3203 MiB (Also required by: dry/schema/rule_applier)
dry/schema/type_container: 3.8398 MiB (Also required by: dry/schema/processor)
dry/types: 3.4727 MiB (Also required by: dry/schema/types)
dry/types/nominal: 1.8398 MiB
dry/types/builder: 1.0703 MiB
dry/types/constrained: 0.707 MiB
dry/types/constraints: 0.6523 MiB
dry/logic/rule_compiler: 0.5977 MiB (Also required by: dry/schema/compiler)
dry/logic/rule: 0.5234 MiB (Also required by: dry/logic/rule/predicate)
dry/logic/operations: 0.4023 MiB
dry/types/array: 0.3008 MiB
dry/types/core: 0.6758 MiB
dry/types/inflector: 0.3984 MiB
dry/inflector: 0.3242 MiB
dry/container: 0.3555 MiB (Also required by: dry-container, dry/types/container)
dry/schema/macros: 1.0977 MiB
dry/schema/macros/optional: 0.6094 MiB
dry/schema/macros/key: 0.582 MiB (Also required by: dry/schema/macros/required)
dry/schema/processor: 0.4922 MiB (Also required by: dry/schema/dsl, dry/schema/params)
dry/schema/rule_applier: 0.4531 MiB (Also required by: dry/schema/dsl)
dry/schema/message_compiler: 0.3125 MiB
In our app with quite a lot of dependencies, this makes config the second most memory hungry gem after rails.
Would it be an idea to split the validation feature into a separate optional gem, that could be included if this functionality is wanted? This would cut down significantly on the memory impact of including the core config gem making inclusion of dry-rb optional for the developer.