Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Disable unnecessary/unused regex features #261

Merged
merged 2 commits into from
Jul 25, 2023
Merged

Disable unnecessary/unused regex features #261

merged 2 commits into from
Jul 25, 2023

Conversation

jirutka
Copy link
Contributor

@jirutka jirutka commented Jul 23, 2023

Avoid unnecessary case-insensitive regexes

The case-insensitive flag (?i) requires regex with the unicode-case
feature enabled which significantly increases the binary size and makes
regex slower.

Disable unnecessary/unused regex features

regex crate with default features enabled is huge, it significantly
increases the binary size and compile time.

Cargo features are additive, so once some feature is enabled anywhere in
the dependency graph, there's no way to disable it, i.e. one
(transitive) dependency infects the whole dependency graph.

Since #[validate(regex = "...")] takes a path to a static Regex
instance, not regex as a string, users have to add the regex
dependency to their Cargo.toml to use it. Therefore, this change
shouldn't break backward compatibility.

@jirutka jirutka changed the title Regex Disable unnecessary/unused regex features Jul 23, 2023
@Keats
Copy link
Owner

Keats commented Jul 25, 2023

Can you make the PR on the next branch?

@jirutka jirutka changed the base branch from master to next July 25, 2023 13:45
The case-insensitive flag `(?i)` requires regex with the unicode-case
feature enabled which significantly increases the binary size and makes
regex slower.
regex crate with default features enabled is huge, it significantly
increases the binary size and compile time.

Cargo features are additive, so once some feature is enabled anywhere in
the dependency graph, there's no way to disable it, i.e. one
(transitive) dependency infects the whole dependency graph.

Since `#[validate(regex = "...")]` takes a path to a static Regex
instance, not regex as a string, users have to add the `regex`
dependency to their Cargo.toml to use it. Therefore, this change
shouldn't break backward compatibility.
@jirutka
Copy link
Contributor Author

jirutka commented Jul 25, 2023

Can you make the PR on the next branch?

Ok, done.

@Keats Keats merged commit 29b4d87 into Keats:next Jul 25, 2023
4 checks passed
@jirutka jirutka deleted the regex branch July 25, 2023 21:34
@jirutka
Copy link
Contributor Author

jirutka commented Jul 25, 2023

Thanks for merging! When can I expect a new release?

@Keats
Copy link
Owner

Keats commented Jul 26, 2023

Not anytime soon, the plan is to rewrite the derive macro for the next version

@jirutka
Copy link
Contributor Author

jirutka commented Jul 26, 2023

If it takes longer, why don’t you just release the new version now and rewrite the macros in the next one?

Keats pushed a commit that referenced this pull request Mar 4, 2024
* Avoid unnecessary case-insensitive regexes

The case-insensitive flag `(?i)` requires regex with the unicode-case
feature enabled which significantly increases the binary size and makes
regex slower.

* Disable unnecessary/unused regex features

regex crate with default features enabled is huge, it significantly
increases the binary size and compile time.

Cargo features are additive, so once some feature is enabled anywhere in
the dependency graph, there's no way to disable it, i.e. one
(transitive) dependency infects the whole dependency graph.

Since `#[validate(regex = "...")]` takes a path to a static Regex
instance, not regex as a string, users have to add the `regex`
dependency to their Cargo.toml to use it. Therefore, this change
shouldn't break backward compatibility.
Keats pushed a commit that referenced this pull request Mar 4, 2024
* Avoid unnecessary case-insensitive regexes

The case-insensitive flag `(?i)` requires regex with the unicode-case
feature enabled which significantly increases the binary size and makes
regex slower.

* Disable unnecessary/unused regex features

regex crate with default features enabled is huge, it significantly
increases the binary size and compile time.

Cargo features are additive, so once some feature is enabled anywhere in
the dependency graph, there's no way to disable it, i.e. one
(transitive) dependency infects the whole dependency graph.

Since `#[validate(regex = "...")]` takes a path to a static Regex
instance, not regex as a string, users have to add the `regex`
dependency to their Cargo.toml to use it. Therefore, this change
shouldn't break backward compatibility.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants