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

feat: replace querystring with fast-querystring #300

Merged
merged 1 commit into from
Sep 16, 2022

Conversation

anonrig
Copy link
Contributor

@anonrig anonrig commented Sep 5, 2022

Solves issue: fastify/fastify#4252

Copy link
Owner

@delvedor delvedor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Heya, the library looks great! If we end up merging this, we should release it in a major. Before doing so, can you add more test to fast-querystring? Ideally the same test suite of querystring core.

@anonrig
Copy link
Contributor Author

anonrig commented Sep 5, 2022

@delvedor I added all of the node.js querystring tests and released a new version (0.3.0) with the necessary changes to replicate the behavior of the node:querystring package.

Copy link
Collaborator

@ivan-tymoshenko ivan-tymoshenko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Update the doc, please.

@anonrig
Copy link
Contributor Author

anonrig commented Sep 5, 2022

@ivan-tymoshenko I just updated fast-querystring module to 0.3.1 which comes with ~7% faster parsing and updated the README.

@anonrig
Copy link
Contributor Author

anonrig commented Sep 5, 2022

Updated to 0.4.0 with lots of great improvements.

@Fdawgs
Copy link
Contributor

Fdawgs commented Sep 6, 2022

This repo supports node >=14, but fast-querystring uses replaceAll(), which requires Node >=15.

@mcollina
Copy link
Collaborator

mcollina commented Sep 6, 2022

This will likely land in a major version, ideally shipping February/March 2023, in which we will drop support for Node v14 and v16.

(v16 LTS ends Sept 2023 due to OpenSSL).

@anonrig
Copy link
Contributor Author

anonrig commented Sep 6, 2022

I might replace replaceAll with replace if that is a deal breaker. The performance difference is acceptable since even without it, the package is quite fast. @Fdawgs

@anonrig
Copy link
Contributor Author

anonrig commented Sep 9, 2022

FYI: Updated this pull-request to 0.7.0 (40% faster than querystring atm), dropped replaceAll in favor of supporting Node 14.

Copy link
Collaborator

@mcollina mcollina left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm, I think this would be a significant benefit for the project.

Copy link
Contributor

@RafaelGSS RafaelGSS left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Good job!

@anonrig
Copy link
Contributor Author

anonrig commented Sep 13, 2022

I released and updated the pull request to use 1.0.0 version. I think fast-querystring is stable.

Copy link
Owner

@delvedor delvedor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@mcollina
Copy link
Collaborator

@delvedor should I cut a major?

@ivan-tymoshenko
Copy link
Collaborator

@mcollina @delvedor Can you explain to me why we should land it as a major? It's not a breaking change. It's not even a new feature. It might have a good querystring performance parsing upgrade, but it will not make a significant performance difference along with routing. And we have the 7.1.0 version now. Why can't we land it as a 7.2.0?

@mcollina
Copy link
Collaborator

I'm ok with a minor too.

@anonrig
Copy link
Contributor Author

anonrig commented Sep 14, 2022

If we are ok with this pull request, can we merge & release @mcollina @delvedor?

@delvedor
Copy link
Owner

Can you explain to me why we should land it as a major?

The main reason is that this module has an average of 3.6 millions downloads per months, and you don't want to risk it :D
If we are confident there are no hidden breaking changes, we can do a minor.

@mcollina mcollina merged commit 40f8ae9 into delvedor:main Sep 16, 2022
@mcollina
Copy link
Collaborator

I'll try a minor and in case revert

@anonrig anonrig deleted the feat/querystring branch September 25, 2022 17:43
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.

6 participants