Serde derives are expensive (in terms of compile time and binary size) and are also on the critical path for Stylo compilation (pushing Stylo later in compile graph). Many consumers of Stylo (e.g. Blitz) will not need serde support, so we should make it optional.
Notes
This is technically simple: it is mostly "just" a case of adding feature flags to serde Serialize and Deserialize derives. However, as Servo requires these derives (and thus the "servo" feature will need to continue to enable them), it will likely require the introduction of either:
- a separate non-servo, non-gecko feature (e.g.
oss_base)
- The use of
not(feature = "gecko")
And switching most of the uses of the servo feature to use this new feature instread.
Serde derives are expensive (in terms of compile time and binary size) and are also on the critical path for Stylo compilation (pushing Stylo later in compile graph). Many consumers of Stylo (e.g. Blitz) will not need serde support, so we should make it optional.
Notes
This is technically simple: it is mostly "just" a case of adding feature flags to serde Serialize and Deserialize derives. However, as Servo requires these derives (and thus the "servo" feature will need to continue to enable them), it will likely require the introduction of either:
oss_base)not(feature = "gecko")And switching most of the uses of the
servofeature to use this new feature instread.